環境
railsの負荷を計測するのは一筋縄ではいかず、一発でこうすれば取得できるってのはないのだが、なんとかして負荷度を計測したい。
ってときにtopコマンドでpumaのCPUの使用率を取得すると概算できることがわかったのでメモ
取得方法
top -bc -n 1 | grep $(cat /var/www/article_polls/shared/tmp/pids/puma.pid)| awk '{s += $9} END {print s}'
puma.pidのパスは各自変えて
ポイントは以下
- CPU使用率の取得にpsコマンドを使ってはいけない 別にtopコマンド使わなくてもpsでええやんと思うかもしれない 実際自分もそう思っていたがだめ
- topコマンドで
-bc
をつけると出力だけ行って終わる - topコマンドの
$9
の部分はOSによって若干変わる - こればっかりは仕方ないので実際に叩いてCPU使用率が記載されている列を数えるしかない 例では9列目
thr3a@rails:~$ top -bc -n 1 | grep $(cat /var/www/article_polls/shared/tmp/pids/puma.pid) 10797 thr3a 20 0 276996 75764 1940 S 0.0 7.5 5:56.77 puma 3.11.3 (unix:///var/www/article_polls/shared/tmp/sockets/puma.sock) [2018+ 10801 thr3a 20 0 760276 93956 0 S 0.0 9.3 25:37.99 puma: cluster worker 0: 10797 [20180610031659] 17051 thr3a 20 0 14728 1120 1024 S 0.0 0.1 0:00.00 grep --color=auto 10797