質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • PHP

    19903questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    5708questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Linux

    3654questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • AWS(Amazon Web Services)

    1920questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Apache

    1778questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

load averageが高い(3.00~4.75)がCPUの使用率は10%前後なのはどうして?

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 2,571

jun_1989

score 11

お世話になります。サーバー関連は初心者です。

〜〜〜状況説明〜〜〜

現在、awsのec2にてサイトを運営しております。使用しているインスタンスはt2.medium(メモリ4G、CPU数2)でDB(mysql)も一緒のインスタンスに入っています。

サイトのアクセス数は平均すると1日1万、月で30万アクセスくらいです。

この度、サイトへのアクセスが重くなったのでいろいろと調べてみました。

uptimeコマンドでload averageを見ると、3.00 ~ 4.75くらいの値が出ます。インスタンスのCPUの数は2つですので、2.00を超えていると高いのかなという印象です。

freeコマンドで空メモリをチェックすると2.7Gありました。(4Gのうち使用中は1.3G)

続いてawsの管理画面でインスタンスのCPU使用率を見ると10%前後となっております。

〜〜〜状況説明終わり〜〜〜

お聞きしたいことは2点です。

●「load averageが高い = CPU、メモリに余裕がない」という認識は間違っているのでしょうか。またload averageの値が下がればサイトへのアクセス速度の改善も期待されるのでしょうか。

●load averageの値を下げるにはどのような方法がありますでしょうか。例えばインスタンスをt2.xlarge(メモリ16G、CPU数4)にスケールアップした場合、load averageの値の低下が期待できるのでしょうか。

ec2をスケールアウトして複数台構成にし、DBも別サーバーかRDSにするのが良い選択であるかもしれませんが、もしスケールアップしてメモリとCPUを強化することでも改善が期待できるのであれば、そちらで対応したいと考えております。

以上、お手数ですがどなたかご教授いただければ幸いです。
宜しくお願いします。

追記:
apacheとmysqlの設定等を下記に示します。

---apache(2.2.31)---
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000

Timeout 60
KeepAlive off

---mysql(5.6.36)---
max_allowed_packet=16MB
max_connections  151

---mysql> SHOW STATUS LIKE '%connect%';---
| Aborted_connects                              | 1       |
| Connection_errors_accept                      | 0       |
| Connection_errors_internal                    | 0       |
| Connection_errors_max_connections             | 0       |
| Connection_errors_peer_address                | 0       |
| Connection_errors_select                      | 0       |
| Connection_errors_tcpwrap                     | 0       |
| Connections                                   | 1034127 |
| Max_used_connections                          | 37      |
| Performance_schema_session_connect_attrs_lost | 0       |
| Ssl_client_connects                           | 0       |
| Ssl_connect_renegotiates                      | 0       |
| Ssl_finished_connects                         | 0       |
| Threads_connected                             | 4       |

以上です。

追記2:
sarの結果も示します。%iowaitは高いですが、%systemは低い値でした。

11時37分30秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
11時37分31秒     all      0.50      0.00      0.50     48.76      0.50     49.75
11時37分32秒     all      0.00      0.00      1.51     98.49      0.00      0.00
11時37分33秒     all      0.00      0.00      1.00     80.00      0.00     19.00
11時37分34秒     all      0.00      0.00      0.51     49.24      0.00     50.25
11時37分35秒     all      0.00      0.00      1.01     76.88      0.00     22.11
11時37分36秒     all      0.00      0.00      0.50     99.50      0.00      0.00
11時37分37秒     all      0.00      0.00      0.00     99.50      0.50      0.00
11時37分38秒     all      0.00      0.00      0.00    100.00      0.00      0.00
11時37分39秒     all      0.50      0.00      0.50     99.00      0.00      0.00
11時37分40秒     all      0.00      0.00      0.50     99.50      0.00      0.00
平均値:      all      0.10      0.00      0.60     85.08      0.10     14.11

sar 1 10 -Wを実行した結果も表示します。

11時38分50秒  pswpin/s pswpout/s
11時38分51秒      0.00      0.00
11時38分52秒      0.00      0.00
11時38分53秒      0.00      0.00
11時38分54秒      0.00      0.00
11時38分55秒      0.00      0.00
11時38分56秒      0.00      0.00
11時38分57秒      0.00      0.00
11時38分58秒      0.00      0.00
11時38分59秒      0.00      0.00
11時39分00秒      0.00      0.00
平均値:       0.00      0.00

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • takotakot

    2017/09/19 08:21

    ディスクの最大サイズを教えて下さい。

    キャンセル

回答 4

checkベストアンサー

+3

otn さんの回答のとおり、ディスクI/O 待ちの可能性があります。
空きメモリがあるので、メモリ不足による swap in/out によるものではなさそう。
とすると、DB の書き込みなど、リクエストに対する通常の処理によるものかもしれません。

vmstat の wa (iowait) の数値[%]が大きくないか、もし、大きければ、ps aux で STAT が D になっているプロセスを確認するといいと思います。

例えばインスタンスをt2.xlarge(メモリ16G、CPU数4)にスケールアップした場合、load averageの値の低下が期待できるのでしょうか。 

もし、原因がディスクI/O 待ちだった場合、上位のインスタンスにすることで、メモリや CPU よりもネットワーク帯域が増えることにより、EBS の読み書き性能が向上することが期待できます。

より、ディスク性能が必要であれば、EBS タイプを io1 に変更するとか、Amazon EBS 最適化インスタンス の対象となるインスタンスタイプへの変更も検討ください。 

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/13 10:56

    ご回答ありがとうございます。ご指摘の通り、vmstatで確認したところwaの値が常時90以上を示している状態でした。bi、boともに高いのでmysqlの同時接続数などのチューニングが不適切なのかなというのが私の推測です。そのあたりを見直してみます。またps auxでSTATがDになっているものはありませんでした。(Rが2つでその他はSまたはSsなどでした)

    キャンセル

  • 2017/09/14 01:09

    EC2 インスタンスの CloudWatch メトリクスで、NetworkIn, NetworkOut が上限に張り付いているということはありませんでしょうか?
    t2 タイプだと、サービスネットワークと EBS 用の通信ネットワークが同じなので、EBS の読み書きでネットワーク帯域が飽和して HTTPリクエスト/レスポンスに遅延が生じているとか。

    キャンセル

+1

CPU使用率が低いのにロードアベレージが高いのは、ディスクIO待ちが多いと言うことが考えられます。
CPUやメモリが不足している場合は、CPU使用率が上がるはずです。
sar や vmstat も見てみましょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/13 10:48

    ご回答ありがとうございます。vmstatの値を確認しましたら、ご指摘の通りbi、boの値が高かったです。そのあたりを改善してみます。

    キャンセル

0

>インスタンスのCPUの数は2つ・・・これは、コア数でしょうか?
・・・インスタンスという意味が分からないので・・・^^;
もし、2コアなら200%、4コアであればほぼ100%、8コアであれば50%ぐらいのの使用率になります。
サーバのOSが分からないので、ちなみにfreebsdだと
root@usr:~ # sysctl -a|grep CPU
dev.cpu.3.%desc: ACPI CPU
dev.cpu.2.%desc: ACPI CPU
dev.cpu.1.%desc: ACPI CPU
dev.cpu.0.%desc: ACPI CPU
root@usr:~ # 
で、コア数がわかりますが・・・
LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/13 10:51

    ご回答ありがとうございます。説明不足で申し訳ございません。osはamazon linux で物理CPUが1、コアが2です。リンク先も参考にさせていただきます。

    キャンセル

0

みなさまご回答いただきありがとうございました。

ご指摘いただいたディスクI/Oの値を低くするようにプログラムを修正したら無事にload averageの値も下がりました。

DBに対して負荷のかかる処理をプログラムで書いていたのが原因だと思われます。

あらためてご回答いただき感謝申し上げます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    19903questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • MySQL

    5708questions

    MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

  • Linux

    3654questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • AWS(Amazon Web Services)

    1920questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • Apache

    1778questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。