linux性能优化

调优必须有性能指标,一开始调优必须确定指标、确定基线、确定目标。

linux性能优化_第1张图片

如果可能的话分离问题,删除任何运行于被调查系统的多余的程序或应用!

工具:gnome-system-monitor 图形界面,可以说是TOP的图形化

执行:->gnome-system-monitor

linux性能优化_第2张图片

多处理器统计:mpstat,最大的优点是统计信息的旁边显示时间,你就可以找出cpu使用率与时间的关系。

系统活动报告:sar,低开销的,记录系统执行情况信息的方法。

****************************进程性能统计信息******************************

内核时间&用户时间:time\ps

time:>>>>>>>>real----是正的或者经过的时间即程序开始到结束执行的时间

>>>>>>>>>>>user----测量的是用户的时间,即CPU代表该程序执行应用代码所花费的时间

>>>>>>>>>>>sys----测量的是系统的时间,即CPU代表该程序执行系统或者内核代码所花费的时间

库时间&应用程序时间:ltrace

细分应用程序时间:gprof

strace善于跟踪进程

linux性能优化_第3张图片

 

ltrace跟踪的应用程序对库的调用而不是内核的调用

linux性能优化_第4张图片

ps进程状态

valgrind:一个强大的工具,使你能调试棘手的内存管理错误。

kcachegrind:与valgrind密切合作,提供关于被剖析应用程序的高速缓存使用情况的信息信息。

ipcs:可以展示进程间通讯内存的信息

linux性能优化_第5张图片

linux性能优化_第6张图片

vmstat提供i/o性能情况》》》iostat专门显示磁盘I/O子系统统计信息工具

linux性能优化_第7张图片

linux性能优化_第8张图片

网络性能工具

mii-tool---媒体无关接口工具

以太网专用硬件工具,主要用于设置以太网设备,也可以提供有关当前设置信息,物理层的底层信息

ethtool:配置和显示以太网设备统计数据方面,包含了更多配置选项和设备统计信息

gkrellm:没有命令行选项用于配置其监控的统计信息

iptraf:实时网络监控工具

linux性能优化_第9张图片

netstat:基本的网络性能工具,当前正在使用的网络套接字的数量和类型,以及有关流入和流出当前系统的UDP和TCP数据包数量的特定接口统计数据

linux性能优化_第10张图片

性能调查中最有价值的步骤之一就是保存在调查工程中发出的命令和产生的结果

Linux提供两个命令:tee和script

gnumeric 梳理庞大的数据并找出能够表明系统运行情况的趋势与模式;一个轻量级的应用程序,能够快速简便的导入、绘图/分析大量的性能数据。

ldd:用来显示特定的二进制文件依赖的哪个库,ldd有助于跟踪一个应用程序可能使用的库函数的位置。

objdump:对于分析二进制文件和库的各方面,这是个复制而强大的工具

优化应用程序

优化应用程序基本上从以下几方面考虑

  • 内存使用问题
  • 启动时间问题
  • 加载器引入延迟问题:如果ld统计数据显示在映射所有符号时有明显的延时,那么就尽量减少应用程序使用的库数量和大小,或者尽量预链接库
  • cpu使用(或完成时长)有问题
  • 应用程序的磁盘使用 问题
  • 应用程序的网络使用问题

诊断系统级性能问题的流程:

linux性能优化_第11张图片

优化进程CPU使用情况

linux性能优化_第12张图片

经典的性能权衡:增加内存使用量来降低CPU使用量

 

参考书籍《Linux性能优化_[美]+菲利普G.伊佐特_机械工业.pdf》

你可能感兴趣的:(Linux软件性能分析)