Linux性能优化 第四章 性能工具:特定进程CPU
4.1进程性能统计信息
4.1.1. 内核时间VS用户时间
一个应用程序所耗时间最基本的划分是内核时间与用户时间。内核时间是消耗在Linux内核上的时间,而用户时间则是消耗在应用程序或库代码上的时间。Linux有工具,如time和ps,可以(大致)表明应用程序将其时间花费在应用程序代码上还是话费在内核代码上。
4.1.2 库时间VS应用程序时间
任何应用程序,即便其复杂性非常低,也需要依赖系统库才能执行复杂的操作。这些库可能导致性能问题,因此,能够查看应用程序在某个库中花费了多少时间很重要了。在库被应用程序使用时,ltrace命令和oprofile工具包提供了分析库性能的途径。Linux加载器ld的内置工具帮助你确定使用多少个库是否会减慢应用程序的启动时间。
4.2工具
4.2.1 time
time命令完成一项基本功能,当需要测试一条命令的性能时,通常会首先运行它。time命令如同秒表一样,可以测量命令执行的时间。

4.2.2 strace
starce是当程序执行时,追踪其发起的系统调用工具。系统调用是由或代表一个应用程序进行的Linux内核函数调用。strace可以展示准确的系统调用,它在确定应用程序是如何使用Linux内核方面是相当有用的。在分析大型程序或你完全不懂的程序时,跟踪系统调用的频率和长度是特别有价值的。通过查看strace的输出,你可以了解应用程序如何使用内核,以及它依赖什么类型的函数。
语法
|
strace [-c] [-p pid] [-o file] [--help] [command [arg …]] |
strace命令行选项
|
选项 |
说明 |
|
-c |
打印出统计信息的概要,而非所有系统调用的独立列表 |
|
-p pid |
将给定PID添加到进程,并开始跟踪 |
|
-o file |
输出保存到file文件里面 |
与CPU相关的strace输出
|
%time |
对全部系统调用的总时间来说,该项为这一个系统调用所花时间的百分比 |
|
second |
这一个系统调用所花费的总秒数 |
|
calls |
这个类型的所有调用的总数 |

4.2.3 ltrace
ltrace与strace的概念相似,但它跟踪的是应用程序对库的调用而不是对内核的调用。虽然ltrace主要用于提供对库调用的参数和返回值的精确跟踪,但是你也可以用它来汇总每个调用所花的时间。这使得你既可以发现应用程序有哪些调用,又可以发现每个调用时间是多长。


4.2.4 ps(进程状态)
ps能给出运行进程的详细的静态和动态统计信息。ps提供静态信息包括命令名和PID,动态信息保存内存和CPU的当前使用情况。 
ps命令行选项
|
etime |
统计信息:经过时间是指从程序开始执行耗费的总的时间 |
|
time |
统计信息:CPU时间是指进程运行于CPU所话费的系统时间加上用户时间 |
|
pcpu |
统计信息:进程当前消耗的CPU百分比 |
|
cmd |
统计信息:命令名 |
Linux性能优化 第四章 性能工具:特定进程CPU的更多相关文章
- Linux性能优化 第七章 性能工具:网络
7.1 网络I/O介绍 Linux和其他主流操作系统中的网络流量被抽象为一系列的硬件和软件层次. 链路层,也就是最低的一层,包含网络硬件,如以太网设备.在传送网络流量时,这一层并不区分流量类型,而仅仅 ...
- Linux性能优化 第五章 性能工具:特定进程内存
5.1 Linux内存子系统 在诊断内存性能问题的时候,也许有必要观察应用程序在内存子系统的不同层次上是怎样执行的.在顶层,操作系统决定如何利用交换内存和物理内存.它决定应用程序的哪一块地址空间将被放 ...
- Linux性能优化 第六章 性能工具:磁盘I/O
6.1 磁盘I/O介绍 一般来说,Linux磁盘的每个分区要么包含一个文件系统,要么包含一个交换分区.这些分区被挂载到Linux根文件系统,该系统由/etc/fstab指定.这些被挂载的文件系统包含了 ...
- Linux性能优化 第三章 性能工具:系统内存
3.1内存性能统计信息 3.1.1 内存子系统和性能 和CPU相比,内存的读写速度都大大落后于CPU.为了弥补这个差距,通常CPU会采用高速缓存的机制(高cache). 3.1.2 内存子系统(虚拟存 ...
- Linux内核分析第四章 读书笔记
Linux内核分析第四章 读书笔记 第一部分--进程调度 进程调度:操作系统规定下的进程选取模式 面临问题:多任务选择问题 多任务操作系统就是能同时并发地交互执行多个进程的操作系统,在单处理器机器上这 ...
- 《Linux 性能优化实战—倪朋飞 》学习笔记 CPU 篇
平均负载 指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数 可运行状态:正在使用CPU或者正在等待CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态 (Run ...
- 性能优化系列四:Tomcat优化
一.Tomcat工作原理 1. TCP的三次握手四次挥手 三次握手: 说明: 类比于A和B打电话: A对B说:你好,我是A,你能听到我说话吗? B对A说:嗯,我能听到你说话 A对B说:好,那我们开始聊 ...
- ASP.NET MVC之如何看待内置配置来提高性能优化(四)
前言 前几篇我们比较基础的讲了下MVC中的知识,这一节我们穿插点知识,讲讲MVC中我们可以提高性能的办法. Razor视图引擎优化(优化一) 我们知道默认情况下配置MVC去解析一个视图会首先约定通过查 ...
- MySQL之查询性能优化(四)
优化特定类型的查询 COUNT()的作用 COUNT()是一个特殊函数,有两个非常不同的作用:它可以统计某个列值的数量,也可以统计行数.在统计列值时要求列值是非空的(不统计NULL). 如果在COUN ...
随机推荐
- JDK8新增时间类型用在JPA中的问题
之前数据库存储日期时间类型时一般POJO实体对应属性为java.util.Date,然后通过JPA注解指定它是日期格式或是日期时间格式,JDK8中新增了更好的时间API,如表示本地日期的LocalDa ...
- 图像识别的前期工作——使用pillow进行图像处理
pillow是个很好用的python图像处理库,可以到官方网站下载最新的文件.如果官网的任何PIL版本都不能与自己的python版本对应,或安装成功后发现运行出错,可以尝试从一个非官方的whl网站下载 ...
- Revit 开发将自己的窗口设置为Revit窗口
在Revit开发中如果使用modeless的对话框,经常容易被Revit窗体覆盖,但是如果将窗体设为Topmost的话,当Revit失去焦点后,它又会遮住其他程序的界面,比如将Revit最小化后,To ...
- [转]xargs详解
为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以 ...
- git 项目配置用户名、邮箱的方法
git 项目配置用户名.邮箱的方法 单个仓库里,配置用户名.邮箱: git config user.name "姓名" git config user.email "邮箱 ...
- python引入自定义模块
Python的包搜索路径 Python会在以下路径中搜索它想要寻找的模块:1. 程序所在的文件夹2. 标准库的安装路径3. 操作系统环境变量PYTHONPATH所包含的路径 将自定义库的路径添加到Py ...
- Video Test Pattern Generator(7.0)软件调试记录
Video Test Pattern Generator(7.0)软件调试记录 . XVidC_VideoMode XVIDC_VM_576_50_I = XVIDC_VM_720x576_50_I ...
- Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》(6)
Vivado HLS初识---阅读<vivado design suite tutorial-high-level synthesis>(6) 1.创建工程与开启GUI 2.调试 查看关于 ...
- 怎样在Qsys系统中添加第三方IP核
1.新建Quartus II工程 2.新建Qsys系统 3.如果没有我们需要添加的IP,需要自己额外添加 4在我们新建的Quartus工程里面新建一个文件夹,命名为ip; 5.将我们已经下载好的IP文 ...
- MYSQL优化浅谈,工具及优化点介绍,mysqldumpslow,pt-query-digest,explain等
MYSQL优化浅谈 msyql是开发常用的关系型数据库,快速.稳定.开源等优点就不说了. 个人认为,项目上线,标志着一个项目真正的开始.从运维,到反馈,到再分析,再版本迭代,再优化… 这是一个漫长且考 ...