GNU/Linux >> Linux の 問題 >  >> Ubuntu

特定のプロセスのリソース使用量を制限するにはどうすればよいですか?

実行する必要のあるアプリケーションのプロセスがありますが、その処理にIOの使用量が多すぎます。そして、本当に私のコンピュータをクラッシュさせ、それが実行されている間、他のことをすることを不可能にします。

それで、特定のプロセスのIO使用量、RAM、およびCPUを制限する方法があるかどうか疑問に思いましたか?そしてもちろん、そのサブプロセス。

これは私のUbuntu18.04LTSシステムにあります。

ベストアンサー

すべてのcgexecを組み合わせて使用​​する必要があります 、cpulimit およびionice

  1. RAMとスワップを制限する:

    sudo cgcreate -g memory:/szMyGroup
    echo $(( 512 * 1024 * 1024 )) | sudo tee /sys/fs/cgroup/memory/szMyGroup/memory.limit_in_bytes
    echo $(( 1024 * 1024 * 1024 ))  | sudo tee /sys/fs/cgroup/memory/szMyGroup/memory.memsw.limit_in_bytes
    

    上記のコマンドは、szMyGroupという名前のコントロールグループを作成します (例:あなたの場合、group-great-uncle )、szMyGroupで実行されるプロセスに上限を設定します 最大512MBの物理メモリと最大1024MBのスワップ、次に:

    sudo cgexec -g memory:szMyGroup szMyProgram
    

    szMyGroupの下でプログラムを実行します コントロールグループ、したがって、制限に準拠していることを確認します

  2. ディスクIOを制限する:

    sudo ionice --class 3 --pid $(pgrep -f szMyProgram)
    

    上記のコマンドはpgrepを使用します 現在のコマンドラインの一部を再利用して、ディスクアクセスを制限し、他のプログラムがディスクを使用していない場合にのみディスクを使用するようにします。

  3. CPUを制限する:

    sudo cpulimit --limit=25 --pid=!#:4
    

    プログラムのCPUは現在最大の25%に制限されています

プログラムが最初に多くのCPUを使用しない場合は、cpulimitの値を現在使用している値の半分以下に下げます。


Ubuntu
  1. LinuxでプロセスのCPU使用率を制限する方法

  2. アプリケーションのメモリ使用量を制限するには?

  3. 単一の Linux プロセスのメモリ使用量を制限する

  1. Pleskでリソース使用情報を表示する方法

  2. Linux でメモリ使用量はどのように報告されますか?

  3. 特定のプロセスの .pid ファイルを見つける方法

  1. UbuntuでPlexのTCP接続を増やす

  2. Linux –単一のLinuxプロセスのメモリ使用量を制限しますか?

  3. Linux で特定のプロセスのオープン FD 制限を確認する