0

Linux システムの特定の (VPN) インターフェースでの平均転送速度を知りたいです。

netstat から次の情報があります。

# netstat -i
Kernel Interface table
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0    264453      0      0 0        145331      0      0      0 BMRU
lo        16436 0    382692      0      0 0        382692      0      0      0 LRU
tun0       1500 0     13158      0      0 0         21264      0     12      0 MOPRU

VPN インターフェースは tun0 です。したがって、このインターフェイスは 13158 パケットを受信し、21264 パケットを送信しました。これに基づく私の質問:

  • これらの統計が収集される期間は? パソコンを始めてから?

    # uptime
    15:05:49 up 7 days, 20:40,  1 user,  load average: 0.19, 0.08, 0.06
    
  • kbpsを取得するために、13158の「パケット」をkBのデータに変換する方法は?

または、まったく別の方法を使用する必要がありますか?

4

2 に答える 2

1

質問 1:
時間枠は、デバイスが起動された時点から現在までです (数日または数週間前かもしれません。ログから調べてみてください!)。
つまり、システム モニターや CPU の表示に匹敵する実用的な平均 kbps 値を取得するに、現在の値を 2 回 (たとえば、1 秒間隔で) 読み取る必要があります。最初の値から 2 番目の値を減算します。次に、時間で割り (1 秒の遅延がある場合は必要ありません)、8 を掛け、1,000 で割り、kbps を取得します。topuptime

質問 2:
ありません。パケットは可変サイズであるため、「パケット」を「バイト」に変換する方法はありません。読み取ることができる「バイト」フィールドがあります。

トラフィックが発生している NAS ボックスでのテスト ケース:

nas:# grep eth0 /proc/net/dev ; sleep 1 ; grep eth0 /proc/net/dev
eth0:137675373  166558    0    0    0     0          0         0 134406802   41228    0    0    0     0       0          0
eth0:156479566  182767    0    0    0     0          0         0 155912310   44479    0    0    0     0       0          0

結果は次のようになります: (155912310 - 134406802)*8/1000 = 172044 kbps (1Gbps ネットワークで 172 Mbps 使用)。

于 2013-11-05T18:04:42.320 に答える
0

/proc/net/devの代わりにを参照するとnetstat -i、送受信されたバイト数を取得できます (ifconfigまたはnetstat -ieからも取得できますが、 からより簡単に解析できます/proc/net/dev)。カウントは通常、インターフェイスが作成されてからのものであり、これは通常、「実際の」インターフェイスの起動時間です。インターフェイスのtun場合、トンネルが開始されたときである可能性が高く、作成する時期/方法によっては、システムの起動とは異なる場合があります...

于 2013-11-05T16:56:24.223 に答える