最近、2つのコア(2つの論理CPUなど)を持つDellコンピュータにScientific Linux 7(64ビット)をインストールしました。ファン、クーラーなどを清掃するためにしばらくコンピュータの電源を入れておらず、コアの1つ(または両方)で高CPU(たとえば100%)を数分間使用すると、コンピュータがシャットダウンします(通常、次の場合)。新しく来た人ディスプレイグラフィックの破損またはPDF文書の読み込みFirefoxブラウザまたは、次のように端末で長期実行コマンドを実行します。作る)。
システムをクリーンアップする前に、CPU使用率をコアあたり約75〜80%に制限したいと思います(いいえすべてのコース! ) したがって、予期しない終了は発生しません。これにより、プロセスはCPU使用率の制限を超えることなく複数のCPUを利用し続けることができます。これを行う方法はありますか?
答え1
数日間の深い調査の終わりにCPU使用率を減らす2つの方法が見つかりました。プロセスのため。通常、システム全体のCPU使用率を減らすには、最も継続的なCPUを使用するいくつかのプログラムがある可能性があるため、制限する必要があります。それら機械全体に負担をかけるよりも。バッテリ寿命を節約するためにこれを行う場合は、ハードウェアの電力使用量を制御することもできます。同調またはパワートップ、ほとんどのディストリビューションには、これを行うのに役立つツールがあります。
- 停止/継続信号
シグナルはUNIXから存在してきました。 SIGSTOP または SIGTSTP をプロセスに送信します。 (違いは、電子が次の場合にプロセス衝突を引き起こす可能性があることです。〜しなければならないクリーンアップを実行するには、プロセスが後者で強制的に停止されるのではなく、プロセスに適したプロセスを使用して一時停止します(CPUを確保し、温度を下げることもあります)。次に、プロセスを再開するためにプロセスにSIGCONTを送り、CPUを占有します。この方法は、CPUグラフに一連の「スパイク」を生成し、プロセスを一時停止して十分な時間を提供しないため、プロセッサが過熱するのを防ぎます。
このアプローチの結果は、これらの一時停止が発生しないことです。なめらかこれは、ビデオの再生やWeb検索がスムーズではないことを意味するため、シェルコマンド(マルチプロセスプログラムやGoogle Chromeなどのコマンド、またはこの方法ではうまく機能しません)でこの方法を使用する必要があるかもしれません。明らかにこれいいえsystemdなどのシステムプロセスを一時停止/再開することをお勧めします。
手動で行うこともできますが、CPU制限この方法を使用する素晴らしい小さなプログラムです(SIGSTOP / SIGCONTを使用)。説明とは異なり、コアが複数ある場合でも、指定する CPU %は 0 ~ 100 です。いつでもCtrl-Zを使用して端末でタスクを一時停止できます。
- CPU性能(おすすめ)
これはLinuxカーネルに組み込まれているため、ほとんどのディストリビューションでこれを提供する必要があります。ここない場合)。このコマンドラインユーティリティはCPU周波数を管理するため、次のコマンドを使用してほぼ全体のCPUを制御できます。知事州(例:パフォーマンス、省電力など)他の操作も実行できます。一時停止/再開方法とは異なり、プロセスは次のとおりです。たくさんこれでより柔らかくなります。プロセッサの最大周波数を設定する必要があります。
cpupower frequency-info
利用可能なプロセッサの状態を表示するには、実行してください。- rootで
cpupower frequency-set -u <frequency>
持っている最も低い周波数から始めて、過熱しない最も高い周波数を見つけます。 - (オプション)必要に応じて、システム温度を表示できるlm_sensorsパッケージをインストールできます。その後、実行して
sensors-detect
すべての質問に「はい」と答えます。最後に、sensors
現在の温度とシステムが過熱している臨界温度を確認するために実行します。
この時点で、現在の温度ははるかに低くなければなりません。一部のパフォーマンス集約型プログラム(ゲームなど)は、上記のコマンドを入力した後に中断される可能性がありますが、このメッセージを含むポップアップが表示された場合は、強制終了よりもプログラムを待つ必要があります。システムを再起動するたびにこのコマンドを入力する必要があります(自動的に実行することができない場合)。バラよりこれそしてこれCPUPower に関する追加情報。