Linux系统性能监控常用工具

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/coroutines/article/details/39368805

嵌入式系统产品开发经常会遇到性能瓶颈,这时需要借助外力,即各种工具,来找出问题点并及时解决。以下列出一些系统提供的工具:

1. top

个人最常用工具之一。top命令用于显示实际的进程活动状态,默认在5秒内收集CPU最密集的进程信息,并输出。默认的刷新时间可以通过-d参数改变,如

top -d1

则每1秒刷新list一次。top执行后有多个快捷键,重要的有以下几个:

h:显示线程状态

r:执行renice命令,用于调整进程优先级

k:执行kill命令,杀死指定进程

2. vmstat

vmstat提供了进程状态、内存使用、分页、block I/O,以及CPU活动等状态,vmstat可以提供了各项数据的平均值或实时采样。vmstat后接数字,表示每n秒刷新数据。

3. ps & pstree

个人最常用工具之一,同时也是系统分析的最基本命令之一。ps列出系统中现存的进程,与top不同,ps列出的是更细节的信息。在运行java的系统上,由于数据量太大,ps命令的输出很容易被覆盖掉,因此可以使用pstree命令,以树状的形态输出进程及子进程信息。

4. free

常用工具,列出系统内存使用状况。可惜free列出的是总数,无法真实反映出内存的使用情况,对于内存碎片等信息,是无法提供的。要获取这些碎片信息,可以

$cat /proc/buddyinfo,通过buddy分配器的输出,来判断系统内存的真实使用情况。

5. iostat

用于统计CPU的平均使用时间及磁盘系统的性能数据。通过参数-k -m可以指定磁盘io的计量单位是KB还是MB,命令后面接数字,表示iostat的刷新间隔。

6. mpstat

多核心系统的cpu状态统计工具。

7. pmap

查看指定(-d <pid>)进程的内存使用信息、so加载信息等等。

8. netstat

网络信息

9. tcpdump / ethereal

网络抓包及分析工具,常用,但参数较多,不细说。

10. strace

个人最常用工具之一,查系统调用的最好工具。话说从前用半天时间,查出别人几个月没查出的性能问题。有几个参数较有用:

-o:输出到文件

-r:输出每个系统调用间的相对时间跨度,需要注意:每一行的时间是上一次系统调用到这一次系统调用所执行的时间,不是本次调用所耗时间

-p:attach到指定pid的进程上。

 

就到这里了,每个命令都有一大串的参数及各种说明,可以看manual或到网上再查。

展开阅读全文

没有更多推荐了,返回首页