最近在调试程序的时候经常需要查看服务器的性能问题。那么到底是需要查看服务器的哪些性能呢,如何查看性能呢?下面主要就说一下一些查看服务器性能的命令。
注:由于参数过多,我只列出了几个常观察的参数,更多的参数说明有附带链接作为参考
free –m 查看内存使用情况
这个命令比较简单,-m 代表下面的是以M为单位
Mem是表示物理内存,主要看 Mem free代表还有多少内存可以
说一下第二行的 -/+ buffers/cache:
used = 第一行的used - buffers - cached (表示实际使用的内存总数)
free = 第一行的free + buffers + cached (表示实际剩余的内存总数)
所以一般查看内存还剩余多少查看第二行的free参数
更多详解可以参考:http://www.linuxso.com/command/free.html
iostat命令
iostat是查看系统IO情况的命令
% user显示了在用户级(应用程序)执行时产生的 CPU 使用率百分比。
% system显示了在系统级(内核)执行时产生的 CPU 使用率百分比。
% idle显示了在 CPU 空闲并且系统没有未完成的磁盘 I/O 请求时的时间百分比。
% iowait显示了 CPU 空闲期间系统有未完成的磁盘 I/O 请求时的时间百分比。
%nicenice操作(改变进程优先序列操作)操作使用的CPU百分比
%steal管理程序维护另一个虚拟处理器时候,虚拟CPU的无意识等待时间百分比
在所有显示中,我们要注意的有几个:
1 iowait,如果iowait较高,表示硬盘操作存在IO瓶颈
2 idle, 如果高,说明CPU较空闲,如果持续低于10的话,说明CPU处理能力低,此时存在CPU瓶颈
更多说明请看:
http://wenku.baidu.com/view/404bcac48bd63186bcebbc95.html
http://wenku.baidu.com/view/900a99370b4c2e3f57276313.html
sar 命令(system activity reporter )
sar是查看操作系统的资源使用情况,CPU,内存,IO等都会在这个命令中得到体现
sar [参数] [间隔次数] [统计次数]
sar -A 1 10代表列出所有统计项目,每1s统计一次,共统计10次
Sar -A中有许多项参数,一个一个说吧
(8 CPU)很明显,这台机子是8核的
%irq CPU用于硬件交互所占用的时间百分比
%soft CPU用于应用程序交互所占用的时间百分比
%guest CPU用于虚拟处理器所占用的时间百分比
await IO请求平均需要耗费的时间
svstm IO访问设备的平均时间
%util CPU的IO访问所占用和等候的时间,如果这个时间很大的话,就说明CPU的时间都放在IO操作和等候上了。此时IO瓶颈。
sar还有更多选项可以参考:
http://linux.die.net/man/1/sar
netstat命令
这里就说几个常看的
Local Address是本地端口
Foreign Address是连接到外部的IP和端口
state是这个socket的状态
Recv-Q和Send-Q表示端口的吞吐量
比如现在想看这台机子的nginx有多少个连接
netstat -anp | grep "nginx" | wc –l
更多的注释说明在:http://linux.die.net/man/8/netstat
参考资料
建议读者需要查看某个linux命令,直接参考这个网站:
虽然是E文,但是比参考很多零零散散的文章好多了。