• Linux性能监控


    今天为大家带来的是, 在测试过程中, 我们常用的一些性能测试的监控:

    注: 以下命令执行均基于阿里云CentOS7.6系统!

    一、top - 经典的Linux任务管理工具

    作为一个广为人知的Linux工具,top是大多数的类Unix操作系统任务管理器。它可以显示当前正在运行的进程的列表,用户可以按照不同的条件对该列表进行排序。它主要显示了系统进程对CPU和内存的使用状况。top可以快速检查是哪个或哪几个进程挂起了你的系统。你可以在这里看到top使用的例子。

    你可以在终端输入top来运行它并进入到交互模式:

    20220212175528

    二、tcpdump - 洞察网络封包

    tcpdump可以用来查看网络连接的封包内容。它显示了传输过程中封包内容的各种信息。为了使得输出信息更为有用,它允许使用者通过不同的过滤器获取自己想要的信息。

    可以参照的例子如下:

    $ tcpdump -i eth0 not port 22
    
    $ tcpdump -c 10 -i eth0
    
    $ tcpdump -ni eth0 -c 10 not port 22
    
    $ tcpdump -w aloft.cap -s 0
    
    $ tcpdump -r aloft.cap
    
    $ tcpdump -i eth0 dst port 80
    

    三、Nmon

    Nmon是一款计算机性能系统监控工具,因为它免费,体积小,安装简单,耗费资源低,广泛应用于AIX和Linux系统。

    Nmon 可以很轻松的监控系统的 CPU、内存、网络、硬盘、文件系统、NFS、高耗进程、资源和 IBM Power 系统的微分区的信息。

    $ yum list | grep nmon
    # 搜索nmon安装包 
    $ yum -y install nmon.x86_64
    # 安装nmon
    $ nmon
    # 输入nmon运行nmon
    

    如下图 :

    20220212175846

    在上面的交互式窗口中,可以使用nmon 快捷键来显示不同的系统资源统计数据:

    q : 停止并退出 Nmon
    h : 查看帮助
    c : 查看 CPU 统计数据
    m : 查看内存统计数据
    d : 查看硬盘统计数据
    k : 查看内核统计数据
    n : 查看网络统计数据
    N : 查看 NFS 统计数据
    j : 查看文件系统统计数据
    t : 查看高耗进程
    V : 查看虚拟内存统计数据
    v : 详细模式
    

    按下c,m,d后如下图,CPU、内存、磁盘的消耗情况都直观的展现出来了,按q键可以退出。

    20220212175945

    性能测试时,需要根据测试场景的执行情况,分析一段时间内系统资源的变化,这时需要nmon采集数据并保存下来,以下是常用的参数:

    • -f 参数:生成文件,文件名=主机名+当前时间.nmon
    • -T 参数:显示资源占有率较高的进程
    • -s 参数:-s 10表示每隔10秒采集一次数据
    • -c 参数:-c 10表示总共采集十次数据
    • -m 参数:指定文件保存目录

    如每隔5秒采集一次,一共采集12次,就是1分钟的数据

    $ nmon -f -s 5 -c 12 -m  .
    

    20220212180948

    关闭nmon进程, 需要获取到nmon的pid

    $ ps -ef | grep nmon
    
    $ kill -9 pid 
    # 关闭
    

    四、sar

    sar(System Activity Reporter, 系统活动情况报告): 是用于监控Linux系统各个性能的优秀工具,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

    4.1 查看CPU使用情况 sar -u

    $ sar 1 3 
    或 
    $ sar -u 1 3
    

    20220212181237

    %user   用户空间的CPU使用
    
    %nice   改变过优先级的进程的CPU使用率
    
    %system   内核空间的CPU使用率
    
    %iowait   CPU等待IO的百分比
    
    %steal   虚拟机的虚拟机CPU使用的CPU
    
    %idle   空闲的CPU
    

    在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。

    4.2 将统计结果保存到文件 sar -o

    $ sar -n DEV 1 10 -o sar.out
    
    $ sar -d 1 10 -f sar.out 
    # 查看历史的IO
    $ sar -u 1 10 -f sar.out 
    # 查看历史的cpu,单位1s, 采样10次
    

    4.3 查看平均负载 sar -q

    $ sar -q 1 3
    

    20220212182141

    runq-sz    运行队列的长度(等待运行的进程数,每核的CP不能超过3个)
    
    plist-sz   进程列表中的进程(processes)和线程数(threads)的数量
    
    ldavg-1  最后1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值,5分钟和15分钟以此类推
    
    ldavg-5   最后5分钟的CPU平均负载
    
    ldavg-15  最后15分钟的CPU平均负载
    

    4.4 查看内存使用情况 sar -r

    $ sar -r 1 3 
    

    20220212182350

    kbmemfree   空闲的物理内存大小
    
    kbmemused   使用中的物理内存大小
    
    %memused  物理内存使用率
    
    kbbuffers  内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
    
    kbcached  缓存的文件大小
    
    kbcommit   保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)
    
    commit   这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值
    

    4.5 查看系统swap分区统计情况 sar -W

    $ sar -W 1 3
    

    20220212182536

    4.6 查看IO和传递速率 sar -b

    $ sar -b 1 3
    

    20220212182656

    tps  磁盘每秒钟的IO总数,等于iostat中的tps
    
    rtps  每秒钟从磁盘读取的IO总数
    
    wtps  每秒钟从写入到磁盘的IO总数
    
    bread/s  每秒钟从磁盘读取的块总数
    
    bwrtn/s  每秒钟此写入到磁盘的块总数
    

    五、dstat

    dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat扬长避短,即克服了这些命令的局限又增加了一些额外的功能,不但拥有更多的监控项,也更灵活。dstat在性能测试、基准测试和排除故障过程中可以很方便监控系统运行状况。

    $ yum list | grep dstat
    # 搜索安装包
    $ yum -y install dstat
    # 安装dstat
    

    20220212183210

    六、atop

    atop是一个功能非常强大的linux服务器监控工具,它的数据采集主要包括:CPU、内存、磁盘、网络、进程等,并且内容非常的详细,特别是当那一部分存在压力它会以特殊的颜色进行展示,如果颜色是红色那么说明已经非常严重了。

    注意:所有的信息都是反映过去10S的状态信息

    $ yum list | grep atop
    # 搜索安装包
    $ yum -y install atop.x86_64
    # 安装atop
    $ atop
    # 执行atop命令
    

    20220212183359

  • 相关阅读:
    js几个常用的弹层
    ubuntu 更新源 或者 apt-get install 出错404 not found ,Failed to fetch
    vmware ubuntu 解决 宿主机与虚拟机互相ping不通,虚拟机无线上网的解决办法
    mediawiki资料
    mediawiki问题
    JavaEE异常
    前端网站收藏
    依赖注入--setting注入和构造器注入
    Spring注入Bean
    Spring简介
  • 原文地址:https://www.cnblogs.com/lvzhenjiang/p/15887032.html
Copyright © 2020-2023  润新知