主要内容:从CPU、MEM、NET、I/O几个方面如何查看Linux系统性能相关信息,如何发现瓶颈。
一 CPU
#vmstat CPU平均占用百分比
us-用户态,sy-系统态,id-空闲,wa-等待
数据来源:/proc/stat
#vmstat 每个CPU占用情况
#top 每个进程CPU利用情况
二 MEM
内存总体使用情况 free
内存详细使用情况 cat/proc/meminfo
(如果内存消耗不在常态,也不是cache的问题,不要忘了观察slab。另外dirty是没有刷到磁盘的数据量,可以反映内核写的压力)。
三 NET
网络流量 sar命令
丢包
链路层 ethtool,可以查看网卡状态、速度
TC层 tc
IP层 netstat
TCP层 netstat
TCP传输速率的决定因素
1)滑动窗口--流量控制
原因:RTT延时大的网络中,大量数据包缓存在链路上
解决:增大TCP缓冲
2)拥塞窗口--拥塞控制
原因:丢包,拥塞退避,导致了TCP传输速率下降
解决:采用合适的拥塞控制算法
3)应用程序--流量控制
举例:SCP命令
解决:去掉SCP流控
四 I/O问题
# iostat
IO是目前应用中主要瓶颈问题。