Linuxでの制限のCPU使用率の三つの方法(転送)
最終的には2017年11月4日21時58分30秒にリリース元woodcolは数6701コレクション読み
立ち上げ
、クラウドサーバでは、BTCCは、リアルタイムの取引データサーバプログラムを取得棚を借りてwhileループがデータ情報の処理に使用されているため、クラウドサーバーのプロセッサ使用率は90%以上でした。CPU使用率が高いメールがメールボックスで2日間受信されました。インターネットで次のことがわかりました。 CPU使用率を制限する方法。以下のcuplimitメソッドを使用しましたが、apt-getを使用してインストールするときにPythonコンパイラエラーが発生したため、cpulimitソースコードをダウンロードして自分で作成しました。
差出人:http://blog.163.com/song_0803/blog/static/4609759720091014106684/
LinuxでCPU使用率を制限する3つの方法
1、Apache自体の制限機能(RLimitCPU)
http://www.wrensoft.com/forum/archive/index.php/t-12.html
この投稿を海外で引用
Ray03-19-2008、05:20 AM
PHPテストを使用して、問題が明白であることを示すことができますが、制限がないことを証明することは決定的ではありません。
その理由は、サーバー上でのPHPの構成方法に依存するためです。PHPスクリプトエンジンが、ApacheによってフォークされたCGIアプリケーションとして設定されている場合、RLimit *工作員が適用され、PHPスクリプトがこれを証明できます。ただし、httpd内では、制限はPHPエンジンには適用されず、
この制限は、Apacheサブプロセス自体ではなく、Apacheサブサービス要求から派生したプロセスに適用されます。このスコープには、CGIスクリプトとSSI実行コマンドが含まれますが、Apache親プロセスから派生したすべてのプロセスは含まれません。たとえば、パイプラインログ。
子プロセスがプロセスを生成しない場合、または多くのリソースを占有するこのプロセスが生成されたプロセスに属していない場合、その方法はありませんか?このメソッドは機能しません。
2.システムのulimitコマンドを使用してリソースの使用を制限する
設定ファイルは次の場所にあります。
/etc/security/limits.conf
たとえば、次のとおりです。
xok_la hard cpu 1
xok_la hard fsize 50000
xok_la hard memlock 1000
xok_la hard nofile 50
xok_la hard nproc 50
この方法で制限することは可能です。制限するのはユーザーに基づいており、メモリ、CPU時間、開いているファイルの数などを制限できます。前提は、このシステムにログインする必要があることです。このユーザーとしてのみファイルを実行する場合それが上手くいかない場合は、それでも……あきらめる必要があります。
3,安装CPU Usage Limiter for Linux
それは何ですか?
cpulimitは、プロセスのCPU使用量を制限しようとする単純なプログラムです(CPU時間ではなくパーセンテージで表されます)。これは、CPUを使いすぎないようにする場合に、バッチジョブを制御するのに役立ちます。nice値やその他のスケジューリング優先度に関するものではなく、実際のCPU使用量に基づいて機能します。また、システム全体の負荷に動的かつ迅速に適応することもできます
。CPUの使用率を制限することができますが、時間はかかりません。
インストールを開始します。
公式アドレス:http://cpulimit.sourceforge.net/
cd / root / install /
svn checkout https://cpulimit.svn.sourceforge.net/svnroot/cpulimit/trunkcpulimit
cd cpulimit
make
cp ./cpulimit / usr / sbin
とてもシンプルで楽しいですか?
制限方法:
たとえば、プロセス名を制限する場合、プロセス名httpdのCPUを40%に制限します。
cpulimit --exe httpd --limit 40
cpulimit --exe / usr / local / bin / httpd --limit 40
プロセスのCPUをpid 2960で55%に制限する
cpulimit --pid 2960 --limit 55
topコマンドのCPUの変化をゆっくり比較してください。
別の完璧な
CPUが200%を超えるプロセスを使用するように現在のプロセスを自動的に制限し、CPUを100%に制限する
`ps -aux | awk '{if($ 3> 20)print $ 2}'`のxの場合; do cpulimit --pid $ x --limit 100; 終わった
cpulimitコマンド:
エラー:ターゲットプロセスを名前またはPIDで指定する必要があります
使用法:cpulimit TARGET [OPTIONS ...]
TARGETは次のいずれかでなければなりません:-p
、
-- pid = Nプロセスのpid(-zを意味します)- e、-exe = FILE実行可能プログラムファイルの名前または絶対パス名
オプション
-l、-limit = N許可されるCPUのパーセンテージ0〜100(必須)
-v、-verbose show control statistics
-z、- -lazy exit適切なターゲットプロセスがない場合、またはプロセスが終了した場合
-h、--helpこのヘルプを表示して終了