zoukankan      html  css  js  c++  java
  • 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瓶颈。
  • 相关阅读:
    DeepL 人工智能翻译降临 deepl.com
    Node.js ESM(ECMAScript Modules)
    解决Ubuntu 20.04 LTS无法输入中文的问题
    实现pdnsd
    颜色
    Ubuntu 20.04 LTS
    JSX 空的根元素
    如何理解TypeScript接口​​中的语法[key: string]以及[key: number]
    React-Router-DOM
    video转canvas, 并截图
  • 原文地址:https://www.cnblogs.com/sea520/p/4595750.html
Copyright © 2011-2022 走看看