アプリケーション用のサーバーを実行しているのか、ローカルマシンだけを実行しているのかにかかわらず、コンピューターが最善を尽くし そのため、コンピュータのCPU、ディスク、およびメモリ使用量を必ず監視する必要があります。 メモリ使用量やディスク使用量などの監視は、実際にはかなり簡単です。 どのくらいのディスク容量が残っていますか? ディスクは断片化されていますか? 使用しているアプリケーションに十分なRAMがありますか? 定期的にメモリを交換していますか?
それらは答えるのが簡単な質問であり、あなたが尋ねるべき質問です。, しかし、いくつかの質問は、特にCPUメトリックに関しては、より複雑です。 確かに、全体的なCPU使用率などの単純なメトリックがあります。 しかし、Linuxを使用している場合は、CPU負荷など、より難解な(そして時にはより有用な)メトリックがあります。 この記事では、CPU負荷メトリックが実際に何を意味するのか、そしてそれを使用してサーバーを最適化する方法について説明します。
CPU負荷対CPU使用率
最初に理解すべきことは、CPU負荷がCPU使用率と同じものではないことです。, もう、彼らはかなり異なります。 CPU使用率は、CPUが何かを積極的に計算するのに費やす時間をパーセンテージ単位で測定したものです。 たとえば、最後の54秒のうち60秒間の中断のない処理能力を必要とするプログラムがある場合、あるコアのCPU使用率は90%になります。 代わりに、プログラムが一つのコアで六秒の処理時間しか必要としなかった場合、使用量は10%になります。
ほとんどの企業は、サーバーのCPU使用率をできるだけ100%に近づけるよう努めています。, ほとんどのサーバーは全体的なコンピューティングパワーで販売されており、サーバーが30%のCPU使用率しかない場合は、プロセッサパワーが多すぎます。 プロセッサを下位層にダウングレードし、コストを節約し、サーバーのパフォーマンスの品質を低下させることはありません。
CPU負荷
CPU負荷が異なります。 CPUが動作している時間の割合を測定する代わりに、CPU負荷は、一度にプロセッサコアを使用または待機しているプログラムの数を測定します。 完全にアイドル状態のプロセッサのロード値は0になります。, 私たちの前の例では、我々はの一分のロード時間を持つことになります。9と.1、それぞれ。 それはかなり直感的です。 ただし、CPU負荷について直感的ではないのは、1の値が必ずしも完全にロードされた測定値ではないということです。
代わりに、”完全な”CPU負荷を構成するものは、CPUが自慢するオペレーティングシステムスレッドの数に依存します。 最近のほとんどのCpuは、複数のCPUコアを構成し、複数のCPUスレッドを実行しています。 あなたのCPUが四つのコアを持っている場合、1のCPU負荷は完全にロードされたCPUではありません。 代わりに、それは唯一の四分の一ロードされます。, 代わりに、負荷値が4であり、1ではない場合、CPU負荷はCPUの負荷がいっぱいと見なされます。
LinuxのCPU負荷を解読する
LinuxのCPU負荷の合計を表示するプログラムを実行すると、最初は少し混乱する可能性があります。 Uptimeやtopのようなコマンドを実行すると、1.68 0.55 5.91のようなCPU負荷値が表示されることがあります。 あなたが探しているものがわからない場合は、これはノイズのように見えます。 ありがたいことに、これは実際に解読するのはかなり簡単です。 ここには三つの値があり、それらを順番に見ていきます。
最初の値は1.68です。 これは、直前のCPU負荷の値です。, 前に述べたように、これは最後の最後にCPU時間を使用していたプログラムの数の尺度です。 したがって、このマシンの最後の分の間に、CPU処理時間を使用するか、CPU処理時間を待っているかのいずれかの平均1.68プログラムがありました。 これがシングルスレッドCPUの場合、コンピュータが過負荷になっていることを意味します。 ユーザー待ちのためのプログラムのCPUを体験が劣化します。 代わりに、これがデュアルコアコンピュータまたはクアッドコアであれば、ユーザーは最後の最後の間に、必要なだけ早くCPU時間を取得することができます。,
第二の値は0.55です。 これは最後の5分間の測定です。 前に説明したように、1以下の測定値は、CPUがそのウィンドウで完全にアイドル状態になっていることを意味します。 この場合、CPUはほぼ半分の時間アイドル状態でした。 常に何かをするようにCPUを最適化しているのであれば、それは良い兆候ではありません。
最後の数値5.91は、最後の15分の測定値です。 あなたがエイトコアCPUを使用している場合、この数は特に衝撃的ではありません。 デュアルコアCPUを使用している場合、5.91のような数字は、CPUが非常に過負荷になっていることを意味します。, ユーザーが定期的に待ってCPU時間は、その体験を大幅に劣化します。
Unix対Linux CPU負荷
UnixでCPU負荷測定を使用することに慣れている場合、これらの数値のいくつかは一種の高いように見えるかもしれません。 これは、UnixとLinuxがCPU負荷を異なる方法で測定するためです。 Unixは、cpuの負荷を明示的にcpu処理を積極的に使用しているか待機しているプログラムの尺度として測定します。 Linuxは物事を少し違って測定し、どのように理解することが優れたシステム管理の鍵です。,
Linuxは、待機状態にあるプログラムに加えて、現在CPU時間を使用しているか待機しているプログラムの両方を調べることによって、CPU負荷 たとえば、ネットワーク要求を待っているプログラムや、ディスクから何かをロードするプログラムは、UnixのCPU負荷にはカウントされません。 Linuxでは、そうです。 これがより良い方法か悪い方法かは、ユースケースによって異なります。 全体的なCPU使用率だけを測定しようとしているなら、Unixはより良いインターフェイスを提供します。, しかし、ネットワーク要求を待っている30秒間ロックされたプログラムがある場合、Linuxはそれを教えてくれます。 Unixはそのデータをまったく表面化しません。
CPU負荷を最適化する
CPU負荷を最適化するための銀色の弾丸はありません。 それはあなたが全体的にアプローチする必要があるプロセスです。 CPU使用率と同じように、サーバー上にいるときは100%に近づきたいが、終わらないようにしたい。 場合によっては、CPU負荷を最適化するプロセスは非常に簡単です。 たぶん、あなたのサーバーは同時に二つのスレッドしか利用しません。, その場合、サーバー負荷の最適化は、デュアルコアプロセッサを持つよりも複雑ではありません。 あなたは、これらのプログラムが時間内に完了していることを確認するために、より高速なプロセッサが必要な場合がありますが、
ほとんどのシステムは、実際には正確に二つのアクティブなスレッドに自分自身を制限しません。 ほとんどのサーバははるかに複雑です。 そして、本当の課題の一つは、それがあまりにも低く行くと、ユーザーエクスペリエンスを低下させることなく、あなたのお金を節約するため、できるだけ低 サーバーが実行するコードを最適化する必要がある可能性があります。, 時には、必要などのプログラム時間を消費待機中のようなデータベースのクエリ. できます本当にうまく管理できなければならないのコアカウントおりました。 ボトルネックになっているサーバーには多くの原因があり、さまざまな方法で修正することができます。
あなたのCPU負荷はどうですか?
CPU負荷を監視および最適化することは、サーバーメモリを最大限に活用するための重要な部分です。 残念ながら、それはまた、時間のかかる、手動のプロセスです。 前述のように、ほとんどのLinuxコマンドは15分のwindowsに対してのみCPU負荷を提供します。, それは良いことです;あなたはそれよりもはるかに広い窓を望んでいません。 あなたはそれらから有用な情報を得るのが難しい時期を過ごすでしょう。 しかし、15分のローリング期間にわたってCPU負荷に目を保つことは頭痛の種です。
幸いなことに、これらの種類のものを監視するための優れたツールがあります。 たとえば、Scalyrはいくつかのログを取り込むだけでCPU負荷を監視できます。 単純な数値プリントアウトを取得するだけではありません。, 代わりに、時間の経過とともに全体的なCPU負荷を示す素晴らしいビジュアルが表示されます。 これは、CPUで最も要求の厳しい特定のウィンドウを特定するのに役立つため、特に便利です。 最適化サーバの性能を意味理解いただけでなく高いレベル。
優れたシステム管理者であることの一部は、あらゆる方向からサーバーを理解することを意味します。 CPU負荷をどのように解釈し、どのように最適化するかを知ることは、会社のサーバー投資を最大化するための重要な部分です。, それを行う前に、サーバーのCPU負荷が実際に何であるかを理解する必要があります。 サーバーのCPU負荷の監視を開始するには、今日よりも良い日はありません。 今日、最適化の計画を策定することができます。
この投稿はEric Boersmaによって書かれました。 Ericはソフトウェア開発者および開発マネージャーで、医薬品のITセキュリティから米国政府向けのインテリジェンスソフトウェアの作成、非営利のため, 彼は道に沿って学んだことについて話すのが大好きで、他の人にも耳を傾け、学ぶことを楽しんでいます。