基本的な状況:
openSUSEでいくつかのNTFSディスクをコピーしています。それぞれが2TBです。これを行うと、システムの動作が遅くなります。
私の推測:
キャッシングが原因である可能性が高いと思います。Linuxは、有用なキャッシュ(KDE 4 bloat、仮想マシンディスク、LibreOfficeバイナリ、Thunderbirdバイナリなど)を破棄し、代わりに、読み取り専用になるコピーディスクからのすべての使用可能なメモリ(合計24 GB)を埋めることを決定します。一度、それから書かれ、二度と使われることはありません。したがって、これらのアプリケーション(またはKDE 4)を使用するときはいつでも、ディスクを再度読み取る必要があり、ディスクから膨張を再度読み取ると、フリーズ/一時的な中断が発生します。
キャッシュがなくなったことと、これらの肥大化したアプリケーションが大量のキャッシュを必要とするという事実のために、これはシステムをひどく遅くします。
USBであるため、ディスクとディスクコントローラーはボトルネックではなく、ioniceを使用しても高速にはなりません。
マザーボードの速度が遅くなるだけでなく、キャッシュであると思います。すべてのコピーを停止しても、すべてを再キャッシュするまでしばらくの間、途切れ途切れになります。
また、コピーを再開すると、再び途切れるまでに1分かかります。しかしまた、それを約40 MB / sに制限することができ、再び高速に実行されます(適切なものがキャッシュされているためではなく、マザーボードバスにシステムディスク用の余分な帯域幅がたくさんあるため)。マザーボードのI/O機能が完全に消費されることによるパフォーマンスの低下を完全に受け入れることはできますが(これは100%使用され、0%の無駄な電力を意味し、私を幸せにします)、このキャッシュメカニズムがこれでひどく機能することを受け入れることはできません特定のユースケース。
# free
total used free shared buffers cached
Mem: 24731556 24531876 199680 0 8834056 12998916
-/+ buffers/cache: 2698904 22032652
Swap: 4194300 24764 4169536
Ubuntuでも同じことを試しましたが、代わりにシステム全体がハングします。;)
そして明確にするために、私は「システム」のためにではなく、「キャッシュ」のためにメモリを空けておく方法を求めています。キャッシュメモリは必要に応じて自動的にシステムに戻されることは知っていますが、私の問題は、特定のもののキャッシュ用に予約されていないことです。
これらのコピー操作にメモリ使用量を制限して、いくつかの重要なものがキャッシュされたままになるように指示する方法はありますか?したがって、速度低下は通常のディスク使用量の結果であり、同じ一般的に使用されるファイルを再読み取りしませんか?たとえば、キャッシュ/バッファとして使用できるプロセス/ユーザー/ファイルシステムごとの最大メモリの設定はありますか?