質問: data_len + ip_tr_size + data_segments + data_tr_overhead + httpheader_size ```
回答: 質問者さんが調査した結果と一部かぶりますが、いくつか挙げます。 たとえばサーバの使用するインターネット回線の料金体系に従量部分があるのなら、通信量が多いことは経済的な「負荷」になります。通信量を正確に知ることで、このような意味での負荷を抑えられるかもしれません。 * SNMPエージェント (Net-SNMPのsnmpdなど) を動かしておき、PySNMPでNIC毎のトラフィック積算値を取得する。パケットの種類などのフィルタリングはできません。 * pysharkでパケットをキャプチャしてフィルタし、集計する。pysharkはtshark (wiresharkのCLI版) のPythonラッパですから、wiresharkでとれるような情報 (パケットサイズ等) は何でもとれるでしょう。 * urllib.request等にトラフィック集計機能を追加する。通信を実行するメソッドを適当にオーバライドしてリクエストとレスポンスのデータ量を集計できるようにします。これなら純粋にPythonアプリによるトラフィックだけを集計できます。 この中では、最後のものが一番「Pythonic」ということになるのでしょうかね。urllib.requestはなんだかごちゃごちゃしている感じがするのでRequestsのほうがやりやすいかも (個人の感想です)。 しかし実は、通信量が増えればサーバの負荷も同様に増えるとは限りません。サーバの負荷が増える直接の原因は、外部との通信の量にあるのではなく、サーバ自身のリソースが占有利用される量にあるからです (例えばクライアントの同時接続数、CPU時間の長い処理、大量のデータ保存・読み出しなど)。 このような負荷の影響は、負荷試験を実施してみないとわかりません。