文章转载自:Linux性能监控 - CPU、Memory、IO、Network
本篇文章总结的不错,在此做个备份,如有侵权,请联系。
一、CPU
良好状态指标
CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System Time <= 70%。
上下文切换:与CPU利用率相关联,如果CPU利用率状态良好,大量的上下文切换也是可以接受的。
可运行队列:每个处理器的可运行队列<=3个线程。
监控工具
vmstat 1
二、Memory
良好状态指标
swap in (si) == 0,swap out (so) == 0
应用程序可用内存/系统物理内存 <= 70%
监控工具
vmstat 1
free -m
三、磁盘IO
良好状态指标
iowait % < 20%
提高命中率的一个简单方式就是增大文件缓存区面积,缓存区越大预存的页面就越多,命中率也越高。
Linux 内核希望能尽可能产生次缺页中断(从文件缓存区读),并且能尽可能避免主缺页中断(从硬盘读),这样随着次缺页中断的增多,文件缓存区也逐步增大,直到系统只有少量可用物理内存的时候 Linux 才开始释放一些不用的页。
监控工具
cat /proc/meminfo
四、Network IO
对于UDP
良好状态指标
接收、发送缓冲区没有长时间等待处理的网络包。
监控工具
netstat
对于UDP服务,查看所有监听的UDP端口的网络情况
watch netstat -lunp
对于TCP
良好状态指标
对于TCP而言,不会出现因为缓存不足而存在丢包的事,因为网络等其他原因,导致丢了包,协议层也会通过重传机制来保证丢的包到达对方。
所以,tcp而言更多的专注重传率。
监控工具
cat /proc/net/snmp | grep Tcp:
Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs OutRsts
Tcp: 1 200 120000 -1 105112 76272 620 23185 6 2183206 2166093 550 6 968812
重传率 = RetransSegs / OutSegs
至于这个值在多少范围内,算ok的,得看具体的业务了。
业务侧更关注的是响应时间。
网友评论