Linux性能监控 - CPU、Memory、IO、Network

文章转载自: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的,得看具体的业务了。

业务侧更关注的是响应时间。

你可能感兴趣的:(Linux性能监控 - CPU、Memory、IO、Network)