• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            大龍的博客

            常用鏈接

            統計

            最新評論

            Linux kernel scaling: Ports and port Cycling --- 轉(http://blog.csdn.net/zgl_dm/article/details/6593661)

            NOTE: The content of this article is subject to change as we are still investigating the issue While attempting to benchmark redis a coworker (Kal McFate) and I were hitting a 28k limit on concurrent connections from a client machine to our redis server. After investigating we found the following: The default setting for the ephemeral port range on linux (net.ipv4.ip_local_port_range) is not ideal for scale. Default: 32768-61000 Recommended for scale: 1025-65000 Additionally even after changing this setting we were limited by sockets staying open in the TIME_WAIT state. Most of the poor documentation on the internet suggests setting the following in order to address the issue: net.ipv4.tcp_tw_recycle = 1 and net.ipv4.tcp_tw_reuse = 1 This is in fact incorrect. First you should choose one setting or the other not both. tcp_tw_recycle should be considered unsafe for load balancers and other customer facing devices that communicate over a higher latency network and or utilize failover services. This is due to the fact that TIME_WAIT is required in order to deal with packets that arrive for a connection after the same packet has been previously accepted via a retransmit. Setting net.ipv4.tcp_tw_reuse = 1 appears to have resolved our issue. This has passed the limiting factor from the client to the redis server. This issue is difficult to debug due to the fact that while incoming port exhaustion (socket -> accept) will produce a kernel level logged error, ephemeral local port exhaustion creates an application level rather generic could not connect error. We are now investigating other areas this change might benefit! A better solution as far as client -> redis communication is concerned is probably pipelining requests via a single persistent connection. We are looking into this as well. UPDATE: Data is still applicable to concurrency issues, however the root cause here ended up being that the client code was throwing the socket away before properly hanging up on the server. So the socket was left in TIME_WAIT until the timeout period expired. LESSON: When it comes to sockets in TIME_WAIT the issue is most likely caused by crappy TCP socket handling Additionally enabling net.ipv4.tcp_tw_reuse on a development system may cover up poorly implemented protocol and TCP socket level handling :/ http://www.lakitu.us/2011/04/linux-kernel-scaling-ports-and-port-cycling/

            posted on 2013-02-18 09:51 大龍 閱讀(337) 評論(0)  編輯 收藏 引用

            av色综合久久天堂av色综合在| 久久精品人人做人人爽97| 久久不见久久见免费影院www日本| 久久亚洲国产精品一区二区| 午夜天堂精品久久久久| 伊人久久综在合线亚洲2019 | 久久青青草原亚洲av无码app| 久久国产色AV免费观看| 久久精品亚洲精品国产欧美| 狠狠色噜噜色狠狠狠综合久久| 婷婷综合久久狠狠色99h| 亚洲国产成人久久综合一区77| 精品久久久久久成人AV| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 色妞色综合久久夜夜| 国产巨作麻豆欧美亚洲综合久久| 国产成人精品综合久久久久| 91精品婷婷国产综合久久| 99精品久久精品一区二区| 内射无码专区久久亚洲| 久久久久一区二区三区| 亚洲精品无码久久久久| 一本色综合久久| 久久久久97国产精华液好用吗| 久久亚洲中文字幕精品有坂深雪| 久久e热在这里只有国产中文精品99 | 亚洲?V乱码久久精品蜜桃| 久久精品一区二区| 亚洲va久久久噜噜噜久久天堂| 亚洲国产天堂久久久久久| 嫩草影院久久99| 青青热久久综合网伊人| 久久久国产精品福利免费 | 精品久久久久国产免费| 欧美激情精品久久久久| 亚洲成色WWW久久网站| 久久精品国产免费观看三人同眠| 亚洲性久久久影院| 国内精品伊人久久久影院| 欧美亚洲国产精品久久久久| 精品久久久无码21p发布|