>  기사  >  백엔드 개발  >  centos - linux下php使用curl导致大量TIME_WAIT求解决

centos - linux下php使用curl导致大量TIME_WAIT求解决

WBOY
WBOY원래의
2016-06-06 20:41:061691검색

<code>netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
    173 ESTABLISHED
     43 FIN_WAIT1
     20 FIN_WAIT2
      5 LAST_ACK
      7 LISTEN
      2 SYN_RECV
      3 SYN_SENT
   1745 TIME_WAIT
</code>

网站运行一会儿就有大量TIME_WAIT,通过netstat可以看到是php调用curl导致的

目前CURLOPT_CONNECTTIMEOUT设置为:3
CURLOPT_TIMEOUT设置为:3

网上说修改/etc/sysctl.conf,

<code>net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
</code>

我修改报错

<code>error: permission denied on key 'net.ipv4.tcp_tw_reuse'
error: permission denied on key 'net.ipv4.tcp_tw_recycle'
error: permission denied on key 'net.ipv4.tcp_fin_timeout'
</code>

服务器是centos

回复内容:

<code>netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
    173 ESTABLISHED
     43 FIN_WAIT1
     20 FIN_WAIT2
      5 LAST_ACK
      7 LISTEN
      2 SYN_RECV
      3 SYN_SENT
   1745 TIME_WAIT
</code>

网站运行一会儿就有大量TIME_WAIT,通过netstat可以看到是php调用curl导致的

目前CURLOPT_CONNECTTIMEOUT设置为:3
CURLOPT_TIMEOUT设置为:3

网上说修改/etc/sysctl.conf,

<code>net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
</code>

我修改报错

<code>error: permission denied on key 'net.ipv4.tcp_tw_reuse'
error: permission denied on key 'net.ipv4.tcp_tw_recycle'
error: permission denied on key 'net.ipv4.tcp_fin_timeout'
</code>

服务器是centos

不懂PHP,仅仅针对你说的出现大量的TIME_WAIT来说,比较详细的解决方案见:http://huoding.com/2012/01/19/142

如果提示`error: permission denied on key 'net.ipv4.tcp_tw_reuse''.请'su'到root并临时关掉Selinux 'setenforce 0'

楼主,这个问题最终你是怎么解决的?我现在也遇到这种问题了。curl每次都关闭,大量请求的时候,还是出现大量的CLOSE_WAIT,ESTABLISHED,TIME_WAIT.请教下。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.