まず、topコマンドでLinuxサーバの重さを確認する。
例:
top
top - 11:58:16 up 281 days, 9:25, 3 users, load average: 1.40, 1.01, 0.93
topコマンドを打ったら、いろいろな情報を表示するが、その中の「
load average: 1.40, 1.01, 0.93」ような情報をご注目。左から順に1、5、15分間の実行待ちプロセスの平均数です。サーバが重いかをこの数字を見ればだいたいわかる。簡単に言えば、load averageの数字はCPU数より大きい場合、サーバは重いと認識してください。CPU数の確認コマンドは「cat /proc/cpuinfo | grep processor」です。筆者のtaobao.jpサーバでコマンドを打ったら、下記となります。
[root@taobao ~]# cat /proc/cpuinfo | grep processor
processor : 0
processor : 1
processor : 2
processor : 3
CPUが4つですね。load averageの3つの数字がいずれも4.0以下のため、サーバが軽いとわかりますね。
※サーバは軽いと判明したら、スループット(throughput: 単位時間あたりの処理能力)が低い場合、ソフトウェアの問題か、ネットワークが遅い可能性が高い。
もしもload averageの数字は大きい場合(例:taobaoサーバは数字4上回る)、CPUかI/Oが負荷の原因をお考えてください。
先ほどのtopコマンドでload averageの情報以外、そのたの情報もいろいろ表示しています。topコマンドの抜粋情報を見てください。
Cpu(s): 50.7% us, 8.7% sy, 0.0% ni, 32.1% id, 8.4% wa, 0.0% hi, 0.1% si
主にus、idとwaの値をご注目ください。
us(user):ユーザが実行しているプロセスの割合
id(idle): CPUが休んでいる割合
wa(wait): File I/Oの待ち割合
上記のusの割合が大きいとしたら、サーバ重い原因はCUPがボトルネックと考えてください。
idの割合大きい場合、CPUがあまり使ってない状態です。それでもサーバが重いなら、原因は別の場所となる。
waの割合大きい場合、I/O待ちをしているプロセスが多いと見える。これはディスクI/Oかネットワークがボトルネックになっている可能性が高い。
CPU負荷の高いプロセスを特定できます。Topコマンドを実行中に、大文字Pを押すと、負荷の高いプロセスを特定できる。%CPUの高い順に変わる。
サーバ重い原因がわかりましたら、対策を考えましょう。
対策1:負荷の高いプロセスの実行スケジューリング優先順位を下げる。Niceとreniceコマンドで優先順位を調整してください。
対策2:負荷の高いプロセスをkillコマンドで終了させる。
その他の対策は、CPUを高速なものに変更とか、サーバを増やして負荷分散する方法がいくつがあります。
どれがベスト対策とは言えません。ご自分のサーバが重い原因を究明した上で、どの対策にするかをしたほうがいいと思います。
以上、Linuxサーバが重いの原因とその時の対策をメモーを。
♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。
zanmai @2016年03月31日
» ①②③④の順で設定できるはず。…