Linux服务器资源占用率总结

 统计内存最高的进程:

ps aux | grep -v PID | sort -rn -k 4 | head

统计CPU使用率最高的进程:

 ps aux | grep -v PID | sort -rn -k 3 | head

僵尸进程:

ps aux | grep defunct | grep -v grep

查找进程启动的线程:

ps -eLf PID

查看网络服务状态:

netstat -ntlp --显示正在listening的tcp的数字格式的连接

netstat -nulp --显示正在listening的udp的数字格式的连接

硬件故障分析:

1.检查磁盘使用量:服务器硬盘是否已满。

2.是否开启了swap交换模式(si/so)。

3.CPU使用情况:占用高CPU时间片的是系统进程还是用户进程。

查看CPU和内存信息:

free -m

Mem为物理内存的容量。

Swap为虚拟内存的容量。

total为总容量。

used为已用容量。

free为空闲容量。

shared为共享容量。

buff/cache为缓冲及缓存的容量。

avaiable为真正可用容量。

一般swap used的值最好不要超过20%。

top --CPU和内存使用实际统计

 mpstat 2 10 --查看每个CPU的使用统计。

总线设备信息统计:

lspci --显示系统中所有PCI总线设备或连接到该总线的所有设备

使用dmidcode命令查看bios、system、memory、processor等硬件设备的信息

例:dmidecode -t Memory | grep "Maximum Capacity"

查看网卡信息:

ethtool 网卡名

ethtool -i ens33

I/O性能统计

iostat -kx 2

vmstat 2 10

swpd:切换到交换内存上的内存容量(默认以KB为单位),正常情况下swpd的值为0。如果swpd的值比较大,如果查过100M,但是si和so的值长期为0,则这种情况不会影响性能。

free:空闲的物理内存容量。如果free的值很小,但是si和so的值也很小,则系统性能不会受到影响。

buff:做为buffer cache(缓冲区缓存)的内存,对块设备的读写进行缓冲。

cache:做为page cache(页面缓存)的内存,文件系统的缓存,如果缓存值大,则说明缓存的文件数多,如果频繁访问到的文件都能被缓存,name磁盘的读io bi(发送到块设备的块数)会非常小。

si:交换内存使用,由磁盘调入内存。

so:交换内存使用,有内存调入磁盘。

提示:内存够用时,si和so的值都是0,;如果这两个值长期大于0,那么系统性能就会收到影响,磁盘、I/O和CPU资源都会被消耗完。

bi:从块设备读入的数据量(读磁盘),单位为KB/s。

bo:写入到块设备的数据总量(写磁盘),单位为KB/s。

提示:随机磁盘读写的时候,这2个值越大(如超出1M),能看到CPU在I/O等待的值也会越大。

in:每秒产生的终端次数。

cs:每秒产生的上下文切换次数。

提示:in和cs的值越大,有内核消耗的CPU时间会越多。

us:用户进程消耗的CPU时间百分比。如果us的值比较高,则说明用户进程消耗的CPU时间多。但是如果长期超过50%,那么就考虑优化程序算法或者进行加速。

sy:内核进程所消耗的CPU时间百分比。如果sy的值比较高,说明系统内核消耗的CPU资源多,这并不是良性的表现,应该检查原因。

id:CPU处于空闲状态时间的百分比。

wa:I/O等待消耗的CPU时间百分比。如果wa的值比较高,则说明I/O等待比较严重,这可能是磁盘大量做随机访问造成的,也有可能是磁盘的带宽出现瓶颈,如快操作等。

 

查看当前占用I/O资源最高的进程信息,如下图所示:

dstat --top-bio --top-io

磁盘使用率统计:

df -h --查看磁盘容量使用情况(检查删除文件后磁盘空间有未释放)

fdisk -l --查看磁盘分区信息

磁盘I/O相关参考:https://www.cnblogs.com/hanson1/p/7102206.html

lsof命令可以列出当前系统打开的文件及目录,其中提供了大量关于这个应用程序本身和操作系统交互的信息。+D参数可以列出对应目录下的所有子目录和文件。

操作系统日志:

查看整体系统日志:/var/log/messages

查看授权和认证信息:/var/log/secure

以上两个日志中需关注:

1)错误和告警信息,是否因为连接数过多所导致的;

2)是否有硬件错误或文件系统错误。

中断异常信息:

/proc/interrupts中中断请求是否均衡分配给了CPU处理,CPU是否会由于大量网络中断请求或RAID请求而过载。

内核信息查询:

dmesg | more

posted @ 2018-08-29 23:03  confident1012  阅读(10839)  评论(0编辑  收藏  举报