• 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命令如同秒表一样,可以测量命令执行的时间。

    image.png

    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

    这个类型的所有调用的总数

     image.png

    4.2.3 ltrace

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

    image.png

    image.png

    4.2.4 ps(进程状态)

    ps能给出运行进程的详细的静态和动态统计信息。ps提供静态信息包括命令名和PID,动态信息保存内存和CPU的当前使用情况。 image.png

    ps命令行选项

    etime

    统计信息:经过时间是指从程序开始执行耗费的总的时间

    time

    统计信息:CPU时间是指进程运行于CPU所话费的系统时间加上用户时间

    pcpu

    统计信息:进程当前消耗的CPU百分比

    cmd

    统计信息:命令名 

  • 相关阅读:
    jdbc连接2(不可以注入)
    大白dmeo (转的)
    管家婆系统
    RMQ求最值
    Codeforces 837E Vasya's Function 数论 找规律
    Codeforces 837D
    poj 1655 找树的重心
    HDU 4055 Number String 计数DP
    Summer training round2 #7 (Training #23)
    Summer training round2 #6 (Training #22)
  • 原文地址:https://www.cnblogs.com/tcicy/p/10080407.html
Copyright © 2020-2023  润新知