I / Oブロックによるパフォーマンスの低下をどのように処理しますか?

I / Oブロックによるパフォーマンスの低下をどのように処理しますか?

私のコンピュータに深刻なI / Oの問題が発生しました。

ソフトウェア: Kali-rolling, Linux x86-desktop-1 4.12.0-kali2-amd64 #1 SMP Debian 4.12.13-1kali2 (2017-10-03) x86_64 GNU/Linux.しかし、私は基本コアやカスタムコアなど、さまざまなコアを持っています。

ハードウェア:対応するハードウェアは次のとおりです。 Ryzen 1800X CPU、16 GiB RAM、最新のBIOSを搭載したMSI X370 SLI PLUS(バージョン3.6、しかし他の3つも試してみました)、M.2:Crucial®MX300 525GB M.2 SSDと256GB Samsung SSD 840 PRO。

問題:この問題は、ユーザーの観点から最初に説明するのが最善です。

私はLinuxカーネルソースツリーのような小さなファイルをたくさんコピーしています。これはかなりの速度低下を引き起こし、 "ls"バイナリや "dmesg"などの単純なコマンドでも実行に15秒以上かかることがあります。 I / O側では、システム全体が停止し、ブロックエントリがI / Oキューを通過できるようになるまで、すべての形式のI / Oブロックが必要なすべてが停止します。

以下を実行する際に問題が見つかりました。

  • ネットワーク経由でCIFSリソースのビデオファイルを再生します。このタイプのI / Oは、ビデオストリームに1〜2秒の遅延時間をもたらす可能性があります。
  • Webブラウザを使用してネットワーク経由でMP3ファイルを再生すると、音声が途切れることがあります。
  • 特に、多くの小さなファイルが含まれている場合は、SSDまたはM.2デバイスにローカルに何かをコピーします。

この問題は、OSをインストールした後から始まり、続行されました。

私の推論とこの問題を解決する方法は次のとおりです。ハードウェアは複数のI / O要求を同時に処理できる必要があります。 SSDと物理的に分離されたM.2デバイスを試してみましたが、すべて同じ問題があったため、これがすべてSSD / M.2の欠陥によって引き起こされたと考えるのは不合理です。また、特に4.9、4.12、4.13.2、4.13.10などのいくつかのカーネルを試してみたので、基本的なkaliカーネルにこれらの特定のI / O問題があることは不合理に見えます。私はこのパフォーマンスに影響を与えるいくつかのBIOSオプションがあるかもしれないと思いましたが、何も見つかりませんでした。とにかく私はSet Defaultsを実行し、バージョン3.4、3.5、3.6を含むいくつかのBIOSバージョンを試しました。

I / Oエラーがあるかどうかdmesgを確認しましたが、エラーはありませんでした。

また、Linuxには複数のI / Oスケジューラがあることも考慮しました。

$ cat /sys/block/sda/queue/scheduler 
noop deadline [cfq] 

スケジューラは、たとえば、次のように実行することで変更できます。

echo "noop" > /sys/block/sda/queue/scheduler

詳しくは、この質問をご覧ください。https://stackoverflow.com/questions/1009577/selecting-a-linux-io-scheduler

しかし、noop、Deadline、CFQを試してみましたが、問題にまったく影響を与えないようです。

また、不揮発性デバイスの性能を確認したいと思います。

hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads: 1112 MB in  3.01 seconds = 369.69 MB/sec
hdparm -t /dev/sda

/dev/sda:
 Timing buffered disk reads: 1122 MB in  3.00 seconds = 373.53 MB/sec

パフォーマンスは驚くべきことではなく、実際にはもっとやりました。しかし、この種の性能にもこのような問題は存在してはならない。現在経験している問題がI/Oパフォーマンスの低下に関連しているかどうかは不明です。

同じシステムでGentooを実行すると、840 PROデバイスに次の結果が表示されます(hdparm -t):

510.82 MB/sec
524.05 MB/sec

この問題をどのようにデバッグするのですか?問題が何であるかを知っている人はいますか?

ベストアンサー1

何が起こっているのか説明しませんが、ioniceドライブ操作とtc(トラフィックシェーピング)ネットワークタスクを使用して問題を解決しようとすることができます。

おすすめ記事