Linux系统性能分析
http://c.biancheng.net/cpp/html/2782.htmlLinux系统性能分析
这篇教程的目的是向大家介绍一些免费的系统性能分析工具(命令),使用这些工具可以监控系统资源使用情况,便于发现性能瓶颈。
系统的整体性能取决于各种资源的平衡,类似木桶理论,某种资源的耗尽会严重阻碍系统的性能。

Linux中需要监控的资源主要有 CPU、主存(内存)、硬盘空间、I/O时间、网络时间、应用程序等。
影响系统性能的主要因素有:
因素 | 说明 |
---|---|
用户态CPU | CPU在用户态运行用户程序所花费的时间,包括库调用,但是不包括内核花费的时间。 |
内核态CPU | CPU在内核态运行系统服务所花费的时间。所有的 I/O 操作都需要调用系统服务,程序员可以通过阻塞 I/O 传输来影响这部分的时间。 |
I/O 时间和网络时间 | 响应 I/O 请求、处理网络连接所花费的时间。 |
内存 | 切换上下文和交换数据(虚拟内存页导入和导出)花费的时间。 |
应用程序 | 程序等待运行的时间——CPU正在运行其他程序,等待切换到当前程序。 |
说明:一般认为用户态CPU和内核态CPU花费的时间小于70%时是良好状态。
下面的命令可以用来监控系统性能并作出相应调整:
命令 | 说明 |
---|---|
nice | 启动程序时指定进程优先级。 |
renice | 调整现有进程的优先级。 |
netstat | 显示各种网络相关信息,包括网络连接情况、路由表、接口状态(Interface Statistics)、masquerade 连接、多播成员 (Multicast Memberships)等。实际上,netstat 用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。 |
time | 检测一个命令运行时间以及资源(CPU、内存、I/O等)使用情况。 |
uptime | 查看系统负载情况。 |
ps | 查看系统中进程的资源使用情况(瞬时状态,不是动态监控)。 |
vmstat | 报告虚拟内存使用情况。 |
gprof | 精确分析程序的性能,能给出函数调用时间、调用次数、调用关系等。 |
top | 实时监控系统中各个进程资源的资源使用情况。 |
常用命令组合:
- vmstat、sar、mpstat检测是否存在CPU瓶颈;
- vmstat、free检测是否存在内存瓶颈;
- iostat检测是否存在磁盘I/O瓶颈;
- netstat检测是否存在网络I/O瓶颈。
Linux系统性能分析的更多相关文章
- (转)Linux 系统性能分析工具图解读(一、二)
Linux 系统性能分析工具图解读(一.二) 原文:http://oilbeater.com/linux/2014/09/08/linux-performance-tools.html 最近看了 Br ...
- Linux 系统性能分析工具 sar
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以 从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用 ...
- 【转】Linux系统性能分析命令
作为一名linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行,但是由于硬件问题.软件问题.网络环境等的复杂性和多变性,导致对系统的优化变得异常复杂,如何定位性能问题出在哪个 ...
- Linux系统性能分析工具 sar--系统活动情况报告
1.结论: sar 命令是linux系统上,分析系统性能的常用工具,可以查看cpu.内存.磁盘IO.文件读写.系统调用, 2.sar会有一个定时任务,定期记录当前系统信息到 /var/log/sa/ ...
- linux 系统性能分析
CPU篇 top 1时,看各个cpu是否均衡:看每个cpu的使用率分布是否合理 看load average的负载( 1分钟.5分钟.15分钟前到现在的平均值) 看内存的使用 看进程数运行.休眠数 M看 ...
- Linux系统性能分析工具
1. uptime 2. htop 3. mpstat 4 . iostat 5. dstat 6. netstat 7. tcpdump 8. sar
- sar 找出系统瓶颈的利器 目前Linux上最为全面的系统性能分析工具之一 直接 sar -dur 1 30 即可看内存 CPU和IO占用
12. sar 找出系统瓶颈的利器 sar是System Activity Reporter(系统活动情况报告)的缩写.sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行 ...
- JMeter—系统性能分析思路(十三)
参考<全栈性能测试修炼宝典JMeter实战>第九章 性能监控诊断 第二节 系统性能分析思路和第三节 定位分析 系统在工作负载中的性能受到许多因素影响,处理器速度.内存容量.网络或磁盘I/O ...
- 通信原理实践(四)——模拟通信系统性能分析
一.模拟通信系统性能分析 1.系统框图 2.信噪比定义 (1)输入信噪比: (2)输出信噪比: (3)调制制度增益: 3.模拟通信系统分析等价模型 即自己产生一个高斯白噪声,加入到调制信号,然后在送入 ...
随机推荐
- 从PDF中提取信息----PDFMiner
今天由于某种原因需要将pdf中的文本提取出来,就去搜了下资料,发现PDFMiner是针对 内容提取的,虽然最后发现pdf里面的文本全都是图片,就没整成功,不过试了个文本可复制的 那种pdf文件,发现还 ...
- UnsupportedClassVersionError 错误解决办法
偶然遇到关于版本问题的错误,为了以后查找方便记录下来.有更好的办法欢迎大家更正. 错误内容: Exception in thread "main" java.lang.Unsupp ...
- 【原创】基于SVM作短期时间序列的预测
[面试思路拓展] 对时间序列进行预测的方法有很多, 但如果只有几周的数据,而没有很多线性的趋势.各种实际的背景该如何去预测时间序列? 或许可以尝试下利用SVM去预测时间序列,那么如何提取预测的特征呢? ...
- KMP算法解析(转自图灵社区)
KMP算法是一个很精妙的字符串算法,个人认为这个算法十分符合编程美学:十分简洁,而又极难理解.笔者算法学的很烂,所以接触到这个算法的时候也是一头雾水,去网上看各种帖子,发现写着各种KMP算法详解的转载 ...
- Seajs教程 配置文档
seajs.config Obj alias Obj 别名配置,配置之后可在模块中使用require调用require('jQuery'); seajs.config({ alias:{ 'jquer ...
- Javascript学习笔记2.1 Javascript与DOM简介
DOM(文档对象模型)简介 DOM(文档对象模型)针对HTML和XML文档的一个API. DOM可以将任何HTML或XML文档描绘成由多层节点构成的树形结构,它是中立于平台和语言的接口,允许程序和脚本 ...
- Android6.0获取权限
照着<第一行代码>打代码,然并卵,感叹技术进步的神速.最后提醒一点:IT类的书籍一定要注意出版时间!出版时间!出版时间!重要的事情说三遍 问题出在android6.0的权限获取问题上,以前 ...
- windows下部署Redis
1.去github上下载最新的项目源码https://github.com/MSOpenTech/redis 2.打开项目文件redis-3.0\msvs\RedisServer.sln 编译所有项目 ...
- 自定义view文字垂直居中
FontMetricsInt fontMetrics = deletePaint.getFontMetricsInt(); int baseline = rect.top + (rect.height ...
- iOS开发_MVC设计模式
MVC,是一种主流的设计模式,本博文总结一下自己对MVC的看法和理解,浅知拙见,难登大雅之堂,如有欠缺遗漏,还望各位指正. MVC是Model-View-Controller 的缩写,Model 是指 ...