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的更多相关文章

  1. Linux性能优化 第七章 性能工具:网络

    7.1 网络I/O介绍 Linux和其他主流操作系统中的网络流量被抽象为一系列的硬件和软件层次. 链路层,也就是最低的一层,包含网络硬件,如以太网设备.在传送网络流量时,这一层并不区分流量类型,而仅仅 ...

  2. Linux性能优化 第五章 性能工具:特定进程内存

    5.1 Linux内存子系统 在诊断内存性能问题的时候,也许有必要观察应用程序在内存子系统的不同层次上是怎样执行的.在顶层,操作系统决定如何利用交换内存和物理内存.它决定应用程序的哪一块地址空间将被放 ...

  3. Linux性能优化 第六章 性能工具:磁盘I/O

    6.1 磁盘I/O介绍 一般来说,Linux磁盘的每个分区要么包含一个文件系统,要么包含一个交换分区.这些分区被挂载到Linux根文件系统,该系统由/etc/fstab指定.这些被挂载的文件系统包含了 ...

  4. Linux性能优化 第三章 性能工具:系统内存

    3.1内存性能统计信息 3.1.1 内存子系统和性能 和CPU相比,内存的读写速度都大大落后于CPU.为了弥补这个差距,通常CPU会采用高速缓存的机制(高cache). 3.1.2 内存子系统(虚拟存 ...

  5. Linux内核分析第四章 读书笔记

    Linux内核分析第四章 读书笔记 第一部分--进程调度 进程调度:操作系统规定下的进程选取模式 面临问题:多任务选择问题 多任务操作系统就是能同时并发地交互执行多个进程的操作系统,在单处理器机器上这 ...

  6. 《Linux 性能优化实战—倪朋飞 》学习笔记 CPU 篇

    平均负载 指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数 可运行状态:正在使用CPU或者正在等待CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态 (Run ...

  7. 性能优化系列四:Tomcat优化

    一.Tomcat工作原理 1. TCP的三次握手四次挥手 三次握手: 说明: 类比于A和B打电话: A对B说:你好,我是A,你能听到我说话吗? B对A说:嗯,我能听到你说话 A对B说:好,那我们开始聊 ...

  8. ASP.NET MVC之如何看待内置配置来提高性能优化(四)

    前言 前几篇我们比较基础的讲了下MVC中的知识,这一节我们穿插点知识,讲讲MVC中我们可以提高性能的办法. Razor视图引擎优化(优化一) 我们知道默认情况下配置MVC去解析一个视图会首先约定通过查 ...

  9. MySQL之查询性能优化(四)

    优化特定类型的查询 COUNT()的作用 COUNT()是一个特殊函数,有两个非常不同的作用:它可以统计某个列值的数量,也可以统计行数.在统计列值时要求列值是非空的(不统计NULL). 如果在COUN ...

随机推荐

  1. CloudStack学习-3

    此次试验主要是CloudStack结合openvswitch 背景介绍 之所以引入openswitch,是因为如果按照之前的方式,一个网桥占用一个vlan,假如一个zone有20个vlan,那么岂不是 ...

  2. 我发起了一个 .Net 平台上的 直播平台 开源项目 BalaBala

    直播平台, 需要解决的 技术点 是 2 个: 1  直播数据 的 传输 和 在 客户端 的 播放 2  大并发 关于 网络通信, 数据传输, 可以参考 <利用 MessageRPC 和 Shar ...

  3. Apache Kafka监控之Kafka Web Console

    Kafka Web Console:是一款开源的系统,源码的地址在https://github.com/claudemamo/kafka-web-console中.Kafka Web Console也 ...

  4. Spring Cloud(Dalston.SR5)--Eureka 服务消费

    服务被注册.发布到 Eureka 服务器后,需要有程序去发现他,并且进行调用,称为服务消费,一个服务可能会部署多个实例,调用过程可能涉及负载均衡.服务器查找等问题,这些问题 Netflix 项目已经帮 ...

  5. 记一次shell脚本编写及执行

    首先cd进一个目录下 tauch tset.sh //新建一个test.sh文件 vim test.sh 编辑脚本 i 插入 #!/bin/bash data 按Esc键 再按ctrl+: wq + ...

  6. Git-.gitignore配置

    .gitignore文件配置:keil工程文件类型模板 # reference to Keil->help->µVision User's Guide->Appendix->B ...

  7. phinx 使用指南

    一 使用 第一步 安装 composer require robmorgan/phinx第二步 初始化php vendor/robmorgan/phinx/bin/phinx init创建目录db/m ...

  8. 自定义tt文本模板实现MySql指数据库中生成实体类

    自定义tt文本模板实现MySql指数据库中生成实体类 1.在项目中依次点击“添加”/“新建项”,选择“文本模板”,输入名称后点击添加. 2.在Base.tt中添加如下代码. <#@ templa ...

  9. html框内文字垂直居中的方法

    由于无法知道框内文字的高度,很难确定垂直空间的位置.vertical-align:middle仅对td元素有效,无论单行和多行均可实现垂直居中.

  10. 解决Sublime Text 3中文显示乱码问题

    之前用Sublime Text 2,阅读了你是猴子派的救兵吗写的博客解决Sublime Text 2中文显示乱码问题,解决了问题. 后来嫌版本2启动太慢了,换成Sublime Text 3之后,发现网 ...