skillup

技術ブログ

サーバー・ネットワーク

サーバーの過負荷の発見 理論編

投稿日:2016年3月29日 更新日:

会社のテストサーバー(このブログが入っているサーバー)なんかが重くなってくると、再起動したりしているわけなんですが、CPUやメモリの使用率をみたり、といったシステマティックな運用はしてないです。

本来だったらそういうログをとって、ある値が下がったらその時にメールを飛ばすとかしないといけないんですが、その理論すらよくわかっていない・・(汗)ということでサーバーの負荷調査についての実験をしようと思います。

topコマンド

まずは今のサーバーにどれぐらいの負荷がかかっているのかを把握するコマンドとしてtopコマンドがあります。

サーバーに入ってtopってうつとずらずら出てくると思います。細かい見方は下記ブログを参照。

参考リンク topコマンドで、サーバシステムと各プロセスのモニタリングを行う

蛇足ですが、このサイト使っているWordPressのテンプレートが一緒なんで一瞬自分のサイトかと思いました。

主な原因

大きく分けるとシステムの負荷が大きくなるのはCPU使用率とメモリ使用率の2種類のようです。

CPU使用率

topコマンドのload averageを見ます。少数ありで数字が3つ並んでいます。

これはCPUがしなければいけない仕事の量で、CPUのコア数よりも少なければ問題なしとされています。

数字が3つあるのはそれぞれ1分間、5分間、15分間の平均です。

ずらーっと表のようになっているのが各プロセスのタスクの状態です。ここを見てCPU使用率(%CPU)が高く、CPU使用時間が長いものはサーバーに負荷をかけている可能性が高いです。

メモリ使用率

load averageが高いのにも関わらずCPU使用率が高いプロセスがない、ということもありえます。

この場合、メモリの負荷が高い可能性が高いです。

CPUが仕事が早くてもデータを入れる先(メモリ)に問題があることがありえます。

CPUは普段の作業場所をメインメモリとして使いますが、メモリーの空き容量が不足してくると新しい作業ができなくなるので、一旦ハードディスクにデータを移動し、必要な時にはハードディスクからメモリーにデータを戻します。

この作業自体をSwap(スワップ)といい、topコマンドで見たときもMem(メモリー)のデータと並行してSwap(スワップ)という行がありますが、この作業に使用されているディスクの割合を表示しています。

この割合が高いとサーバーに負荷がかかっているということになります。MEMの行で値が高くなっているものがメモリに負荷を与えているプロセスやサービスになります。

ちなみに下記コマンドでそれぞれのパラメーターごとのソートができます。

SHIFT+T CPU使用時間順
SHIFT+P CPU使用率順
SHIFT+M メモリ使用量順

参考文献

まんがでわかるLinuxシス管系女子

http://www.amazon.co.jp/dp/4822224961

システムの過負荷の原因を切り分ける

システムの負荷の原因を切り分ける方法

-サーバー・ネットワーク

執筆者:


  1. […] サーバーの過負荷の発見 理論編 […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

ネットワークコマンド

ネットワークのコマンドはping以外ほとんど知らないんですけど、それ以外に最近少し覚えたネットワークコマンドなどについて。 適切な使い方などはまだようわかっとらんです・・・ Contents1 net …

no image

dockerでの環境構築 〜コンテナ作成し、実作業ができるまで(mac編)

今や環境構築の保存や移行などが比較的自由にできるようにはなってきていると思います。 自分の場合は未だにvagrantのイメージフォルダを移行してやっていますが(汗)。 参考リンク vagrantで仮想 …

no image

ECSについて

AWSでwebアプリを立ち上げる場合、基本的にはEC2+RDS(小規模な場合は使わないケースもあるかも・・)+アルファの構成が多いと思うのですが、Dockerでコンテナイメージをもっていれば、コンテナ …

no image

セッションとクッキーについて

セッションとクッキーについての違いを整理しておこうと思います。 Contents1 そもそものHTTPプロトコルについて2 ステートフルな状態を実現するために2.1 方法1 クライアント側で情報を保持 …

no image

Amazon SESについて(Route53登録→SESで受信→S3で保存)

本日はAWSのSESのメモ。 2019年はJavaScriptとAWSを勉強する、と心に決め、JavaScriptの方は色々勉強しましたが、AWSの方が手付かずでした。 インフラ系はここ2年ぐらい進歩 …