kstatバイトとbytes64の違い

kstatバイトとbytes64の違い

私は最近2人で遊び始め、kstat私のすべての分野でネットワーク使用量を表示する簡単なスクリプトを書くことを望みました。

いくつかの調査の終わりに必要なすべてを見つけましたlink:0:::。私は主にパケットとバイト数に興味がありますが、これらのカウンタには2つのバージョンがあります。

  • link:0:::*bytes
  • link:0:::*bytes64

パケット数は同じです。

  • link:0:::*packets
  • link:0:::*packets64

パケット数は同じように見えますが、バイト数は異なります。

誰かがこのカウンターと64のバージョンの違いを説明できますか?また、カウンターに関する文書や参考資料も通常kstat大きな助けになります。

注:サーバーからのフェイルオーバー

答え1

サフィックスが64の指標は64ビット変数に保存され、他の指標は32ビット変数に保存されます。

そのインターフェイスのパケット数が(まだ)40億(2 ^ 32)個のパケットを超えていないため、パケットカウンタに違いはありませんが、4GiB以上が送信されたため、値はパケットごとに64だけ異なります。 。

結論は、可能であれば* 64カウンタを使用することです。

ほとんどのkstatメトリックの最良のドキュメントはカーネルソースコードです。

関連情報