哈喽~ 各位运维、服务器小伙伴们,今天遇到了个NAS卡顿问题, 在这里把自己的排除方法写出来,记录一下,跟大家也一同学习下, 加深理解~!
一、今天遇到一个问题
前提条件:
1.多个不同网段的服务器挂载NAS服务器端172.18.1.1, 挂载目录/share_data。
2.之前挂载的客户端均操作正常;
3.新增加了多台客户端服务器;
现象:
其中2台在挂载目录下操作文件/目录,执行df,ls等常规命令,均卡顿。
[root@hostname ~]#df -hFilesystem size Used Avail Use% Mounted on192.18.1.1:/share_data 55G 31G 21G 60% /share_data[root@hostname ~]#cd /share_data[root@hostname share_date]#ls #之后就卡顿,过几十秒才会出来,每次间隔不同
二、排除步骤&实操命令(复制粘贴就能用,避免输错)
下面就让我们带着问题来学习,每次都事半功倍。
1. 由于客户端为多个不同网段机器,故先排查网络问题
[root@hostname ~]# ping -c 3 172.18.1.1 PING 172.18.1.1 (172.18.1.1 )56(84) bytes of data.64 bytes from 172.18.1.1 :icmp_seq=1 ttl=64 time=0.013 ms64 bytes from 172.18.1.1 :icmp_seq=2 ttl=64 time=0.028 ms64 bytes from 172.18.1.1 :icmp_seq=3 ttl=64 time=0.027 ms--- 172.18.1.1 ping statistics---3 packets transmitted, 3 received,0% packet loss, time 2999msrtt min/avg/max/mdev =0.260/0.323/0.410/0.065 ms
time: 往返延迟时间,单位ms, 耗时较小,正常。
packet loss:丢包率,0%正常
[root@hostname ~]# systemctl status firewalldfirewalld.service - firewalld - dynamic firewall daemon. Loaded: loaded (/usr/lib/systemd/system/firewalld. service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)
防火墙显示关闭状态;
网络策略:telnet 172.18.1.1 对应nas需要打开端口显示也正常;
2.由于多台客户端服务器挂载NAS-172.18.1.1, 需查看下服务端的资源是否有瓶颈;
[root@nfsname ~]# cat /etc/sysconfig/nfs|grep RPCNFSDCOUNTPRENFSCOUNT=8
[root@nfsname ~]# netstat -antp|grep 2049|wc -l40
(1)挂载NAS服务端直接用netstat -antp|grep 2049端口,查出来40个;
(2)而服务器配置的进程数只有8个, 查看/etc/sysconfig/nfs文件的PRCNFSDCOUNT值即可;
3. 现在问题找到了,下来就是解决了。
临时解决方法:echo 64 >/proc/net/rpc/nfsd 直接生效永久解决方法:1. 配置文件中/etc/sysconfig/nfs 找到/新增这一行,数字为线程数 RPCNFSDCOUNT=1282. 重载+重启服务: systemctl daemon-reload systemctl restart nfs-server3.查看生效:ps aux | grep nfsd | wc -l
五、总结&避坑提醒(重点划重点)
依照此排查顺序,解决NAS卡顿问题。 1.由于客户端为多个不同网段,故先排除网络问题。 (1)查看ping NAS服务器端 查看是否有网络延迟。 (2)若没有,查看客户端到NAS服务器端的端口网络策略是否开全了。 以及防火墙暂时关掉。 2.由于多台客户端服务器挂载NAS, 需查看下服务端的资源是否有瓶颈。 (1)服务端的iostat查看是否负载比较大 。 (2)服务端的NFS线程数配置值是否过少。 |
你有没有遇到过挂载NAS后,操作卡顿的情况?评论区留言说说你的踩坑经历~喜欢记得点赞+在看,收藏起来慢慢看,后续持续更新技术/职场干货~