前些日子,把某破旧服务器上的一个Discuz论坛,转到了一台新机器上。原来跑的是Zeus的一套东西,Web Server + Load Balancer,差不多三年了,从来没出过问题。新机器上装的是Debian 6,nginx 1.07,php 5.3 with fpm,percona mysql。
现在是只要稍微访问量上来一点,php-cgi进程必卡,1个php-cgi进程占了100%的CPU,其他的php-cgi进程都几乎是0%,然后整个服务器差不多都歇菜了。
strace了一下那个占用100% CPU的php-cgi进程,dump下来的内容重复的显示如下内容:
socket(PF_NETLINK, SOCK_RAW, 0) = 7
bind(7, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(7, {sa_family=AF_NETLINK, pid=9746, groups=00000000}, [12]) = 0
sendto(7, "\24\0\0\0\26\0\1\3E\376\233N\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(7, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"0\0\0\0\24\0\2\0E\376\233N\22&\0\0\2\10\200\376\1\0\0\0\10\0\1\0\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 108
recvmsg(7, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"@\0\0\0\24\0\2\0E\376\233N\22&\0\0\n\200\200\376\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 256
recvmsg(7, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0E\376\233N\22&\0\0\0\0\0\0\1\0\0\0\24\0\1\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20
close(7) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 7
fcntl(7, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(7, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(7, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("72.41.86.2")}, 16) = 0
fcntl(7, F_SETFL, O_RDWR) = 0
sendto(7, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 8192, MSG_DONTWAIT, NULL, 0) = 8192
sendto(7, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 8192, MSG_DONTWAIT, NULL, 0) = 8192
sendto(7, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 8192, MSG_DONTWAIT, NULL, 0) = 8192
sendto(7, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 8192, MSG_DONTWAIT, NULL, 0) = 8192
sendto(7, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 8192, MSG_DONTWAIT, NULL, 0) = 8192
sendto(7, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 8192, MSG_DONTWAIT, NULL, 0) = 8192
sendto(7, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 8192, MSG_DONTWAIT, NULL, 0) = 8192
sendto(7, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 8191, MSG_DONTWAIT, NULL, 0) = 8191
close(7) = 0
而最让我难以理解的是:connect(7, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("72.41.86.2")}, 16) = 0
72.41.86.2 这个IP,100多M的trace内容,一直不停的出现。并且,一旦我start了php,服务器就会和这个ip建立连接,php stop了以后,连接消失。这个地址用浏览器可以打开,但是只有一个Plesk的页面。
搞了好几天了,本以为发现了问题所在,现在又没有头绪了