• <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 大龍 閱讀(335) 評論(0)  編輯 收藏 引用

            久久国产乱子伦精品免费午夜| 久久精品无码一区二区无码| 久久久网中文字幕| 亚洲国产精品综合久久一线| 久久精品国产免费观看| 久久精品国产亚洲一区二区| 久久久久久亚洲精品无码| 亚洲午夜久久久久久噜噜噜| 国产综合精品久久亚洲| 久久精品亚洲中文字幕无码麻豆| 国产精品久久久久一区二区三区| 波多野结衣AV无码久久一区| 狠狠人妻久久久久久综合| 少妇内射兰兰久久| 久久笫一福利免费导航 | 免费一级做a爰片久久毛片潮| 久久精品无码一区二区WWW| 国产ww久久久久久久久久| 人妻无码αv中文字幕久久琪琪布| 久久久久无码专区亚洲av| 国产精品久久久久久搜索| 99久久国产精品免费一区二区| 久久久久久久久久免免费精品| 精品久久久久久无码专区| 久久人人爽人人爽人人片AV麻烦| 久久精品国产亚洲AV不卡| 久久亚洲国产精品一区二区| 久久久精品国产sm调教网站| 久久综合88熟人妻| 狠狠色婷婷久久综合频道日韩| 亚洲人成网站999久久久综合| 久久久久黑人强伦姧人妻| 精品久久综合1区2区3区激情 | 麻豆成人久久精品二区三区免费| 亚洲国产小视频精品久久久三级 | 久久婷婷五月综合国产尤物app| 欧美日韩久久中文字幕| 精品伊人久久大线蕉色首页| 久久精品久久久久观看99水蜜桃 | 青青热久久综合网伊人| 久久国产精品-久久精品|