web-dev-qa-db-ja.com

低速のハードドライブをシミュレートできますか?

特定の 断続的なバグ は、ディスクの読み取り速度が遅い場合にのみ現れる可能性があると思います。トラブルシューティングは、確実に再現できないため困難です。

IOを単に優先順位の高いプロセスでゴブリングする以外に、低速のハードドライブがあることをシミュレートする方法はありますか?

18
ændrük

nbd 、ネットワークブロックデバイスを使用し、trickleなどを使用して、デバイスへのアクセスをレート制限します。

Sudo apt-get install nbd-client nbd-server trickle
15
poolie
#echo 1> /proc/sys/vm/drop_caches

遅くなります:)

キャッシュされたページを利用する代わりに、ディスクからの読み取りを強制します。

本当に洗練されたい場合は、scsiフォールトインジェクションフレームワークを使用して、n回ごとに読み取りエラーを偽装するようなことを行うことができます。

http://scsifaultinjtst.sourceforge.net/

5
ppetraki

USB 1.1ハブをお持ちですか?それとも遅いSDカード?彼らはあなたを10mbps以下に下げるでしょう。

4
Oli

これは決して完全な解決策ではありませんが、他の手段と併用すると役立つ場合があります。プロセススケジューラによく似た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パフォーマンスに大きな混乱をもたらすことができます。

anticipatorycfqは両方とも、それについて賢くしようとしますが、cfqは一般に2つのうち賢いです。 (覚えているように、anticipatoryは実際にはカーネルが複数のスケジューラーのサポートを開始する直前のレガシースケジューラーです。)

3
Nicholas Knight

ハードドライブ自体の速度を落とそうとするのとは別に、大量のディスクI/Oを引き起こす可能性のある bonnie ++ などのファイルシステムベンチマークツールを使用してみることもできます。

Sudo apt-get install bonnie++
2
ajmitch

UbuntuインストールCDのisoなどの大きなファイルのコピーを実行して、2回実行することができます。それはあなたのドライブをかなり遅くするはずです。

2
RolandiXor

仮想マシンを使用してディスクアクセスを制限することができます...ここでは、Virtualbox 5.8でそれを行う方法に関するヒントを示します。ディスクイメージの帯域幅の制限 https://www.virtualbox.org/manual/ch05.html#storage-bandwidth-limit

1
Adi Roiban

なぜiotopを実行して、デバッグしようとしているプロセスが大量のディスク読み取り/書き込みを引き起こしていないか確認してください。

0

make -j64はどうですか?新しい200行のパフォーマンスパッチを説明する記事では、make -j64は多くのコンピューターリソースを消費するタスクでした

0
Pawełkowy

私は最近、私が持っているセットアップを見つけました

  • ディレクトリをmyGoogle Driveに移動しました
  • 超超低速クライアント経由でマウントgoogle-drive-ocamlfuse
  • 元のパスから新しいパスへのsymlinkを作成しました

16秒のレイテンシーが十分に遅くない場合は、ルーターのプラグを抜くだけです。

参考のために、ここに元のユースケースがあり、このアイデアが得られました。 https://github.com/goavki/apertium-apy/pull/76#issuecomment-355007128

0
Androbin