実行中のプログラムの要求によりサーバーに過剰なリソースが要求されると、パフォーマンスが低下し、システムが不安定になる可能性があります。
uptime
を使用してサーバーの負荷を確認します コマンド。
$ uptime
15:16:45 up 41 days, 2:35, 2 users, load average: 0.01, 3.01, 2.70
この例は、 uptime
からの出力を示しています 。コマンドが15:16:45に実行されたとき、サーバーは41日2時間35分
稼働していました。 、2人のユーザーがログオンしており、負荷の平均は 0.01
でした。 、 3.01
、および 2.70
。
負荷平均は、システムが実行している作業です。 3つの数値は、それぞれ最後の1分間、5分間、および15分間の負荷平均を示しています。 1
の平均負荷 システム上の単一プロセッサの全ワークロードを反映します。 2
のロード 2つのCPUを搭載したシステムでは、それらのCPUが最大で動作していたことを意味します。 4つのCPUを搭載したシステムでは、その 2
利用可能な処理能力の約半分を使用するワークロードを反映します。
通常の状況では、負荷平均を合計CPU使用率の70%以下にする必要があります。次のコマンドを実行して、インスタンスで使用可能なCPUの数を確認できます。
$ grep processor /proc/cpuinfo | wc -l
負荷の平均が負荷が増加していてCPUの数よりも多いことを示している場合は、原因を調査する必要があります。 CPUの数を超える負荷は、システムがプロセッサリクエストをキューに入れていることを意味し、パフォーマンスが低下します。
top
コマンドは、サーバーのリソース使用量に関するリアルタイム情報を表示します。最初の数行は、システムでのリソース使用率の概要を示しています。プロセスのリストをCPUで並べ替えることができます( P
)またはメモリ使用( M
)。これにより、サーバーのリソースに対する最大の要求をすばやく確認できます。
無料コード> コマンドは、サーバーのメモリ使用量に関する情報を表示します。最初の行は、システムのメモリ使用量の概要を示します。
無料 列には、空きメモリの量が表示されます。これは、未使用のメモリが無駄なリソースであるため、通常は最小限です。 利用可能 列の表示は、既存または新規のプロセスに割り当てるために使用できるメモリが多いことを示しています。
vmstat
システムメモリの量は、最も一般的な抑制要因の1つです。スワップ は、プロセスが使用するためにデータがアップフィジカルメモリ(RAM)を解放するために移動されるハードドライブの領域です(すべてのサーバーにスワップスペースが構成されているわけではありません)。システムがスワップ領域の大部分を消費する場合、サーバーは使用可能なメモリを超えて実行しようとすると、メモリが不足しているわけではありません。
スワップスペースを構成していて、サーバーの標準メモリが不足していると思われる場合は、 vmstat
を使用できます。 発生しているスワッピングの量を表示します。
次の例は、システムの仮想メモリ統計を5秒間隔で10回表示します。
$ vmstat 5 10
procs -----------memory------------- ---swap---- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 3 138096 3904 140 584 14829 33632 16684 33633 1353 11562 64 9 16 11 0
7 4 156592 3800 132 492 53570 48618 54264 48622 2762 8148 20 5 50 24 0
2 7 258552 3040 128 668 37910 39822 39766 39826 2763 10861 43 8 23 26 0
7 4 261608 4312 116 776 41696 30854 42171 30855 2771 8631 26 6 33 35 0
3 4 259316 3824 112 576 44616 32316 44697 32320 2746 7087 15 4 52 28 0
0 5 257000 3376 116 880 25895 19847 26622 19848 1673 2877 1 2 68 29 0
4 4 263240 3384 124 1424 30018 21066 30497 21070 1732 4559 9 3 64 24 0
2 14 264656 5740 120 1812 27685 19030 28029 19031 2194 5345 11 3 51 35 0
6 3 338044 3764 132 1568 20087 31066 20470 31070 1798 9847 46 6 33 14 0
2 4 325904 4048 108 1172 13251 7190 13812 7190 1193 8838 38 5 24 32 0
この例では、無料 列は、空きメモリの量が約4MBしかないことを示しています。
si およびそう 列には、システムのスワップとそのメモリの間で転送されるデータの量が表示されます。この例では、移動されているデータがたくさんあることがわかります。 そう は、メモリを解放するためにスワップに移動されるデータの量を示しています。 si は、スワップからメモリにプルバックされるデータの量を示しています。これは、プロセスでデータを実行する必要がある場合に発生します。
サーバーが常にメモリにスワップインおよびスワップアウトしている場合、サーバーの負荷が利用可能なリソースに対して大きすぎることを示しています。 top
を使用する 最も多くのリソースを消費しているプロセスを特定するコマンド。
top
の場合 およびvmstat
サーバーがすべてのリソースを使用していることを示します。現在の設定を最適化する必要があります。たとえば、ピーク時間外に一部の処理ジョブを実行し、不要なプロセスを強制終了し、他のプロセスを再構成して、使用するリソースを減らすことができます。要件に合わせてサーバーのサイズを増やすことも検討してください。
アプリケーションが実行され、正常に見える場合は、ネットワーク接続をリッスンしていることを確認してください。 netstat
を使用して、サービスが正しいソケットでリッスンしているかどうかを確認します 指図。詳細については、netstatを使用したリスニングポートの確認を確認してください。