Linuxネタ・テクニック・話題のポータル

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

[ ← 前の画面 ]  [ AD ] PHP/Perl/Ruby/.NET/データベース [ ニコニコ ]
Kazuho@Cybozu Labs: TCP通信ではデータの送信をまとめて行うべき、もうひとつの理由(& サーバのベンチマーク手法の話)

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

developer.cybozu.co.jp 2009/12/01 17:30:04 
[ スポンサード リンク ]
※ この情報のコメント・メモ ※

サーバとベンチマークプログラムの両者を同一ホスト上で動かした場合のみ、コンテクストスイッチが頻発しパフォーマンスが低下するケースがあったと記憶しています。  [ HISAMATSU ]

C/Sが同一ホストで小さいパケットで通信するとコンテキストスイッチでパフォーマンスが悪くなる。リモートだとそれはないけど、write(2)で512よりもでかいのを渡しても結局NICが512bytesくらいで区切っちゃったりするのかな?  [ karronoli ]

データ転送時間とブロックサイズの関係  [ toremoro ]

unixdomainsocket  [ hirose31 ]

アプリケーションプログラマの視点から見ると、ホスト間のTCP通信はスループット重視だが、同一ホスト間の通信はレイテンシ重視  [ zorio ]

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

計測誤差か  [ mattn ]

アプリケーションプログラマの視点から見ると、ホスト間のTCP通信はスループット重視だが、同一ホスト間の通信はレイテンシ重視だ  [ hogshead ]

サーバプログラムはリモートホストからベンチマークすべき  [ lamanotrama ]

興味深い。リモートのホストへの転送でブロックサイズが小さいときに性能が低下しないのは、システムコール呼び出しはcswに比べると大したオーバーヘッドじゃないからってことなんだろうなあ。  [ nippondanji ]

ほほー  [ jt_noSke ]

原因は、同一ホスト上の通信では、送信プロセスがwrite(2)を呼ぶたびにコンテクストスイッチが発生し、受信プロセスが起き上がってread(2)でデータを受信するところにあります  [ tgk ]

全く理解できない。ちゃんと勉強しる⇒読み直して大分分かった  [ kenji-u ]

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

同一ホスト上の通信ではブロックサイズを小さくするとwrite(2)とread(2)のオーバーヘッドのため速度低下。  [ sukepyon ]

Kazuho@CybozuLabs:TCP通信ではデータの送信をまとめて行うべき、もうひとつの理由(&サーバのベンチマーク手法の話) TCP通信をするプログラムを書く際に「データの送信はまとめて1回で」行うべき、というのは鉄則と言っていい、と思います。その理由としては、パケット数を最小限に抑えることでオーバーヘッドを少なくするためだと一般に説明されますが、自分はもうひとつポイントがあると考えています。次のグラフを見てください。グラフは、一定量のデータを転送するのにかかる時間と使用するブロックサイズ(1回のwrite(2)で書き... はてなブックマーク-Kazuho@CybozuLabs:  [ dann ]

それですねーRT@sh2nd:これ?  [ yappo ]

『アプリケーションプログラマの視点から見ると、ホスト間のTCP通信はスループット重視だが、同一ホスト間の通信はレイテンシ重視だ、と理解しておけばいいのかもしれません。』  [ monjudoh ]

ためになる  [ iakio ]


[ ← 前の画面に戻る ]
[ スポンサード リンク ]
[ 追加された期間を表示 ]
ピックアップ
プログラミング』 の注目情報
Software Engineerにお勧めの技術書 - dann@webdev - dann's portal Linuxネタ・テクニック・話題のポータル

コンピュータサイエンス関連のおすすめ本 Computer Architecture 大規模なシステムを組む場合、高い性能を要求される場合、省リソースが求められるケースなどは、特に低レイヤへの理解の必要性を実感することになります。 下のレイヤを深く理解しておかなければ、このようなシステムのアーキテク...

2012/01/27 4:00:58
 

ご高説もっとも。 小野和俊のブログ:メンテナビリティの高いソースコードを目指してソフトウェアを中長期にわたってメンテナンスしていく場合、メンテナンスしやすいコードと、メンテナンスしにくいコードとの間には、同じ機能を実現していたとしても、その価値には雲泥の差があります。 で、どこですか? あなたの、...

2012/01/27 4:00:58
 
プログラマーは"一線"を超えると急激に伸びる - Linux/Ruby 小崎氏(後編) | エンタープライズ | マイナビニュース Linuxネタ・テクニック・話題のポータル

「プログラマーのスキルはある一定のラインを超えたところで急激に伸びるんです。そのラインは早く超えるには、OSSの開発に参加していろんな人が書いたソースコードをたくさん読むというのは有効な手段の一つだと思います」――こう語るのはLinuxカーネルおよびRubyの現役コミッターである小崎資広氏だ。 小...

2011/11/29 16:00:59
   プログラミング エンジニア linux ruby programming
人気のタグ