Linuxカーネルを使用するVMware Workstation仮想化ホスティングプラットフォームでは、私はしばしば次の問題を抱えています。
[ 2181.746685] nvme nvme0: I/O 0 QID 4 timeout, completion polled
私はこれが仮想NVMeコントローラ/ VMware仮想プラットフォーム実装の欠陥によるものだと思います。
残念ながら、これが発生するたびにシステムは約30秒間ブロックされます。この仮想コントローラは非常に高速な実際のSSDと効果的に通信できますが、長すぎます。
これで、Linux NVMeモジュールのオプションを調整してタイムアウト(!)を2秒に短縮しようとしていますcat /sys/module/nvme_core/parameters
。結局のところ、これはほぼ最大値に達した非常に高速なSSDなので、NVMeコマンドが2秒未満で実行されない場合は、疑わしい仮想NVMe制御サーバー以外のデバイスがオフになります。
io_timeout
30秒から2秒に変更すると、どのような欠点がありますか?仕事が失敗すると予想した急いでこれは基本的にエラーがより速く発生することを意味し、これはすべての回復メカニズムがより速くトリガーされることを意味します。
クラウドベンダーのドキュメントを見たことがあり、io_timeout
プラットフォームで無限に設定することをお勧めしますが、彼らのプラットフォーム必ずしも正しいアプローチではありません私のVMwareワークステーションプラットフォーム?