最近在调试程序的时候经常需要查看服务器的性能问题。那么到底是需要查看服务器的哪些性能呢,如何查看性能呢?下面主要就说一下一些查看服务器性能的命令。
注:由于参数过多,我只列出了几个常观察的参数,更多的参数说明有附带链接作为参考

这个命令比较简单,-m 代表下面的是以m为单位
mem是表示物理内存,主要看 mem free代表还有多少内存可以
说一下第二行的 -/+ buffers/cache:
used = 第一行的used - buffers - cached (表示实际使用的内存总数)
free = 第一行的free + buffers + cached (表示实际剩余的内存总数)
所以一般查看内存还剩余多少查看第二行的free参数
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瓶颈
更多说明请看:
<a href="http://wenku.baidu.com/view/404bcac48bd63186bcebbc95.html">http://wenku.baidu.com/view/404bcac48bd63186bcebbc95.html</a>
<a href="http://wenku.baidu.com/view/900a99370b4c2e3f57276313.html">http://wenku.baidu.com/view/900a99370b4c2e3f57276313.html</a>
sar是查看操作系统的资源使用情况,cpu,内存,io等都会在这个命令中得到体现
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还有更多选项可以参考:
<a href="http://linux.die.net/man/1/sar">http://linux.die.net/man/1/sar</a>
这里就说几个常看的
local address是本地端口
foreign address是连接到外部的ip和端口
state是这个socket的状态
recv-q和send-q表示端口的吞吐量
比如现在想看这台机子的nginx有多少个连接
netstat -anp | grep "nginx" | wc –l
建议读者需要查看某个linux命令,直接参考这个网站:
<a href="http://linux.die.net/man/8/">http://linux.die.net/man/8/</a>
虽然是e文,但是比参考很多零零散散的文章好多了。