(閉じる)

タグ :

コンピュータ・IT 123 users このエントリーをはてなブックマークに追加

Kazuho@Cybozu Labs: TCP通信ではデータの送信をまとめて行うべき、もうひとつの理由(& サーバのベンチマーク手法の話)

TCP通信をするプログラムを書く際に「データの送信はまとめて1回で」行うべき、というのは鉄則と言っていい、と思います。その理由としては、パケット数を最小限に抑えることでオーバーヘッドを少なくするためだと一般に説明されますが、自分はもうひとつポイントがあると考えています。次のグラフを見てください。 グラフは、一定量のデータを転送するのにかかる時間と使用するブロックサイズ(1回のwrite(2)で書き込むサイズ)の関係を表したものです注1。 ホスト間のTCP通信を行っている場合は、TCPバッファが有効に機能... > このページを見る

最終更新時間: 2009年12月01日14時17分
▼ブログで紹介する

みんなのブックマーク 人気(0) 新着

  • 「アプリケーションプログラマの視点から見ると、ホスト間のTCP通信はスループット重視だが、同一ホスト間の通信はレイテンシ重視だ、と理解しておけばいいのかもしれません」 2012/02/25
  • "同一ホスト上の通信では、送信プロセスがwrite(2)を呼ぶたびにコンテクストスイッチが発生し、受信プロセスが起き上がってread(2)でデータを受信する" 2012/02/25
  • これブックマークしてなかったのか。3年前は理解できなかったけど、理解できるようになっていた。 2012/02/25
  • 全く理解できない。ちゃんと勉強しる⇒読み直して大分分かった 2009/12/08
  • Kazuho@Cybozu Labs: TCP通信ではデータの送信をまとめて行うべき、もうひとつの理由(& サーバのベンチマーク手法の話) 2009/12/03
  • 同一ホスト上の通信ではブロックサイズを小さくするとwrite(2)とread(2)のオーバーヘッドのため速度低下。 2009/12/02
  • 原因は、同一ホスト上の通信では、送信プロセスがwrite(2)を呼ぶたびにコンテクストスイッチが発生し、受信プロセスが起き上がってread(2)でデータを受信するところにあります 2009/12/02
  • 「アプリケーションプログラマの視点から見ると、ホスト間のTCP通信はスループット重視だが、同一ホスト間の通信はレイテンシ重視だ」 2009/12/02
  • 興味深い。リモートのホストへの転送でブロックサイズが小さいときに性能が低下しないのは、システムコール呼び出しはcswに比べると大したオーバーヘッドじゃないからってことなんだろうなあ。 2009/12/01
  • それですねー RT @sh2nd: これ? 2009/12/01
  • ほほー 2009/12/01
  • 『アプリケーションプログラマの視点から見ると、ホスト間のTCP通信はスループット重視だが、同一ホスト間の通信はレイテンシ重視だ、と理解しておけばいいのかもしれません。』 2009/12/01
  • 「サーバとベンチマークプログラムの両者を同一ホスト上で動かした場合のみ、コンテクストスイッチが頻発しパフォーマンスが低下するケースがあったと記憶しています。」 2009/12/01
  • 「アプリケーションプログラマの視点から見ると、ホスト間のTCP通信はスループット重視だが、同一ホスト間の通信はレイテンシ重視」 2009/12/01
  • データ転送時間とブロックサイズの関係 2009/12/01
  • ためになる 2009/12/01
  • C/Sが同一ホストで小さいパケットで通信するとコンテキストスイッチでパフォーマンスが悪くなる。リモートだとそれはないけど、write(2)で512よりもでかいのを渡しても結局NICが512bytesくらいで区切っちゃったりするのかな? 2009/12/01
  • unix domain socket 2009/12/01
  • 計測誤差か 2009/12/01

このブックマーク一覧を非公開にするには?

はてなブックマークはオンラインでブックマークを管理・共有できる無料サービス。自宅、職場、外出先、どこからでも同じブックマークにアクセスできます。ユーザーはみんなでブックマークを共有して効率良く情報収集しています。あなたもはてなブックマークを始めてみませんか?

このエントリーを含むエントリー(1)

このエントリーを含む日記(3)