服务器性能查看常用命令

 

最近在调试程序的时候经常需要查看服务器的性能问题。那么到底是需要查看服务器的哪些性能呢,如何查看性能呢?下面主要就说一下一些查看服务器性能的命令。

注:由于参数过多,我只列出了几个常观察的参数,更多的参数说明有附带链接作为参考

free –m  查看内存使用情况

clip_image001

这个命令比较简单,-m 代表下面的是以M为单位

Mem是表示物理内存,主要看 Mem free代表还有多少内存可以

第1行  Mem:
total:表示物理内存总量。
used:表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。
free:未被分配的内存。
shared:共享内存,一般系统不会用到,这里也不讨论。
buffers:系统分配但未被使用的buffers 数量。
cached:系统分配但未被使用的cache 数量。
buffer 与cache 的区别见后面。

total = used + free   

第2行   -/+ buffers/cached:
used:也就是第一行中的used - buffers-cached  也是实际使用的内存总量。
free:未被使用的buffers 与cache 和未被分配的内存之和,这就是系统当前实际可用内存。

free 2= buffers1 + cached1 + free1   //free2为第二行、buffers1等为第一行
buffer 与cache 的区别:
A buffer is something that has yet to be "written" to disk.
A cache is something that has been "read" from the disk and stored for later use

第3行:
第三行所指的是从应用程序角度来看,
对于应用程序来说,buffers/cached 是等于可用的,
因为buffer/cached是为了提高文件读取的性能,
当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached.

更多详解可以参考:http://www.linuxso.com/command/free.html

iostat命令

iostat是查看系统IO情况的命令

clip_image002

% 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中有许多项参数,一个一个说吧

clip_image003

(8 CPU)很明显,这台机子是8核的

%irq CPU用于硬件交互所占用的时间百分比

%soft CPU用于应用程序交互所占用的时间百分比

%guest CPU用于虚拟处理器所占用的时间百分比

clip_image004

await  IO请求平均需要耗费的时间

svstm  IO访问设备的平均时间

%util  CPU的IO访问所占用和等候的时间,如果这个时间很大的话,就说明CPU的时间都放在IO操作和等候上了。此时IO瓶颈。

 

sar还有更多选项可以参考:

http://linux.die.net/man/1/sar

netstat命令

clip_image005

这里就说几个常看的

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命令,直接参考这个网站:

http://linux.die.net/man/8/

虽然是E文,但是比参考很多零零散散的文章好多了。

posted on 2015-09-07 15:42  vasiliki  阅读(687)  评论(0编辑  收藏  举报

导航