特定の 断続的なバグ は、ディスクの読み取り速度が遅い場合にのみ現れる可能性があると思います。トラブルシューティングは、確実に再現できないため困難です。
IOを単に優先順位の高いプロセスでゴブリングする以外に、低速のハードドライブがあることをシミュレートする方法はありますか?
nbd 、ネットワークブロックデバイスを使用し、trickle
などを使用して、デバイスへのアクセスをレート制限します。
Sudo apt-get install nbd-client nbd-server trickle
#echo 1> /proc/sys/vm/drop_caches
遅くなります:)
キャッシュされたページを利用する代わりに、ディスクからの読み取りを強制します。
本当に洗練されたい場合は、scsiフォールトインジェクションフレームワークを使用して、n回ごとに読み取りエラーを偽装するようなことを行うことができます。
USB 1.1ハブをお持ちですか?それとも遅いSDカード?彼らはあなたを10mbps以下に下げるでしょう。
これは決して完全な解決策ではありませんが、他の手段と併用すると役立つ場合があります。プロセススケジューラによく似たI/Oスケジューラがあり、微調整できます。
最も注目すべきは、実際に異なるスケジューラーから選択できることです。
~# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
~# echo "deadline" > /sys/block/sda/queue/scheduler
~# cat /sys/block/sda/queue/scheduler
noop anticipatory [deadline] cfq
~#
deadline
は、より強く再現可能な結果を得るのに役立つ場合があります。
noop
は、その名前が示すとおり、非常に馬鹿げているため、ほとんど労力をかけずにI/Oパフォーマンスに大きな混乱をもたらすことができます。
anticipatory
とcfq
は両方とも、それについて賢くしようとしますが、cfq
は一般に2つのうち賢いです。 (覚えているように、anticipatory
は実際にはカーネルが複数のスケジューラーのサポートを開始する直前のレガシースケジューラーです。)
ハードドライブ自体の速度を落とそうとするのとは別に、大量のディスクI/Oを引き起こす可能性のある bonnie ++ などのファイルシステムベンチマークツールを使用してみることもできます。
Sudo apt-get install bonnie++
UbuntuインストールCDのisoなどの大きなファイルのコピーを実行して、2回実行することができます。それはあなたのドライブをかなり遅くするはずです。
仮想マシンを使用してディスクアクセスを制限することができます...ここでは、Virtualbox 5.8でそれを行う方法に関するヒントを示します。ディスクイメージの帯域幅の制限 https://www.virtualbox.org/manual/ch05.html#storage-bandwidth-limit
なぜiotop
を実行して、デバッグしようとしているプロセスが大量のディスク読み取り/書き込みを引き起こしていないか確認してください。
make -j64
はどうですか?新しい200行のパフォーマンスパッチを説明する記事では、make -j64
は多くのコンピューターリソースを消費するタスクでした
私は最近、私が持っているセットアップを見つけました
google-drive-ocamlfuse
16秒のレイテンシーが十分に遅くない場合は、ルーターのプラグを抜くだけです。
参考のために、ここに元のユースケースがあり、このアイデアが得られました。 https://github.com/goavki/apertium-apy/pull/76#issuecomment-355007128