【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

サーバー負荷が高くなる原因とは。負荷がかかっている部分を特定する方法を解説

インフラエンジニアの伊藤です。

前回、サーバーの負荷が上がったときに確認する「ロードアベレージ」というものをご紹介しました。
ロードアベレージでサーバーの負荷を確認する ? ビヨンドブログ

ロードアベレージは、処理待ちのプロセスを表したものになります。
数値が高ければ高いほど処理待ちのプロセス数が多く、「負荷が高い」という状況になります。

今回は、なぜ負荷が高いという状況になるのか?の原因を探っていきたいと思います。

原因は大きく分けて2つある

ロードアベレージが高い状況が起こる原因は基本的に大きくわけて2つあります。

  • CPUの処理が追いつかない
  • ディスクI/Oの処理が追いつかない

では、それぞれが原因であるときの探り方を説明していきたいと思います。

CPUが原因の場合

まずはtopコマンドなどでCPUの使用率を見てみます。注目すべきは以下2つの値です。

%user ユーザプロセスが使用しているCPU使用率
%system システム(カーネル)が使用しているCPU使用率

一般的なプロセスがCPUに負荷がかかる場合は、だいたいユーザモード(%user)のCPU使用率が高くなっているはずです。

また、ユーザモードのプロセスは、大量のプロセスを動作させていたりする場合は、プロセスの切り替え等を行います。
その「プロセスの切り替え」を行う際にカーネルモード(%system)のCPUを使うので、
プロセスの切り替えが多いプログラムに関してはカーネルモードのCPU使用率が高くなっているでしょう。

stress-user_022516_092215_PM
ユーザモードのCPU使用率が高い場合

stress-system_022516_092244_PM
カーネルのCPU使用率が高い場合

ディスクI/Oが原因の場合

ディスクI/Oが原因の場合は、topで以下について注目してみます。

%iowait ディスクI/Oが必要な場合のプロセスがアイドル状態である
SWAP メモリを使用しつくして、HDDをメモリ代わりに使用している量

iowaitの値は、ディスクからデータを読み書きを大量に行っている際に高くなることが多いです。
例えばDBサーバーでデータベースへのアクセスが多いサーバーは、iowaitの値が高くなりやすいです。

SWAPは、プロセスがメモリを全て使用してしまった場合にHDDをメモリ代わりに使用している容量になります。
SWAPを使う例としては、Webサーバーなどで、大量にアクセスがあった場合にメモリを確保していってSWAPを使用することがあります。

SWAPを使用している場合、メモリの代わりにHDDを使用する=ディスクI/Oで負荷が高まるため、サーバーの速度としては遅くなります。

stress-disk_022516_092255_PM
iowaitが高く、ディスクI/Oが原因で負荷が高い場合

stress-swap
SWAPを使用している場合

原因調査していく

これで、CPUが原因か、I/Oが原因かがわかるようになると思います。
更にpsコマンド等でどのプロセスがCPUを使用しているか(SWAPの場合はメモリを使用しているか)を探っていきます。

ユーザモードのCPU使用率が高い場合には、I/O等で問題がないので、
CPUの性能を上げるか、プログラム的な見直しが必要になるかもしれません。

ディスクI/O側に問題がある場合はメモリ増設を行ったり、プログラム側でディスクI/Oではなくメモリの空きがある場所で一旦処理をさせる、といった見直しが必要があるかもしれません。

また、ロードアベレージが低いけど処理が遅い場合があるかもしれません。
その場合にはソフトウェアの設定や、ネットワークの処理が問題になっている可能性があります。

まずは「負荷が高い」という問題に直面したときは、落ち着いてどの部分に負荷がかかっているかを特定していくことが、解決への第一歩になるでしょう。

クラウドのプロに相談したい場合

弊社ビヨンドでは、創業以来、マルチクラウドインテグレーター・マネージドサービスプロバイダー(MSP)として培った技術力で、AWS や GCP・Azure・Oracle Cloud など、様々なクラウドサーバーのプラットフォームを駆使した設計・構築・移行を行ってきました。

お客様が求めるシステムやアプリケーションの仕様・機能に応じて、お客様向けに最適化された、オーダーメイド型のクラウドサーバー環境をご提供いたしますので、クラウドにご興味のある方はお気軽にお問い合わせください。

● クラウド / サーバー設計・構築
● クラウド / サーバー移行・マイグレーション
● クラウド / サーバー運用保守・監視(24時間365日)

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
4
読み込み中...
4 票, 平均: 1.00 / 14
16,174
X facebook はてなブックマーク pocket
【ウェビナー】マルチクラウド入門 ~あなたのビジネスに最適なクラウドとは?主要8クラウド最新情報をお届け!~

【ウェビナー】マルチクラウド入門 ~あなたのビジネスに最適なクラウドとは?主要8クラウド最新情報をお届け!~

【ウェビナー】運用体制から具体的な手順まで!クラウドサーバー運用保守の全貌を大公開

【ウェビナー】運用体制から具体的な手順まで!クラウドサーバー運用保守の全貌を大公開

この記事をかいた人

About the author