Linux【13】-报错2-linux系统很卡的基本排查方法

这两天,G03变得好卡,于是想有没有什么快速排查的方法呢?

一、排查措施

1.查看内存使用情况

free -g

当观察到free栏已为0的时候,表示内存基本被吃完了,那就释放内存吧(参考之前的博文手动释放内容)

2.查看磁盘使用情况

df -h

当发现磁盘使用率很高时,那就要释放磁盘空间了,删除一些不必要的文件(查看各个目录占用磁盘空间,参考之前的du命令文章)

3.查看磁盘IO使用情况

iostat -x 1

1表示1秒刷新一次

当发现最右侧%util很高时,表示IO就很高了,若想看哪个进程占用IO,执行iotop命令查看

  • -d只查看device信息
  • -k数据的单位是kb

4.查看cpu使用情况

top

查看linux整机的性能,查看右上角load average,三个值分别是1分钟,5分钟,15分钟的系统负载值,如果3值相加除以3大于60%,负担吃紧,大于80%,建议添加机器。Cpu(s) 5%是CPU空闲率,越高越好。

下图中红框里表是cpu使用情况,最右侧的%id表示剩余,若很低,则表示cpu被吃完了,在top界面按shift+p对进程使用cpu排序,能看到哪些进程占用cpu较多

5.查看报错信息

cat /var/log/message

6. 其他

lsof -i:8080   查看端口 (???)

chmod 改变文件的权限  (???)

二、讨论

查了一遍,都没啥问题,最后的最后,还是重启了。现在怀疑是message里面有些信息我没看懂,比如NFS4的lock报错,在网上搜了一轮,都没找到问题的解决办法。

cat /var/log/messages

报错信息为:

NFS: nfs4_reclaim_open_state: Lock reclaim failed!

解决办法:

fuser -m -v /data   #关闭所有跟/data有关的进程
mount -t nfs -o tcp,nolock ip地址:/data/ /data/  

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

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn