今天上班在对线上服务器备份系统做对照测试验证时,发现线上正在使用的响应似乎慢了备份系统一些,而且有些页面强制刷新,都基本上显示不完全。估计是服务器出问题了,就到去查看,发送一台服务器负载较高, 三个 都过 4 了,但没有发现占用资源很大的进程,估计是系统的问题了,df 了一下,显示到 nfs挂载分区时卡住了,接着查看message 日志,发现有以下提示:

   
   
   
   
  1. Jul 25 09:25:27 dowload_server2 kernel: INFO: task php-fpm:2914 blocked for more than 120 seconds. 
  2. Jul 25 09:25:27 dowload_server2 kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. 
  3. Jul 25 09:25:27 dowload_server2 kernel: klogd 1.4.1, ---------- state change ----------  
  4. Jul 25 09:25:27 dowload_server2 kernel: php-fpm       D ffffffff80151248     0  2914  19432          2922  2801 (NOTLB) 
  5. Jul 25 09:25:27 dowload_server2 kernel:  ffff81015963bc78 0000000000000082 ffff81015963be2c ffff81015963be18 
  6. Jul 25 09:25:27 dowload_server2 kernel:  ffffffff8001eafa 000000000000000a ffff8102e8209860 ffff81042fada860 
  7. Jul 25 09:25:27 dowload_server2 kernel:  001338af01c9940d 0000000000002a06 ffff8102e8209a48 00000005884b5ae2 
  8. Jul 25 09:25:27 dowload_server2 kernel: Call Trace: 
  9. Jul 25 09:25:27 dowload_server2 kernel:  [] __pollwait+0x0/0xe2 
  10. Jul 25 09:25:27 dowload_server2 kernel:  [] _spin_lock_bh+0x9/0x14 
  11. Jul 25 09:25:27 dowload_server2 kernel:  [] __mutex_lock_slowpath+0x60/0x9b 
  12. Jul 25 09:25:27 dowload_server2 kernel:  [] __d_lookup+0xb0/0xff 
  13. Jul 25 09:25:27 dowload_server2 kernel:  [] .text.lock.mutex+0xf/0x14 
  14. Jul 25 09:25:27 dowload_server2 kernel:  [] do_lookup+0x90/0x1e6 
  15. Jul 25 09:25:27 dowload_server2 kernel:  [] __link_path_walk+0xa01/0xf42 
  16. Jul 25 09:25:27 dowload_server2 kernel:  [] link_path_walk+0x42/0xb2 
  17. Jul 25 09:25:27 dowload_server2 kernel:  [] do_path_lookup+0x275/0x2f1 
  18. Jul 25 09:25:27 dowload_server2 kernel:  [] getname+0x15b/0x1c2 
  19. Jul 25 09:25:27 dowload_server2 kernel:  [] __user_walk_fd+0x37/0x4c 
  20. Jul 25 09:25:27 dowload_server2 kernel:  [] vfs_lstat_fd+0x18/0x47 
  21. Jul 25 09:25:27 dowload_server2 kernel:  [] sys_newlstat+0x19/0x31 
  22. Jul 25 09:25:27 dowload_server2 kernel:  [] system_call+0x7e/0x83 

还有:

   
   
   
   
  1. Jul 25 09:25:50 dowload_server2 kernel: nfs: server 10.1.10.100 not responding, still trying 
  2. Jul 25 09:26:24 dowload_server2 last message repeated 5 times  
  3. Jul 25 09:26:32 dowload_server2 last message repeated 7 times 

(对于:nfs: server 10.1.10.100 not responding, still trying ,网上有其他说法,是传输的数据较大,需要用tcp方式,可以参考:http://www.cnblogs.com/elect-fans/archive/2011/12/25/2408598.html )

检查了php-fpm ,nginx 都正常,从日志看,是nfs挂载出故障了,检查一下nfs看看

   
   
   
   
  1. sudo /usr/sbin/showmount –e 10.1.10.100

出现如下提示:

   
   
   
   
  1. mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive 

难道是服务器内网不通,ping测试了一下,还真是不通耶。这就是故障点了。

修改配置,暂停http请求发到这台服务器,停止 nginx ,php-fpm,umount  nfs 。

重启本机的网络服务,ping测试正常,重新 mount,ok,启动 php-fpm,nginx,把http请求再覆盖到这台服务器上,搞定。

从其他同事那里获知,硬件设备 R710, 系统安装的网卡驱动有问题(是由于DEL网卡驱动的一个bug引起,这个bug在Redhat 5.3 5.4 5.5和Centos系统中存在),需要重新安装驱动。网卡驱动安装可参看: http://blog.chinaunix.net/uid-20639775-id-3187093.html

另加上内网 ping 监控。