Hatena::ブログ(Diary)

ablog このページをアンテナに追加 RSSフィード Twitter

2010-11-17

カーネルパラメータ net.core.[rw]mem_{default,max} の意味を考えてみた

インストールの前提条件の作業を手動で行う方法 を見ると、カーネルパラメータ net.core.[rw]mem_{default,max} の推奨値が以下の通り記載されている。

カーネルパラメータByte人に優しく
net.core.rmem_default262144256KB
net.core.rmem_max41943044MB
net.core.wmem_default262144256KB
net.core.wmem_max10485761MB

上記のカーネルパラメータがソケットを使用するアプリケーションにどのような影響を及ぼすか仮説を書いてみる。


仮説


検証したいこと

  • Oracle RAC で socket() を使用している各プロセスが SO_SNDBUF や SO_RCVBUF で送受信ソケットバッファのサイズを変更しているか否か strace などを使って確認する。
  • SO_SNDBUF や SO_RCVBUF で送受信ソケットバッファを変更しないプログラムを作成し、net.core.[rw]mem_default の値を変更して、getsockopt を使ってソケットバッファのサイズが変わることを確認する。
  • SO_SNDBUF や SO_RCVBUF で送受信ソケットバッファを変更するプログラムを作成し、ソケットバッファの値を net.core.[rw]mem_max より大きく設定できないことを確認する。

参考


追記(2011/06/14):

TCP/IP Illustrated Volume 2: The Implementation

TCP/IP Illustrated Volume 2: The Implementation

Section 16.7

P.493

After all the data has been passed to the protocol,the socket buffer is unlocked, any remaining mbufs are discarded, and sosend returns.

この本ちゃんと読んだらわかりそうだけど、なかなか歯ごたえありそうw

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証