SyS_pollがたくさん表示されるのはなぜですか?

SyS_pollがたくさん表示されるのはなぜですか?

Synology NASに接続されている2つの異なるLinuxデスクトップがあります。

10.0.0.20:/volume1/chronicle  /chronicle        nfs rw,hard,intr 0 0

コンピュータが完全に停止し、システムモニタにIOWaitが確実にブロックされていると表示されることがよくあります。たとえば、ムービーの再生は停止しますが(ほとんどの場合)、まだVLCを終了して再開できます。映画ファイルをローカルSSDにコピーすることもできます。この方法は、IOWait操作を実行すると転送中に一時停止します。 NAS 共有に関連しない操作を実行する場合、通常、停止現象は発生しません。

理由を見つけようとしていますが、およびに関するマニュアルページやIOWaitその他のpollリソースを理解できませんepoll

この問題を特定して解決するにはどうすればよいですか?

マイプロセスリストの部分画面ダンプ

ベストアンサー1

IOWaitが必ずブロックする必要はありませんが、プロセスはI / Oを待つ以外に何もしません。一般的なコードパターンは、非ブロック方式でファイルI / Oを実行し、それが発生するのを待っている間に別の処理を実行することです。しかし、最終的にはあなたが望むものが不足するでしょう。できるこれにより、poll(2)を実行して要求された非ブロックI / Oを見つけることができます。これは上部出力にSyS_pollとして表示されます。あるいは、より複雑な設定を使用して異なるインターフェイスを持っていますが、より集中した出力を提供するepoll(2)を呼び出すこともできます。あるいは、概念の古い実装ですが、監視中のファイル記述子を選択するために別の構造を使用するselect(2)を呼び出すこともできます。監視するファイル記述子の数が比較的少ない場合、選択呼び出しはポーリングよりも効率的である可能性があります。ただし、監視するように設定したファイルディスクリプタがまれであるか選択するのが難しいほど大きなファイルディスクリプタがいくつか含まれている場合は、ジョブ設定が価値があるほど監視しているかどうかに応じて、ポーリングまたはepollが優れています。エポール。

デフォルトでは、これは要求されたワークロードと比較してNASアクティビティが遅いことを意味します。これらすべてが家のような特定の地域にあると仮定すると、最初に考えるのは、NASに一種のドライブエラーが発生しているのでしょうか?ドライブの1つに障害が発生すると、RAID 2からRAID 7までのパフォーマンスが低下することが知られています。 2つのドライブに障害が発生すると、RAID 6とRAID 7のパフォーマンスが大幅に低下する可能性があることが知られています。

一部のネットワーク構成エラーがある可能性があります。ネットワークポートの不一致が依然として問題であるかどうかはわかりませんが、実際にネットワークの問題を見ると、あるデバイスは半二重に設定され、他のデバイスは全二重に設定されるなど、自動ネゴシエーションが失敗することがよくあります。その結果、競合やネットワーク転送エラーが発生する可能性があります。

ifconfig -a

UNIX または Linux システムで発生したネットワークエラーの数を表示します。 Linuxでは、これは各インターフェイスの出力の最後の行です。この行のすべての数字はゼロでなければなりません。この行の数が比較的急速に増加すると、深刻なネットワークの問題があることを示します。

また、すべてのデバイスがネットワークの最大速度で通信していますか?有線ネットワークの場合、ファーストイーサネットはもはや私たちが考えるファーストイーサネットではありません。今日、ほとんどのデバイスはギガビット以上の速度で送信したいと考えています。ワイヤレスならhttps://en.wikipedia.org/wiki/IEEE_802.11これで最大802.11axを使用できると教えてください。私のネットワークはいくつかのバージョンより遅れているようですが、コンテンツをストリーミングしていないため、気づかないほど速いです。しかし、そうです。したがって、すべてのデバイスの通話速度が同じであることを確認することをお勧めします。これにはルーターが含まれますが、無線ネットワークではしばしば見落とされるデバイスです。 (少なくとも私の経験では、私の家族はルータを接続しないので、それについては考えません。)

おすすめ記事