Squeeze マシンでは、/proc/net/dev
を信頼します .これは、同じデータを確認するためのより簡単で信頼できる方法です。
ドロップ カウントの特定のケースについては、正確な問題を説明することはできませんが、他の Squeeze ボックスで確認できます。気にするなら、Debian にバグとして報告します (そして、誰かがそうしてここに報告することを提案します)。
どちらも tx_dropped
から数字を取ります net_device_stats
のフィールド . /proc/net/dev
で 、行は dev_seq_printf_stats
によって生成されます net/core/dev.c
から .
ip
いつものように netlink を経由し、より正確にはネットワーク デバイスの統計情報である rtnetlink を経由します。ユーザー空間に渡される構造、rtnl_link_stats
.
ネイティブ構造は unsigned long
を使用します s、rtnetlink
__u32
を使用 、多かれ少なかれ暗黙の変換が copy_rtnl_link_stats
で行われます .
構造体 rx_packets:while /proc/net/dev
の先頭から 32 ビット バージョンが使用されていることを確認するのは非常に簡単です。 1258629839430、ip
を示しています 244248462 を示しています。これは、最後の 32 ビット (およびコマンド間のさらに数バイト) にほぼ対応しています。パケット数も同じです。
最初の 2 つのフィールドの計算結果は次のとおりです:
% echo '1258629839430 % (2^32)'|bc; echo 244248462
204421702
244248462
% echo '12545003042 % (2^32)'|bc; echo 3955476484
3955068450
3955476484
IFLA_STATS64
の導入で事態は改善しました :
- カーネル内 (コミット 10708f37ae729baba9b67bd134c3720709d4ae62 から、v2.6.35 以降でアップストリームで利用可能)
- iproute2 (コミット 8864ac9dc5bd5ce049280337deb21191673a02d0 から、v2.6.33-36 以降で利用可能)