web-dev-qa-db-ja.com

TCPパケット損失をどのように受動的に監視しますか? (Linux)

TCP自分のマシンへ/からの接続)でのパケット損失を受動的に監視するにはどうすればよいですか?

基本的に、バックグラウンドで動作し、TCP ack/nak/re-transmittsを監視して、どのピアIPアドレスで大きな損失が発生していると思われるかに関するレポートを生成します。

私がSFについて見つけるこのような質問のほとんどは、iperfなどのツールを使用することをお勧めします。しかし、マシン上の実際のアプリケーションとの接続を監視する必要があります。

このデータはLinux TCPスタックにあるだけですか?

65
nonot1

問題の規模の一般的な意味で、netstat -sは再送信の総数を追跡します。

# netstat -s | grep retransmitted
     368644 segments retransmitted

より詳細なビューを取得するには、segmentsのgrepを使用できます。

# netstat -s | grep segments
         149840 segments received
         150373 segments sent out
         161 segments retransmitted
         13 bad segments received

より深いダイビングには、おそらくWiresharkを起動する必要があります。

Wiresharkでフィルターをtcp.analysis.retransmissionに設定して、フローによる再送信を確認します。

それは私が思いつくことができる最高のオプションです。

探索された他の行き止まり:

  • netfilter/conntrackツールは再送信を維持しないようです
  • netstat -sの画線は、単に/proc/net/netstatを印刷していることを示しました
  • / proc/net/tcpの列9は有望に見えましたが、残念ながら未使用のようです。
53
Joel K

これらの統計は/ proc/net/netstatにあり、 collectl はインタラクティブに監視するか、後で再生するためにディスクに書き込まれます。

[root@poker ~]# collectl -st
waiting for 1 second sample...
#<------------TCP------------->
#PureAcks HPAcks   Loss FTrans
        3      0      0      0
        1      0      0      0

もちろん、ネットワークトラフィックと並べて表示する場合は、n-sを含めます。

[root@poker ~]# collectl -stn
waiting for 1 second sample...
#<----------Network----------><------------TCP------------->
#  KBIn  PktIn  KBOut  PktOut PureAcks HPAcks   Loss FTrans
      0      1      0       1        1      0      0      0
      0      1      0       1        1      0      0      0
12
Mark Seger

ssツールを使用して、詳細なTCP統計を取得できます。

$ /sbin/ss -ti

Debianでは、apt-get install iprouteを使用してバイナリを取得します。

6
otmar

dropwatch ユーティリティを確認することをお勧めします。

3
spreadlinux

どうやら古き良き sar は、再送信(およびその他のTCP統計)を収集することができます。また、問題を調査する場合に興味深い他のすべての種類のシステム統計も収集できます。 CPU、メモリ、ディスクI/Oなど.

パッケージ:sysstatをインストールして、スイッチ-S SNMPでこの特定の種類の統計を有効にする必要がある場合があります。RHEL/ OracleLinuxでは、これは/etc/cron.d/sysstatで構成され、/ usr/lib64/sa/sa1が呼び出されます。デフォルトでは5分ごとですが、これも調整できます。

このデータの分析には、以下を使用します。

  • sar(コマンドライン、テキストベース)
  • sadfは http://sebastien.godard.pagesperso-orange.fr/matrix.html に従ってSVGを作成します
  • ksar(ニースグラフをプロットし、Javaで実行できます-正しく思い出せば、sf.netとgithubで選択できるいくつかの異なるクローンがあります)
  • http://www.sargraph.com (PHPに基づいており、私はまったく経験がありません-プログラミングではなく、アプリケーションを気にしてください言語????)
0
JohannesB