zoukankan      html  css  js  c++  java
  • 命令工具篇

    监控linux系统性能的工具 — htop

    htop作为top的最佳替代选择 - 支持鼠标点,搜索杀死进程,排序等,功能相当强大

    
    USER:进程所有者的用户名
    
    PRI:进程的优先级别
    
    NI:进程的优先级别数值
    
    VIRT:进程占用的虚拟内存值
    
    RES:进程占用的物理内存值
    
    SHR:进程使用的共享内存值
    
    S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数
    
    %CPU:该进程占用的CPU使用率
    
    %MEM:该进程占用的物理内存和总内存的百分比
    
    TIME+:该进程启动后占用的总的CPU时间,指该进程使用cpu多长时间,如果是多核cpu,进程占用时间的累加的
    
    COMMAND:进程启动的启动命令名称
    

    按照属性排序输出:按F6

    会出现这几个选项

    然后键盘上下选中要排序的项,回车即可,一般用来快速排查占用内容过高的进程

    列出子进程的树状图:按F5

    查找进程,并发送信号: 按F4查找选中进程,再按F9发送信号,列入9是发送kill命令

    监控网卡流量的工具 - nload

    可以查看每个网卡进出口的实时带宽

    系统启动异常诊断 - dmesg

    此部分分析比较复杂,不展示了

    查看内存使用情况 - free

    [root ~]# free
                  total        used        free      shared  buff/cache   available
    Mem:        1016168      323924      190452         356      501792      531800
    Swap:             0           0           0
    

    虚拟内存统计 - vmstat

    [root ~]# vmstat
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     2  0      0 204020  79036 667532    0    0     5    18  101   58  1  0 99  0  0
    

    CPU信息统计 - mpstat

    [root ~]# mpstat
    Linux 3.10.0-957.5.1.el7.x86_64 (iZ8vba0s66jjlfmo601w4xZ)       05/30/2019      _x86_64_        (1 CPU)
    
    01:51:54 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
    01:51:54 AM  all    0.71    0.00    0.17    0.04    0.00    0.00    0.00    0.00    0.00   99.07
    

    查看进程使用内存状况 - pmap

    [root ~]# ps
      PID TTY          TIME CMD
     4581 pts/0    00:00:00 bash
     5664 pts/0    00:00:00 ps
    [root ~]# pmap 4581
    4581:   -bash
    0000000000400000    884K r-x-- bash
    00000000006dc000      4K r---- bash
    00000000006dd000     36K rw--- bash
    00000000006e6000     24K rw---   [ anon ]
    0000000001de0000    400K rw---   [ anon ]
    00007f82fe805000     48K r-x-- libnss_files-2.17.so
    00007f82fe811000   2044K ----- libnss_files-2.17.so
    ...
    

    报告设备CPU和I/O统计信息 - iostat

    [root ~]# iostat
    Linux 3.10.0-693.11.1.el7.x86_64 (iZwz97tbgo9lkabnat2lo8Z)      06/26/2018      _x86_64_       (1 CPU)
    avg-cpu:  %user   %nice  %system  %iowait(cpu等待输入输出完成时间占比)  %steal   %idle(cpu空闲时间占比)
               0.79    0.00    0.20    0.04                                0.00   98.97
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    vda               0.85         6.78        21.32    2106565    6623024
    vdb               0.00         0.01         0.00       2088          0
    

    几乎可以输出所有linux工作报告 - **sar

    sar和iostat属于sysstat工具包下的工具,下载方式都是下载sysstat即可。   
    


    查看设备使用情况

    [root@localhost ~]# sar -d 1 -p
    Linux 3.10.0-862.el7.x86_64 (localhost) 	05/09/2020 	_x86_64_	(1 CPU)
    
    09:29:02 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    09:29:03 AM       sda      2.08    133.33      0.00     64.00      0.00      0.50      0.50      0.10
    09:29:03 AM       sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    09:29:03 AM centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    09:29:03 AM centos-swap     16.67    133.33      0.00      8.00      0.01      0.50      0.06      0.10
    
    
    tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.
    rd_sec/s:每秒读扇区的次数.
    wr_sec/s:每秒写扇区的次数.
    avgrq-sz:平均每次设备I/O操作的数据大小(扇区).
    avgqu-sz:磁盘请求队列的平均长度.
    await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).
    svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.
    %util:I/O请求占CPU的百分比,比率越大,说明越饱,一般巡检主要看这个值的报告
    

    查看cpu使用情况

    [root@localhost ~]# sar -u 1
    Linux 3.10.0-862.el7.x86_64 (localhost) 	05/09/2020 	_x86_64_	(1 CPU)
    
    09:36:27 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    09:36:28 AM     all      1.04      0.00      1.04      0.00      0.00     97.92
    09:36:29 AM     all      1.03      0.00      0.00      0.00      0.00     98.97
    09:36:30 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
    09:36:31 AM     all      0.00      0.00      1.03      0.00      0.00     98.97
    09:36:32 AM     all      1.03      0.00      1.03      0.00      0.00     97.94
    
    %user:     CPU处在用户模式下的时间百分比。
    %system:CPU处在系统模式下的时间百分比。
    %iowait:   CPU等待输入输出完成时间的百分比。
    %idle:       CPU空闲时间百分比。
    

    显示索引节点、文件和其他内核表的状态

    [root@localhost ~]# sar -v
    Linux 3.10.0-862.el7.x86_64 (localhost) 	05/09/2020 	_x86_64_	(1 CPU)
    
    09:20:02 AM dentunusd   file-nr  inode-nr    pty-nr
    09:30:01 AM      5024      3776     32552         7
    09:40:01 AM      5070      3776     32555         7
    Average:         5047      3776     32554         7
    
    dentunusd:在缓冲目录条目中没有使用的条目数量.
    file-nr:被系统使用的文件句柄数量. 
    inode-nr:使用的索引节点数量.
    pty-nr:使用的pty数量
    **如果遇到"Too many open files in system"的错误时,可能是file-nr句柄数据量太高,可以在sysctl.conf中修改fs.file-max值
    
    常用监控
    (1) sar -b 5 5 // IO传送速率
    (2) sar -B 5 5 // 页交换速率
    (3) sar -c 5 5 // 进程创建的速率
    (4) sar -d 5 5 // 块设备的活跃信息
    (5) sar -n DEV 5 5 // 网路设备的状态信息
    (6) sar -n SOCK 5 5 // SOCK的使用情况
    (7) sar -n ALL 5 5 // 所有的网络状态信息
    (8) sar -P ALL 5 5 // 每颗CPU的使用状态信息和IOWAIT统计状态
    (9) sar -q 5 5 // 队列的长度(等待运行的进程数)和负载的状态
    (10) sar -r 5 5 // 内存和swap空间使用情况
    (11) sar -R 5 5 // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
    (12) sar -u 5 5 // CPU的使用情况和IOWAIT信息(同默认监控)
    (13) sar -v 5 5 // inode, file and other kernel tablesd的状态信息
    (14) sar -w 5 5 // 每秒上下文交换的数目
    (15) sar -W 5 5 // SWAP交换的统计信息(监控状态同iostat 的si so)
    (16) sar -x 2906 5 5 // 显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
    (17) sar -y 5 5 // TTY设备的活动状态
    

    其他监控工具和监控对象,就附上几张大神总结的图:

  • 相关阅读:
    Android开发使用Glide获取图片背景色淡绿色解决办法
    Android 获取 View 宽高的常用正确方式,避免为零
    Android之自定义View来接收输入法输入的内容
    FileProvider使用详解(拍照、安装APP、共享文件)
    简明 homebrew
    更优雅地使用命令行
    一篇长文说 git 基础
    chrome 浏览器的使用技巧
    前端学命令行
    cocos 碰撞系统
  • 原文地址:https://www.cnblogs.com/psguan/p/12849089.html
Copyright © 2011-2022 走看看