
{"id":1755,"date":"2010-06-26T17:50:21","date_gmt":"2010-06-26T12:20:21","guid":{"rendered":"http:\/\/www.jeffrin.in\/?p=1755"},"modified":"2010-06-26T17:50:21","modified_gmt":"2010-06-26T12:20:21","slug":"tcp-moderate-receive-buffer-auto-tuning","status":"publish","type":"post","link":"https:\/\/www.trueangle.org\/index.php\/2010\/06\/26\/tcp-moderate-receive-buffer-auto-tuning\/","title":{"rendered":"tcp moderate &#8230;receive buffer auto-tuning"},"content":{"rendered":"<pre>\n$cat \/proc\/sys\/net\/ipv4\/tcp_moderate_rcvbuf\n1\n$\n<\/pre>\n<pre>\ntcp_moderate_rcvbuf - BOOLEAN\n\nIf set, TCP performs receive buffer auto-tuning, attempting to\nautomatically size the buffer (no greater than tcp_rmem[2]) to\nmatch the size required by the path for full throughput.  Enabled by\ndefault.\n\nsource :\nLinux kernel Documentation   kernel ( 2.6.32 )\n\n<\/pre>\n<pre>\ntrunk\/coverage\/common\/ServerSpecs.pm - 1 identical\n   278:  247                                                      tcp_max_syn_backlog               1024\n   279: 248                                                      tcp_moderate_rcvbuf               1\n   280: 249                                                         tcp_reordering                    3\nmaatkit.googlecode.com\/svn - Unknown - Perl - More from svn \u00bb\n\nkernel\/sysctl_check.c - 57 identical\n   371:   \/* NET_TCP_DEFAULT_WIN_SCALE unused *\/\n   372:   { NET_TCP_MODERATE_RCVBUF,              \"tcp_moderate_rcvbuf\" },\n   373:   { NET_TCP_TSO_WIN_DIVISOR,              \"tcp_tso_win_divisor\" },\nandroid.git.kernel.org\/kernel\/common.git - GPL - C\n\n\nxscribe\/logs\/expxscribe.sh\n    24: #set TCP parameters\n    25: sysctl -w net.ipv4.tcp_moderate_rcvbuf=\"0\"\n    26: sysctl -w net.ipv4.tcp_bic=\"0\"\nbruno1.iit.cnr.it\/xscribe_exp\/xscribe_exp.tgz - Unknown - Shell\n<\/pre>\n<pre>\nA. Receive Buffer Dynamics\nReceive buffer dynamics include statistics pertaining to the\nreceive buffer while its owning process is active. It encom-\npasses two primary statistics: buffer ?uctuation and actual\nbuffer size. Actual buffer size is the amount of data present on\nthe queue while the process is active. We call this the actual\nbuffer size because it can vary quite largely from what is set\nin \/proc.\nBuffer ?uctuation, Figure 3(a), reveals the amount of pro-\ncessing that goes into the receive buffer while a task is active.\nIt is a measurement of the receive queue before and after the\nreceiving processes time slice. When a process becomes active,\nwe note the size of its receive queue. We subtract this value\nfrom the size of the buffer at process deactivation, thereby\nmeasuring the ?uctuation of the buffer while the process was\nactive. Formally:\nn\n1\nyi ? xi\n(1)\nn i=1\nwhere n is the number of timeslices, and xi and yi are\nsnapshots of the buffer size before and after, respectively, a\ngiven timeslice i. A positive value means data was added to the\nqueue during a timeslice, while a negative value corresponds\nto data being removed.\n\nsource :\nEffect of Receive Buffer Size: An OS-based Perspective\nJerome White and David X. Wei\nCalifornia Institute of Technology\n\n\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>$cat \/proc\/sys\/net\/ipv4\/tcp_moderate_rcvbuf 1 $ tcp_moderate_rcvbuf &#8211; BOOLEAN If set, TCP performs receive buffer auto-tuning, attempting to automatically size the buffer (no greater than tcp_rmem[2]) to match the size required by the path for full throughput. Enabled by default. source : Linux kernel Documentation kernel ( 2.6.32 ) trunk\/coverage\/common\/ServerSpecs.pm &#8211; 1 identical 278: 247 tcp_max_syn_backlog 1024 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.trueangle.org\/index.php\/2010\/06\/26\/tcp-moderate-receive-buffer-auto-tuning\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;tcp moderate &#8230;receive buffer auto-tuning&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts\/1755"}],"collection":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/comments?post=1755"}],"version-history":[{"count":0,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts\/1755\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/media?parent=1755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/categories?post=1755"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/tags?post=1755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}