df -h命令卡住,报错 kernel: nfs: server xx.xx.xx.xx not responding, still trying

阿里云1000元通用代金券点此领取

下午访问测试环境的web突然很卡,点击页面无法加载,后台是tomcat,系统是centos7。登入服务器使用top命令查看,一切正常。查看应用日志,发现没有输出。在tomcat所在文件夹使用ls命令会卡住很久,使用df -h命令也会卡住很久。

想到可能是磁盘出了问题,查看/var/log/messages

日志输出
df -h命令卡住,报错 kernel: nfs: server xx.xx.xx.xx not responding, still trying_第1张图片

应用的资源文件是使用nfs挂载的远程服务器的目录,可能问题出在这里,重新挂载一下,执行fuser -m -v /data/tomcatkill掉进程,再unmount。重新挂载后,重启应用一切恢复正常。

后来查找资料发现,NFS 的默认传输协议是 UDP,在一些特定的情况下网络不好,或者传输文件较大时会出现这种情况。原因可能是和服务端网卡传输速率冲突,使得目标机需要大量时间复制大量数据包。

建议改用TCP协议 mount -t nfs -o tcp,nolock 192.168.1.9:/data/ /data/

你可能感兴趣的:(linux)