2013/10/28

tomcat thread 数 負荷確認

★tomcatが受付可能な最大スレッド数ー>server.xmlのmaxThreads
・コネクションのmaxThread
 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
    maxThreads="500" />



★tomcatのThread数?上記の指定値はOSで実現できる?
●まずはOSー>Linux(Kernel 2.6及びそれ以降)で用いられているNTPL(Native POSIX Thread Library)。これは1:1モデルのスレッドライブラリで、スレッドをプロセスとして実装してある
・/proc/sys/kernel/threads-max ->linux扱う可能の最大スレッド数
・/proc/sys/vm/max_map_count->linuxで、メモリー関係で対応可能数(いくらを与えるなど。。)
・★/ect/security/limit.cnfで設定された上限。数とサイズ
  max user processes
  stack size=>*MBまで使ってもいいよという意味。上限
●次はJVM -XX:ThreadStackSize こいつのデフォルトは320kである(java1.7)



●●結局、JVMのデフォルトthreadStackSize使う場合、limitで確認できたmax user processesまで行ける。。
計算式であれば、
tomcatなどの起動時状態で、システムの(buffer+free/threadStackSize) と(max user processes)
の少ない方である。



・スレッドの数を確認する
ls -l /proc/$( ps -ef | grep Bootstrap | grep -v grep | awk '{print $2}' | head -1 )/task | wc -l
=>head -N 先頭からN行を表示する
=>awk '{print $2}' 第二列だけ表示する
=>grep -v ** 除外する
=>$() 実行結果をもらう
=>/proc/**/task スレッドの数



・DB接続数
netstat -t | grep DBアドレス | wc -l



・クラント側の接続数
netstat -t | grep 8009(apcheから) | wc -l
netstat -t | grep bot**(負荷書けるマシン) | wc -l