第21章 Linux设备驱动的调试之Linux性能监控与调优工具

21.12 Linux性能监控与调优工具

    除保证程序的正确性外,在项目开发中还关心性能和稳定性。这时,要对内核、应用程序或整个系统进行性能优化。在性能优化中常用的手段如下。

1.使用top、vmstat、iostat、sysctl等常用工具

1)top

    top命令用于显示处理器的活动状况。在缺省情况下,显示占用CPU最多的任务,并且每隔5s做一次刷新。


2)vmstat

    vmstat命令用于报告关于内核线程、虚拟内存、磁盘、陷阱和CPU活动的统计信息


3)iostat

    iostat命令用于分析各个磁盘的传输闲忙状况


4)netstat

    netstat是用来检测网络信息的工具


5)sar

sar用于收集、报告或者保存系统活动信息,其中,sar用于显示数据,sar1和sar2用于收集和保存数据。

6)sysctl

    sysctl是一个可用于改变正在运行中的Linux系统的接口。用sysctl可以读取几百个以上的系统变量。

例如:sysctl -a


    sysctl的实现原理:所有的内核参数在/proc/sys中形成一个树状结构,sysctl系统调用的内核函数是sys_sysctl,匹配项目后,最后的读写在do_sysctl_strategy中完成,如

echo "1" > /proc/sys/net/ipv4/ip_forward

等价于

sysctl –w net.ipv4.ip_forward ="1"

2.使用Benchmark(基准)评估系统

    可用于Linux的Benchmark的包括lmbench、UnixBench、AIM9、Netperf、SSLperf、dbench、Bonnie、
Bonnie++、IOZone、BYTEmark等,这些可用于评估操作系统、网络、I/O子系统、CPU等的性能,参考网

址http://lbs.sourceforge.net/列出了许多Benchmark工具。

3.使用LTP(Linux Test Project)进行压力测试

    LTPLinux Test Project,官方网站为http://ltp.sourceforge.net/)是一个由SGI发起并由IBM负责维护的

合作计划。它的目的是为开源社区提供测试套件来验证Linux的可靠性、健壮性和稳定性。它通过压力测试来判断系统的稳定性和可靠性,在工程中可使用LTP测试套件对Linux操作系统进行超长时间的测试,它可进行文件系统压力测试、硬盘I/O测试、内存管理压力测试、IPC压力测试、SCHED测试、命令功能的验证测试、系统调用功能的验证测试等。

4.进行内核跟踪,如LTTng

    LTTng(Linux Trace Toolkit-next generation,官方网站为http://lttng.org/)是一个用于跟踪系统详细运行状态和流程的工具, LTTng可以跟踪记录系统中的特定事件。这些事件包括:系统调用的进入和退出;陷阱/中断(Trap/Irq)的进入和退出;进程调度事件;内核定时器;进程管理相关事件——创建、唤醒、信号处理等;文件系统相关事件——open/read/write/seek/ioctl等;内存管理相关事件——内存分配/释放等;其他IPC/套接字/网络等事件。而对于这些记录,可以通过图形的方式经由lttv-gui查看,如图21.9所示。


图21.9 LTTng



猜你喜欢

转载自blog.csdn.net/xiezhi123456/article/details/80668436
今日推荐