• php连接memcahed出现Cannot assign requested address (99)的解决方法


    今天在将服务器合并后,发现php偶尔会报出 Server *.*.*.* (tcp *****) failed with: Cannot assign requested address (99) 的错误,开始怀疑是由于memcached服务器无法处理过多的请求,查看memcached服务器并未发现异常。在网上查到了问题的分析和解决方法。

    问题分析:

    客户端频繁的连服务器,由于每次连接都在很短的时间内结束,导致很多的TIME_WAIT,以至于用光了可用的端 口号,所以新的连接没办法绑定端口,即“Cannot assign requested address”。是客户端的问题不是服务器端的问题。通过netstat,的确看到很多TIME_WAIT状态的连接。

    可见问题不在于server端,而是client端频繁建立连接,而端口释放较慢,导致建立新连接时无可用端口。

    解决方法:

    执行命令修改如下2个内核参数 (需要root权限) 
    sysctl -w net.ipv4.tcp_timestamps=1  开启对于TCP时间戳的支持,若该项设置为0,则下面一项设置不起作用
    sysctl -w net.ipv4.tcp_tw_recycle=1  表示开启TCP连接中TIME-WAIT sockets的快速回收

    原帖地址:http://blog.csdn.net/mmbl007/article/details/7446970

  • 相关阅读:
    DP_knapsack
    也谈交换两个变量
    SidebySide Assembly
    Generate permutation for N elements
    Pixel Shader 像素着色
    Drill into View Matrix
    使用D3DXCreateSphere绘图的步骤
    原来VisualStudio本身也可以查看调试信息
    DirectX Effects初探
    Shortcuts
  • 原文地址:https://www.cnblogs.com/helloyb/p/3278971.html
Copyright © 2020-2023  润新知