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

            亚洲另类欧美综合久久图片区| 97久久国产亚洲精品超碰热 | 久久久久久狠狠丁香| 91久久精品国产91性色也| 久久影院午夜理论片无码| 久久天天躁狠狠躁夜夜avapp| 办公室久久精品| 亚洲精品白浆高清久久久久久| 国产亚洲婷婷香蕉久久精品| 久久亚洲精品成人无码网站| 狠狠久久亚洲欧美专区| 一本色道久久综合狠狠躁篇 | 国产精品久久久久久久app | 久久久久久精品免费看SSS| 久久精品国产一区| 少妇久久久久久被弄高潮| 欧美精品丝袜久久久中文字幕| 91久久婷婷国产综合精品青草| 伊人久久大香线蕉无码麻豆| 精品乱码久久久久久夜夜嗨| 99麻豆久久久国产精品免费| 欧洲精品久久久av无码电影| 久久久久久久波多野结衣高潮| 久久精品夜色噜噜亚洲A∨ | 国产ww久久久久久久久久| 国产精品无码久久久久久| 伊人久久大香线蕉AV色婷婷色| 性做久久久久久久久浪潮| 久久久久亚洲av成人无码电影 | 综合久久一区二区三区| 久久99久久成人免费播放| 久久电影网2021| 国产成人无码精品久久久免费 | 人妻少妇久久中文字幕| 亚洲熟妇无码另类久久久| 99久久国产精品免费一区二区| 久久无码高潮喷水| 久久精品国产久精国产思思| 久久久女人与动物群交毛片| 久久91精品久久91综合| 亚洲一区二区三区日本久久九|