Hatena::Groupdann

負荷監視

負荷監視

CPU

mpstat -P ALL

でコアのCPU使用率が100%になっているコアがないかを確認。

なっているコアがあったら、それがどのプロセスかを確認。

プロセス単位でのCPU使用率

ps auxww | grep -e mysqld -e PID | grep -v grep

スレッド単位でのCPU使用率

ps auxww -L | grep -e mysqld -e PID | grep -v grep


システムコール

Oprofileの使用

チューニング用はこれ。

どんなシステムコールが使われるかを見る

strace -p <PID>

sysが高い場合には、straceでどんなシステムコールが発行されているかを見る。

どのシステムコールが実行されているかを見る。ただし、プロダクション環境ではしないこと。

openを見れば、

  • 何の設定ファイルが読まれているか
  • 何のファイルをどんなフラグで開いているか

などがわかるので、その情報を使う。

ディスクI/O

Random Seekの確認。IOPSの限界値の大ざっぱな確認。

bonnie++ -d /tmp -u <username>

utilが100超えている場合は、大概I/Oネック。

DBサーバーであれば、r/s, w/sを見て、IOPSが限界値を超えていないかを確認。

ディスクへの転送量が超えていることは殆どないはず。

iostat -xm

# RAIDカードのBBWCを使うと、数千IOPSは出る。

ディスクの状況

ディスクの状況についてみる

どんな型番のどんなディスクか。

sudo smartctl -i /dev/sda
sudo smartctl -i /dev/sda

ディスクの診断

sudo smartctl -Hc /dev/sda

パーティション

cat /proc/partitions     
fdisk -l /dev/sda           

swap

vmstat 3 1000

si, soの状況を見て、swapが発生しているかを見る。プロセスswapすると、ディスクに書き出されてしまい、ディスクI/Oが発生するため遅くなる。swapしないようにチューニングをしなければ行けない。

ネットワーク

ギガビットEthが使われているかを確認。

ethtool eth0