私はLinux MintとDell XPS 15をワークラップトップとして使用しており、Gradleを使用して大規模なAndroidアプリを構築しています。
すべての最適化後も、利用可能なほぼすべてのRAM(16 GB)を使用し、スワップファイルでSWAPを使用し始めます(スワップパーティションを使用する必要がありますか?)。これはI / Oを高速化し、Cinnamon(および他のすべてのアプリケーション)を停止します。
また、I/O がこれらの問題の原因であるかどうかをテストし、dd
I/O システムに負荷を生成するコマンドを実行しても同じ問題が発生することを発見しました。 (たとえば、Mac OSではこの動作を再現できません。)
deadline
I / Oスケジューラの種類を次に変更する必要がありますが、ファイルにオプションのみが含まれている/sys/block/nvme0n1/queue/scheduler
ことがわかりましたnone
。私が理解することはこの意味です。https://www.thomas-krenn.com/en/wiki/Linux_Multi-Queue_Block_IO_Queueing_Mechanism_(blk-mq)フレームワークを使用すると、何も変更しないでください。
質問:I/O ロード中にこれらの停止問題を解決するにはどうすればよいですか?おそらく、より多くの情報を得るためにどのような指標を分析する必要がありますか?
環境:
OS: Linux Mint 18.3 Cinnamon 64-bit
Cinnamon: 3.6.7
Linux Kernel: 4.13.0-38-generic
答え1
すべての最適化後も、まだほぼすべての利用可能なRAM(16 GB)を使用してください。
それ- WHO?一般に、1970年代以降に設計されたすべての汎用オペレーティングシステムは、利用可能なすべてのRAMを使用するか、ほとんどを使用して低速ストレージコンテンツを集中的にキャッシュします。もしそれ方法VMキャッシュ何が問題なの?実行しfree -m
て出力を見てください。 「+/-キャッシュ/バッファ」という特別なマークがありましたが、これは元に戻せずに使用されていないことを意味します。メモリ不足があるとキャッシュが減ります。。
新入社員のよくある誤解なのに…
I / Oスケジューラの種類を期限に変更する必要があることがわかりました。
スケジューラは、HDDなどの遅いデバイスに適しています。 SSD / NVMEを使用すると、これは追加のオーバーヘッドにすぎません。検索時間の短縮に大きな役割を果たすHDDとは異なり、要求を並べ替えることは利点がないため、要求をキューに入れる必要はありません。
I/O ロード中にこれらの停止問題を解決するにはどうすればよいですか?
ここにはマインドリーダーはいません(例外的に、私は他の人が嫉妬しないように私の才能を隠すことを好みます。)はdd
さまざまな方法で実行できます。正確にどのように機能するかを示すスニペットを追加してみてはいかがでしょうか?
PS通常、特定のドライバの問題が解決または解決されない可能性があるため、カーネルの更新をお勧めします。