ServersMan@VPSが遅いのでTOPコマンドでサーバーの状況を調べる

ServersMan@VPSが時間によって、いまいち遅いので、LinuxのTOPコマンドを使用する方法です。

スポンサーリンク

TOPコマンドをうつ

topで現在の状況の一覧が表示されます。

143

メモリ

本サイトでは、wp-config.phpに下記の内容を追記し、258Mを割り当てるようにしました。 define(‘WP_MEMORY_LIMIT’, ‘258M’);

I/Oの負荷

load average: 0.18, 0.31, 0.41

topコマンドで出力される項目のうちload averageの値は、 左から順に1、5、15分間の実行待ちプロセスの平均数が表示される。 ロードアベレージがCPUの数より大きい場合は処理が追いついていないため、高負荷の状態となる。CPUが1つのサーバは1以上、マルチコアで2つのサーバは 2以上の数値だと高負荷状態になっている。

なお、

CPUコア数の確認は以下のコマンドでわかる。

# cat /proc/cpuinfo | grep processor processor : 0 processor : 1 プロセッサは2つなので、0.18, 0.31, 0.41であれば、問題のない範囲であると考えられる。

CPU、I/O 負荷

ロードアベレージが高い場合、CPUとI/Oどちらが負荷の原因なのかを調べていく。 Cpu(s): 10.7%us, 0.5%sy, 0.0%ni, 88.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st の場合見方は、 us(usr):ユーザープロセスの割合 id(idle):プロセッサが休んでいる率 usの値が大きい(100%に近い)場合はCPU負荷が高くCPUがボトルネック。 *今回の例では、10.7%なので、CPUはボトルネックになっていない id idが大きい場合はCPUはほとんど使われていない。 *今回の場合は、ほぼCPUが使われていない wa waが大きい場合はI/O待ちをしているプロセスが多いのだが、 これはディスクI/Oかネットワークがボトルネックになっている可能性が高い。

CPUが高負荷の場合の対策

・負荷の高いプロセスを終了させる ・負荷の高いプロセスの実行スケジューリング優先順位を下げる。 ・時間のかかる重い処理を高速化 ・サーバを増設して負荷分散する ・CPUを高速なものにする。

並び替え

Shift+Oで並び替えの一覧(アルファベット)がでますので、そのアルファベットを入力します。

144

nでソートすると、メモリが消費されている順で並び替えられます。

145

終了

qを押すことで終了できます。

Apache Benchで性能測定

Apache に付属しているベンチマークソフトを使ってみました。

Apacheには、標準で「ab」(Apache Bench) というツールが付属しています。 同時接続数とリクエスト数とURLを指定すれば、簡単に性能が測定できます。

例えば、同時接続数が 100で、リクエスト数 1,000 になるまで、http://example.com/index.html にアクセスするなら、下記のようなコマンドになります。

ab -n 1000 -c 100 http://example.com/index.html

主な結果の見方

Failed requests

NGリクエストの数であり、ここが多いほど処理能力を超えています。

Requests per second

1秒間に処理出来るリクエスト数で、数字が大きいほど制能が高くなります。

現在、計測すると、本サーバーでは0.37となっていました。

APCで高速化

C関係のコンパイラをインストールします。

[crayon-54548d131418c154621033/]

php-pearをインストール peclコマンド用

php53-devel(phpize)をインストール デフォルトのリポジトリを使用するためです。

httpd-devel(apxs)をインストール apxsが必要ですので、httpd-develが必要です。

pcre-develをインストール pcre-develもインストール。

[crayon-54548d13141b6222711536/]

peclコマンドでAPCをインストールします。

基本的には、デフォルトで問題ないので、すべて改行で対応します。

[crayon-54548d13141c0199097014/]

[crayon-54548d13141c8882079021/]

[crayon-54548d13141d1327981356/]

と出力されますが、

/etc/php.ini には、
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.

となっているので、vi /etc/php.d/apc.iniで

[crayon-54548d13141d9907454772/]

さらに、設定の確認です。

[crayon-54548d13141e2653530455/]

上のやりかたで、php.infoを見てもなにも表示されない場合、
って事でphp.iniに以下の行を追加します。

extension=apc.so

iniファイルを編集したらapacheを再起動します。

php -i | grep apc

で表示された中の、apc.enabled がOn になってれば APC は有効になっています。

まとめ

APCがオンで0.37 requests per second, オフで0.34でした。時間帯にもよりますが、あまり速度は変わっていないようです。また、違う方法を試してみます。

スポンサーリンク

Leave a Reply