Linuxでパケットロスが起きているか確認する方法

  • URLをコピーしました!

サーバーのレスポンスが悪い、通信が途切れる、タイムアウトが発生する。

このようなとき、 本当にパケットロスが発生しているのかを Linuxサーバー上で正しく確認できていますか?

本記事では、 Linuxでパケットロスの有無を確認するための具体的な方法を、 切り分け手順として解説します。

目次

結論:パケットロスは「1つのコマンド」では判断できない

パケットロスの確認は、

  • ping
  • インターフェース統計
  • TCP再送

複数の視点を組み合わせて判断する必要があります。

確認① ping による基本的なロス確認

ping -c 100 対象ホスト

見るべきポイント

  • packet loss が 0% か
  • time が大きくばらついていないか

1〜2%でも継続的に発生していれば異常と判断します。

※ 一時的な 1 packet loss は必ずしも障害とは限りません。

確認② インターフェースのドロップ確認(ip -s link)

ip -s link

注目すべき項目

  • RX dropped
  • TX dropped
  • RX errors / TX errors

これらが増え続けている場合

  • NIC処理能力不足
  • キュー溢れ
  • ドライバ問題

が疑われます。

確認③ ethtool によるNICエラー確認

ethtool -S eth0

よく見るカウンタ例

  • rx_dropped
  • tx_dropped
  • rx_errors
  • tx_errors

ここが増加している場合、OSより下のレイヤー (NIC / ケーブル / スイッチ)の問題を疑います。

確認④ netstat / ss によるTCP再送の確認

netstat -s | grep -i retrans

または

ss -s

判断基準

  • TCP retransmits が継続的に増加
  • established は多いが throughput が出ない

パケットロスまたは遅延の可能性が高い

確認⑤ アプリケーション視点の確認

OSレベルで問題が見えない場合でも、

  • APIタイムアウト
  • DB接続再試行

が発生していることがあります。

この場合、 アプリケーションログの再送・timeout記録 も重要な判断材料です。

パケットロスが起きていると判断できる状態

  • ping で packet loss が継続的に発生
  • RX/TX dropped が増え続ける
  • TCP retransmits が止まらない

これらが複合して確認できた場合、 パケットロスが発生している可能性が高いです。

よくある誤解

  • ping が通るから問題ない
  • CPU idle が高いからネットワークは健全
  • NIC errors は無視してよい

パケットロスは CPU使用率や負荷に現れにくい障害です。

パケットロスが疑われた時の次のアクション

  • NICドライバ・firmware確認
  • MTU不一致の確認
  • スイッチポートエラー確認
  • 仮想環境ならvSwitch設定確認

まとめ

Linuxでパケットロスを確認するには、

  • ping
  • NIC統計
  • TCP再送

必ずセットで確認することが重要です。

「通信が遅い=ネットワーク」と決めつけず、 数字で判断できる状態を作りましょう。

目次