web-dev-qa-db-ja.com

RAMを追加すると、CPUの使用量が減りますか?

私は2GBのRAMを搭載した仮想サーバーを持っていて、平均使用量は常に1GBのRAM未満だったので、まったく同じ目的で新しいサーバーを入手しましたが、RAMは1GBしかありませんでした。しかし、今ではより多くのCPUを使用しているように思えます。

RAMが少ないということは、より多くのCPUを使用することを意味しますか?平均的なラムの使用が100%で使用されていなくても?

// Pleskパネルを備えたWebサーバーです

2
adrianTNT

答えはそれほど単純ではありませんが、本質的には-はい。

RAMを少なくすると、通常、システムはHDDでより多くの仮想メモリを使用するようになります。これにより、CPUは少し多くの作業を行う必要があります。 RAMとHDDの間でデータを移動し、特にコンテキストスイッチがある場合はページテーブルを調整するため、アプリケーションで使用できるCPU時間は少なくなります。

同じ理由で、同じお金でRAMを2倍にするか、CPU速度を5%-10%上げるかのいずれかを選択した場合、通常は2倍に費やす方が良いでしょう。羊。

4
sybreon

CPU使用率は、それが有用な作業を表しているかどうかわからないため、多くの場合、赤ニシンです。 CPU使用率が高い場合は、アプリケーションが多くの有用な作業を行っている(良い)ことを示している可能性があります。一方、アプリケーションが非常に非効率的(悪い)であることを示している可能性があります。

アプリケーションのスループットレイテンシーなど、有用な作業の直接的な測定に焦点を当てることをお勧めします。 Webサーバーの場合、これらには、同時ユーザーの最大数やサーバーが各要求に応答するのにかかる時間などのメトリックが含まれます。次に、これらのメトリックをCPU使用率と比較して、CPU効率を把握できます。

特定の質問に答えるには、特定の環境でのパフォーマンスのボトルネックによって異なります。

多くの状況で、RAMを追加すると、より有用な作業を実行できるため、実際にはCPU使用率が増加します-これは良いことです。たとえば、高負荷のWebサーバーを想像してください。ファイルの提供。パフォーマンスのボトルネックはディスクI/Oである可能性が高く、アプリケーションはほとんどの時間をディスクの待機に費やすため、CPU使用率はかなり低くなります。さらに追加した場合RAM =ファイルをディスクにキャッシュするために、アプリケーションは待機に費やす時間が少なくなり、処理に多くの時間がかかるため、CPU使用率とスループットが高くなります。

他の方法でも機能します。たとえば、コンピュータアルゴリズムには、空間の複雑さと時間の複雑さのトレードオフがしばしばあります。つまり、追加のRAMを使用すると、アプリケーションで使用するCPUが少なくなるため、CPU使用率が低くなります(または、CPUサイクルあたりのスループットが高くなります)。@ sybreonは、 RAMは、システムが制約されたリソースの管理にそれほど多くの労力を費やす必要がないため、CPU使用率をより効率的にすることができます。

2
Tom Shaw