zoukankan      html  css  js  c++  java
  • 一文掌握 Linux 性能分析之 CPU 篇

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫。

    平常工作会涉及到一些 Linux 性能分析的问题,因此决定总结一下常用的一些性能分析手段,仅供参考。

    说到性能分析,基本上就是 CPU、内存、磁盘 IO 以及网络这几个部分,本文先来看 CPU 这个部分。

    CPU 基础信息

    进行性能分析之前,首先得知道 CPU 有哪些信息,可以通过以下方法查看 CPU 配置信息。

    lscpu

    在 Linux 下,类似 lsxxx 这样的命令都是用来查看基本信息的,如 ls 查看当前目录文件信息,lscpu 就用来查看 CPU 信息,类似还有 lspci 查看 PCI 信息。

    可以看到我的机器配置很低,1 核 2.5GHz(在阿里云买的最低配的服务器)。

    /proc/cpuinfo

    /proc 目录是内核透传出来给用户态使用的,里面记录着很多信息文件,比如还有内存文件 meminfo 等。可以使用 cat /proc/cpuinfo 查看 CPU 信息。

    这里显示的信息可以具体到每个逻辑核上,由于我只有一个核,所以只显示一组信息。

    dmidecode

    这个命令是用来获取 DMI(Desktop Management Interface)硬件信息的,包括 BIOS、系统、主板、处理器、内存、缓存等等。对于 CPU 信息,可以使用 dmidecode -t processor 来查看。

    CPU 使用情况分析

    知道了 CPU 的基本信息,我们就可以使用另外的命令来对 CPU 的使用情况分析一通了。

    top

    相信大家对下面这玩意不陌生,Windows 的任务管理器,top 的作用和它是一样的。

    top 显示的效果虽说不像它这么华丽,但已然让人惊呼他俩怎么长得这么像。

    我们重点关注这么几个字段:

    • load average:三个数字分别表示最近 1 分钟,5 分钟和 15 分钟的负责,数值越大负载越重。一般要求不超过核数,比如对于单核情况要 < 1。如果机器长期处于高于核数的情况,说明机器 CPU 消耗严重了。

    • %Cpu(s):表示当前 CPU 的使用情况,如果要查看所有核(逻辑核)的使用情况,可以按下数字 “1” 查看。这里有几个参数,表示如下:

    - us    用户空间占用 CPU 时间比例
    - sy    系统占用 CPU 时间比例
    - ni    用户空间改变过优先级的进程占用 CPU 时间比例
    - id    CPU 空闲时间比
    - wa    IO等待时间比(IO等待高时,可能是磁盘性能有问题了)
    - hi    硬件中断
    - si    软件中断
    - st    steal time
    

    每个进程的使用情况:这里可以罗列每个进程的使用情况,包括内存和 CPU 的,如果要看某个具体的进程,可以使用 top -p pid 查看。

    和 top 一样的还有一个改进版的工具:htop,功能和 top 一样的,只不过比 top 表现更炫酷,使用更方便,可以看下它的效果。

    ps

    可能很多人会忽略这个命令,觉得这不是查看进程状态信息的吗,其实非也,这个命令配合它的参数能显示很多功能。比如 ps aux。如果配合 watch,可以达到跟 top 一样的效果,如:watch -n 1 "ps aux"(-n 1 表示每隔 1s 更新一次)

    vmstat

    这个命令基本能看出当前机器的运行状态和问题,非常强大。可以使用 vmstat n 后面跟一个数字,表示每隔 ns 显示系统的状态,信息包括 CPU、内存和 IO 等。

    更多更详细的内容大家可以关注我的公众号查看,那里的阅读体验还更好一些。


    我的公众号 「Linux云计算网络」(id: cloud_dev) ,号内有 10T 书籍和视频资源,后台回复 「1024」 即可领取,分享的内容包括但不限于 Linux、网络、云计算虚拟化、容器Docker、OpenStack、Kubernetes、工具、SDN、OVS、DPDK、Go、Python、C/C++编程技术等内容,欢迎大家关注。

  • 相关阅读:
    P1338 末日的传说
    P1364医院设置
    线程
    进程通信
    CentOS设置中文
    C++快读讲解
    迭代加深搜索
    P1118 [USACO06FEB]Backward Digit Sums G/S
    N皇后问题
    RMQ区间最值查询
  • 原文地址:https://www.cnblogs.com/bakari/p/8971786.html
Copyright © 2011-2022 走看看