免責事項 :
これは英文の記事「Error stats for pnic reported in the hostd logs」の日本語訳です。
記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事を参照してください。
ESX ホストの /var/run/log/hostd.log に 次のようなメッセージが定期的に記録されます。
YYYY-MM-DDTHH:MM:SS.###<Time_Zone> warning hostd[2100510] [Originator@6876 sub=Statssvc] Error stats for pnic: vmnic1
--> droppedRx: 1234567890
--> errorsRx: 9
--> RxCRCErrors: 9
VMware vSphere ESXi
これらのログメッセージは、ホストが最後に電源投入されてから、どれだけのパケットがドロップされたか、
あるいは、エラーを伴って受信されたかを追跡するために使用されるカウンタ値を報告しています。
errorsRx - パケットがエラーを伴って受信されるたびにインクリメントされる集計カウンタです。
パケットがエラーとして報告されているより具体的な原因を特定するには、解決策のセクションで説明するその他のカウンターについてさらに調査する必要があるかもしれません。
しかし、上記のログ例では、"errorsRx" カウンターの値が "RxCRCErrors" と一致していることがすでに確認できるため、
予期しないチェックサム値を持つパケットが受信されていることがわかります。
RxCRCErrors - CRC エラーのあるパケットが存在する場合、
通常は受信ホストへのデータパス上のどこかでパケットが破損していることを示しています。
droppedRx - pNIC でパケットがドロップされるたびにインクリメントされる集計カウンターです。
パケットがドロップされたと報告されるより具体的な原因を特定するには、
解決策のセクションで説明する追加のカウンターについてさらに調査する必要があるかもしれません。
・ これらのカウンターを理解し、トラブルシューティングを行うための第一歩として、
すべてのカウンターに関する詳細な説明や、ホストからカウンターデータを収集する方法については、以下の KB を参照してください:
Troubleshooting NIC errors and other network traffic faults in ESXi
・ NICにエラーが表示された場合は、物理的な NIC のエラーは ESXi ホストにのみ報告されるため、
ハードウェアベンダーに相談してトラブルシューティングを行ってください。
エラーの原因を特定するために、ネットワークチームと連携する必要がある場合もあります。
懸念すべきかどうかは、報告される値、報告されるタイミング、および報告される頻度によって異なります。
・ 以下の例を見ると、"Receive packets dropped" (droppedRx) カウンターの値が 1156343 であることがわかりますが、
ドロップの原因を特定するには、pNIC プライベート統計情報をさらに詳しく調べる必要があります:
NIC statistics for vmnic4:
Packets received: 1234567890
Packets sent: 1234567890
Bytes received: 1234567890
Bytes sent: 1234567890
Receive packets dropped: 1156343
Transmit packets dropped: 0
Multicast packets received: 1234567890
Broadcast packets received: 0
Multicast packets sent: 0
Broadcast packets sent: 0
Total receive errors: 0
Receive length errors: 0
Receive over errors: 0
Receive CRC errors: 0
Receive frame errors: 0
Receive FIFO errors: 0
Receive missed errors: 0
Total transmit errors: 0
Transmit aborted errors: 0
Transmit carrier errors: 0
Transmit FIFO errors: 0
Transmit heartbeat errors: 0
Transmit window errors: 0
・ 調査対象の ESX ホストの CLI で以下のスクリプトを実行することで、プライベート統計情報を収集できます。
/usr/lib/vmware/vm-support/bin/nicinfo.sh
・ 以下のプライベート統計情報の例を見ると、"rx_no_bufs" カウンターの値が "Receive packets dropped" カウンターの値と一致していることがわかります。
したがって、パケットバッファ/キューが、ホストがキューからパケットを取り出して処理する能力よりも速いペースで満たされていると結論づけられます:
NIC Private statistics:
tx_frames_ok: 1234567890
tx_unicast_frames_ok: 1234567890
tx_multicast_frames_ok: 1234567890
tx_broadcast_frames_ok: 1234567890
tx_bytes_ok: 1234567890
tx_unicast_bytes_ok: 1234567890
tx_multicast_bytes_ok: 1234567890
tx_broadcast_bytes_ok: 1234567890
tx_drops: 0
tx_errors: 0
tx_tso: 0
rx_frames_ok: 1234567890
rx_frames_total: 1234567890
rx_unicast_frames_ok: 1234567890
rx_multicast_frames_ok: 1234567890
rx_broadcast_frames_ok: 1234567890
rx_bytes_ok: 1234567890
rx_unicast_bytes_ok: 1234567890
rx_multicast_bytes_ok: 1234567890
rx_broadcast_bytes_ok: 1234567890
rx_drop: 0
rx_no_bufs: 1156343
・ バッファが満杯になる問題を解決するための1つの方法は、pNIC RX リングバッファのサイズを増やすことです。
詳細については、参照先の KB 341594 をご覧ください。
・ お使いの pNIC タイプで RSS がサポートされているかどうか、また何個の RSS エンジンがサポートされているかについては、
ハードウェアベンダーにご確認ください。RSS がサポートされている場合は、有効になっているかどうか、
および何個の RSS エンジンが設定されているかを確認してください。
有効になっていない場合は、ベンダーの推奨事項に基づき、有効化を検討することをお勧めします。
お使いの NIC で複数の RSS エンジンがサポートされていない場合は、
代替案として"デフォルト RSS" の使用についてベンダーと相談することを検討してください。
注:本記事において、「ベンダー」とは以下のいずれかを指します。
a) サーバーにデバイス(ネットワークアダプタおよび/または HBA)が搭載された状態でサーバーを購入した場合、そのサーバーのベンダー。
b) デバイス(ネットワークアダプタおよび/または HBA)を別途購入した場合、そのデバイスのベンダー。
・ パケットがドロップされるその他の原因として、ホスト上の CPU やメモリの競合が考えられます。ESXi のパフォーマンスに関するトラブルシューティングの方法については、以下の KB をご参照ください: