linux nfs load average 高怎么排查
作者&投稿:离卸 (若有异议请与网页底部的电邮联系)
load average 中的 三个数字 分别代表了 一分钟 五分钟 十五分钟 内CPU的负载情况,1代表一颗CPU的满负荷工作,也就是说需要执行的数量等于可以执行的数量且等于已经执行了的数量
1、先使用top看下CPU占用高的进程,找出进程的进程ID(pid);
查看方法:top
2、根据进程ID(pid)查看是进程的那些线程占用CPU高。
查看方法:top -Hp pid
3、使用pstack,查看CPU占用高的线程在干什么。
查看方法:pstack pid
4、根据pstack分析,应该可以看出问题所在。
context switches
从vmstat的输出结果来看,io项的block in 和block out 并不频繁。而system项的每称的中断数(in)、每秒的上下文切换(cs)特别频繁。这就造成load avaerage会特别高。大方向上的根因找到了,具体是哪个进程如何频繁的进行中断和上下文件的切换呢?
这里使用pidstat -w 1 (每秒刷新输出上下文切换情况),输出见下图:
context switches
从上图中可以看到有cswch(自愿的上下文切换)和nvcswch(非自愿的上下文切换)及对应的命令, 出vsftpd占用的文件交换比较多。可以看到这里显示的cs 值和总值还是有比较大的差距,由于主机上启动了不止一个vsftpd进程,而且pidstat 通过1秒刷新的时候并不会显示所有,通过pidstat -w执行几次收集所有发现所有的vsftpd进程占用的cs值叠加和vmstat里的比较相近了。
将结果通知业务人员后,和业务人员的猜测也一致,由于ftp使用的目录结构层次较深、文件数也比较多,业务在备份老的使用目录并重新创建单层目录后,观察一段后,发现load average降下来了,稳定在1以下。
当然这里只是处理方法的一种,现网中有些程序不好进行这样的修改的,又不让让进程在cpu之间频繁切换的,也有通过设置固定运行的CPU上进行调优的方法,如下两个进程运行在0-7号cpu上:
[root@www ~]# taskset -c -p 6389
pid 6389's current affinity list: 0-7
[root@www ~]# taskset -c -p 6580
pid 6580's current affinity list: 0-7
可以通过taskset让其固定在0-1号cpu上运行:
[root@www ~]# taskset -c 0,1 -p 6389
这样做的原理是每当进程在切换到下一个cpu core上进会flush当前的cache数据,指定CPU时会减少这样的操作,增加进程的处理速度。这个对老的程序调优时比较有效。
非常多的df -h进程没有退出。于是手工kill掉这些 df -h进程。cpu load恢复正常。
至于为什么会有这么多 df -h进程,给出的解释是:挂了NFS,之前没有umount干净,所以有df -h进程
淫服特美: 1、先使用top看下CPU占用高的进程,找出进程的进程ID(pid);查看方法:top 2、根据进程ID(pid)查看是进程的那些线程占用CPU高.查看方法:top -Hp pid 3、使用pstack,查看CPU占用高的线程在干什么.查看方法:pstack pid 4、根据pstack分析,应该可以看出问题所在.
镇远县19392619646: linux load average 高怎么排查 - ?
淫服特美: load average 中的 三个数字 分别代表了 一分钟 五分钟 十五分钟 内CPU的负载情况,1代表一颗CPU的满负荷工作,也就是说需要执行的数量等于可以执行的数量且等于已经执行了的数量
镇远县19392619646: Linux系统的平均负载怎么样呢? ?
淫服特美: 一、什么是系统平均负载(Load average)? 在Linux系统中,uptime、w、top等命令都会有系统平均负载load average的输出,那么什么是系统平均负载呢? 系统平均负...
镇远县19392619646: 如何理解Linux的处理器负载均?如何理解Linux的处理器负载 ?
淫服特美: 你可能对于 Linux 的负载均值(load averages)已有了充分的了解.负载均值在 uptime 或者 top 命令中可以看到,它们可能会显示成这个样子: load average: 0.09, 0....
镇远县19392619646: linux top 负载值是如何计算出来的 - ?
淫服特美: 在Linux 系统中,uptime、w 、top 等命令都会有系统平均负载load average的输出,那么什么是系统平均负载呢?系统平均负载被定义为在特定时间间隔内运行队列中的平均进程树.如果一个进程满足以下条件则其就会位于运行队列中:- 它没有在等待I/O 操作的结果- 它没有主动进入等待状态(也就是没有调用'wait')- 没有被停止(例如:等待终止)
镇远县19392619646: linux 安装 nfs 后防火墙怎么设置?怎样测试nfs安装是否成功?初学者求解?
淫服特美: 这个最直接能启动肯定就安装成功了! service nfs restart 共享的文件为/etc/exports exports -av netstat -anp | grep mount //查看rpc的相关信息(应该会有两个端口一个为LISTEN状态),注意显示的是否是rpc.mount 打开LISTEN rpc.mount [port] 这...
镇远县19392619646: linux 下DVD光驱怎么挂载 - ?
淫服特美: 这要看你用的是什么linux版本,如果是: RedHat9.0 则:mount /dev/cdrom /mnt RedHat5.4 则:mount /dev/cdrom /media 推荐使用autofs和fstab,自动挂载
镇远县19392619646: 如何把linux刻录到dvd光盘? - ?
淫服特美: 1先要有1个linux安装包或者镜像(.iso文件)2下载一个刻录软件推荐使用WinISO.3如果你是安装包可以使用WinIso将其制作成镜像.如果本身就是iso文件则不用4 最后将iso刻录到光盘即可
镇远县19392619646: 怎样快速启动Linux系统? - ?
淫服特美: 在DOS下,有一种简单快速启动Linux的方法,那就是load Linux.loadlin.exe是DOS下的可执行程序,它可以在纯DOS环境下迅速启动Linux,而且无需重启计算机,通常我们可以在光盘的“/kernels”目录下找到这个程序.如果不知这个程序被...