プロセスで使用されるリソースの制限

プロセスで使用されるリソースの制限

この問題は今回が3番目に発生し、特定のインスタンスに関する特定の考慮事項に基づいて問題を解決する方法を見つける必要がありました。だから私は私のためにすべてのステップを実行し、ほとんどの場合に動作するスクリプトを書くことを望んでいました。

現在のユースケースは、ラップトップでAFLを実行することです。それは言う:

  • CPUは非常に熱く動作するため、適切な冷却が必要です。ほとんどの場合、冷却が不十分な場合や正常に動作しない場合、CPU 速度は自動的に遅くなります。つまり、特に適切でないハードウェア(ノートブック、スマートフォンなど)でパージするときに何かが爆発するのは完全に不可能ではありません。

  • ターゲットプログラムが異常にギガバイトのメモリを占有したり、ディスク領域をジャンクファイルで埋めることができます。 AFLはデフォルトのメモリ制限を適用しようとしますが、発生する可能性があるすべての事故を防ぐことはできません。結論は、データ損失のリスクが許容されないシステムをパージしてはいけないことです。

  • ファズテストには、ファイルシステムに対する何十億もの読み書きが含まれます。最新のシステムでは、一般的にキャッシュが大量にキャッシュされるため、「物理的」I/O はかなり少なくなりますが、この式を変更できる要因がたくさんあります。潜在的な問題を監視するのはユーザーの責任です。 I / Oが非常に多いと、多くのHDDとSSDの寿命が短くなる可能性があります。

だから私は低い優先順位(ok -10またはok 10、覚えていません)(何をするのかもう一度探す必要があります)といくつかの追加制限(cpu_limitを使いたい)のRAMディスクで実行します。

私は以前もディスク使用量を制限し、ネットワークI / Oを遅くするための追加の目標を持ってこれらのタスクを実行したいと思いました。

私の目標は、次のように動作する単純なスクリプトを作成することです。

./pretend_its_on_a_slow_computer_so_my_computer_doesnt_lag.sh my_program with its arguments

スクリプトは少なくとも以下を実行する必要があります。

  • CPU使用量制限
  • ディスクI/Oを制限してSSD/HDDの寿命を延ばす
  • ネットワークI/Oの制限
  • ディスク使用量の制限
  • メモリ使用量の制限
  • 私のコンピュータを損傷する可能性があると思われる他のすべてを制限してください。 :)

これまで私が思いついたこと:

#!/bin/bash

mkdir -p /mnt/temp_ramdisk

mount -t tmpfs -o size=2g tmpfs /mnt/temp_ramdisk

cp -r . /mnt/temp_ramdisk

cd /mnt/temp_ramdisk

# Assumes trickle is installed to limit network i/o
nice 19 trickle "$@"

cp -r /mnt/temp_ramdisk .

umount /mnt/temp_ramdisk

rm -r /mnt/temp_ramdisk

しかし、これはやや薄暗く(ローカルファイルをRAMディスクに保存するより良い方法を考えることはできませんが)、RAMディスクの外部に書き込むこと、メモリの使用量が多すぎる、またはCPUを過度に加熱することに厳しい制限がありません。また、cgroupを使って改善できることがあると思いますが、まだ十分に慣れていません。

希望の効果を得るには、どのように改善する必要がありますか?

ベストアンサー1

おすすめ記事