linux性能瓶颈分析

linux宕机原因:资源不足,应用bug,硬件故障,系统内核bug等

yum install sysstat

1.cpu瓶颈

    邮件服务器、动态web服务器较大概率出现cpu瓶颈问题

    查看物理cpu个数

cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l

    查看cpu核数

cat /proc/cpuinfo |grep "cores"|uniq

    查看逻辑cpu个数

cat /proc/cpuinfo |grep "processor"|wc -l

    查看cpu总体消耗占比

sar -u 3

看恩吧

服务器状态统计

vmstat 3 100   //每3秒采集一次,采集100次

看恩吧

procs

r列 表示运行和等待cpu时间片段的进程数,这个值如果一直大于系统cpu个数,说明cpu不足

b列 表示在等待资源的进程数,比如正在等待io或者内存交换等

memory (以kb为单位)

swpd列表示切换到交换区的内存大小,如果swpd的值不为0或者比较大,只要si和so长期为0,一般不是性能问题

free列表示当前空闲的物理内存大小

buff列表示buffers cache的内存大小,一般对块设备的读写才需要缓存

cache列表示page cached的内存大小,一般作为文件系统进行缓存,频繁访问的文件都会缓存。如果cache值较大,说明缓存文件较多,如果此时io中的bi比较小,说明文件系统效率比价好。

sar -r 3

看恩吧

swap 单位KB/S

si列表示由磁盘调入内存,也就是由内存进入内存交换区的内存大小

so列表示由内存调入磁盘,也就是内存交换区进入内存的大小

在一般情况下,si、so的值都为0,如果si、so长期不为0,则表示系统内存不足,需要增加内存

io 单位KB/S

io项显示磁盘读写情况

bi列表示从块设备读入数据的总量

bo列表示写入到块设备的数据总量

bi+bo的参考值为1000,如果超过1000,而且wa值较大,说明系统磁盘io有问题,应该考虑提高磁盘的读写性能

system

显示采集间隔内发生的中断数

in列表示在某一时间间隔内观测到的每秒设备中断数

cs列表示每秒产生的上下文切换次数

上面的两个值越大,由内核消耗的cpu时间越多

cpu

显示cpu的使用状态

us列表示用户进程消耗的cpu时间百分比。us的值比较高时,说明用户今晨高消耗的cpu时间多,如果长期大于50%,则需要考虑优化算法或程序。

sy列表示内核进程消耗的cpu时间百分比。sy的值越高,说明内核消耗的cpu资源多。us+sy的参考值为80%,如果大于80%,说明可能存在cpu资源不足的问题。当小于70%时,说明良好。

id列表示cpu处在空闲的时间百分比。

wa列表示io等待所占用的cpu时间百分比。wa值越高,说明io等待越严重。wa的参考值为20%,如果超过20%,说明io等待严重,引起io等待的原因可能是磁盘大量随机读写,也可能是磁盘或者磁盘控制器的带宽瓶颈(主要是块操作)。


所以对cpu的评估,需要注意的是procs中的r列和cpu中的us、sy、id列

2.内存瓶颈

当内存不足时,可以看到频繁的使用虚拟内存,虚拟内存可以缓解物理内存的不足,但是虚拟内存的过多使用会导致应用的性能明显下降。

看恩吧

未用到swap,一共3770M内存,可用available 3023M 说明可用内存资源充足。

3.磁盘io性能

iostat -x 1 10

看恩吧

iowait 小于20%时,说明良好

4.网络带宽

cat /var/log/messages  //查看是否丢包


怀疑CPU存在瓶颈,可用 sar -u和 sar -q 等来查看

怀疑内存存在瓶颈,可用 sar -B、sar -r和 sar -W 等来查看

怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d等来查看




打赏

看恩吧
网站不承担任何有关评论的责任
  • 最新评论
  • 总共条评论
取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦