Linux性能相关工具推荐

原创 社长  2019-05-22 11:39:58  阅读 162 次 评论 0 条
重庆专业seo
摘要:

进程管理相关命令:pstree : 树状显示进程选项:-p : 显示PID,可以指定查看某个用户ps : 查看进程状态STAT : 进程状态R :running S : interruptable sleeping 可中断休眠D : uninterruptable sleeping 不可中断的休眠T : stopped 停止Z : zombie 僵死+ : 前台进程l : 多线程进程L :内存分页并带锁N :低优先级进程< : 高优先级进程s : session leader,会

  • 进程管理相关命令:

  • pstree : 树状显示进程

    • 选项:

      -p : 显示PID,可以指定查看某个用户

  • ps : 查看进程状态

    • STAT : 进程状态

      R :running 
      S : interruptable sleeping 可中断休眠
      D : uninterruptable sleeping 不可中断的休眠
      T : stopped 停止
      Z : zombie 僵死
      + : 前台进程
      l : 多线程进程
      L :内存分页并带锁
      N :低优先级进程
      < : 高优先级进程
      s : session leader,会话(子进程)发起者

    • VSZ: Virtual memory SiZe,虚拟内存集,线性内存

    • RSS: ReSident Size, 常驻内存集

    • ni:nice 值

    • pri:priority 优先级

    • psr:processor CPU编号

    • rtprio: 实时优先级

    • 三种选项风格:

      UNIX : 带 -
      BSD : 不带 -
      GUN : --

    • 选项:

      a : 所有与终端有关的进程
      x : 所有与终端无关的进程
      u : 显示进程所有者信息
      f : 显示进程树,相当于--forest
      k | --sort : 对某列属性排序(默认升序,属性前加-表示降序)
      o : 定制要显示属性信息:PID,CMD,%cpu,%mem
      L : 显示支持的属性列表
      -C : 指定要显示的命令,多个命令用,分隔
      -L : 显示线程
      -e : 显示所有进程,相当于-A
      -f : 显示完整格式程序信息
      -F : 显示更完整格式的进程信息
      -H : 以进程层级格式显示进程相关信息
      -u userlist : 指定有效的用户ID或名称
      -U userlist : 指定真正的用户ID或名称
      -g gid或groupname : 指定有效的gid或组名称
      -G gid或groupname : 指定真正的gid或组名称
      -p pid : 显示指pid的进程
      --ppid pid : 显示属于pid的子进程

    • ps输出的属性:
      Linux性能相关工具

    • 查找占用最多内存和CPU的进程:
      ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head #查看内存
      ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head #查看CPU

    • 使用watch实用程序执行重复的输出以实现对就程进行实时的监视:
      watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'

  • pgrep : 搜索进程

    • 使用ps [option] | grep等方式实现也可

    • pgrep使用扩展正则表达式搜索

      pgrep [option] pattern
        -u uid : 生效者
        -U uid : 真实发起者
        -l : 显示进程名
        -a : 显示完整格式的进程名
        -t terminal : 与指定终端相关的进程
        -P pid : 显示指定进程的子进程

  • top : 实时监测

    • 选项:

      -d : 指定刷新时间,默认3秒
      -b : 显示全部进程(不分页)
      -n : 指定刷新次数,达到次数后退出

    • top显示的信息:
      Linux性能相关工具

      第一行: top - :当前系统时间  up : 系统运行时间  user : 在线用户数  load average : 系统平均负载  
      第二行: total : 总进程数  running : 运行中进程  sleeping : 休眠进程数  stopped : 停止进程数  zombie : 僵死进程数
      第三行: us : 用户空间占用CPU百分比  sy : 系统空间占用CPU百分比  ni : 用户进程空间内改变过优先级的进程占用CPU百分比  id : 空闲CPU百分比  wa : 等待IO的CPU百分比  hi : 硬中断  si : 软中断  st : 虚拟机偷走的百分比 
      第四行: Men :内存信息行
      第五行: Swap :交换空间信息行
      第六行:  PID : 进程号  USER : 用户   PR : 优先级  NI : NICE值  VIRT : 虚拟内存集  RES : 常驻内存  SHR : 共享内存 S : 进程状态   %CPU : 占用CPU百分比  %MEN : 占用内存百分比  TIME+ : 运行时间  COMMAND : 命令行

    • top内按键命令:

      M : 按内存占用百分比大小排序
      P :按cpu占用百分比大小排序,默认
      T :按累计占有时长进行排序
      l : 是否显示负载信息
      t :是否显示cpu和进程的统计信息
      m :是否显示内存和交互分区的信息
      q :退出
      k :kill,杀掉进程
      s :改变top刷新频率**

  • kill : 向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG开头(可省略),不区分大小写

    • 按PID:
      kill [-SIGNAL] pid …
      kill –n SIGNAL pid
      kill –s SIGNAL pid

    • 按名称:
      killall [-SIGNAL] comm…

    • 按模式:
      pkill [options] pattern
      -SIGNAL
      -u uid: effective user,生效者
      -U uid: real user,真正发起运行命令者
      -t terminal: 与指定终端相关的进程
      -l: 显示进程名(pgrep可用)
      -a: 显示完整格式的进程名(pgrep可用)
      -P pid: 显示指定进程的子进程

    • 显示当前系统可用信号: kill -l ; trap -l

    • 常用信号: man 7 signal

      1 | SIGHUP: 无须关闭进程而让其重读配置文件
      2 | SIGINT: 中止正在运行的进程;相当于Ctrl+c
      3 | SIGQUIT:相当于ctrl+\
      9 | SIGKILL: 强制杀死正在运行的进程
      15 | SIGTERM:终止正在运行的进程(默认)
      18 | SIGCONT:继续运行
      19 | SIGSTOP:后台休眠

    • 指定信号的方法:
        (1)信号的数字标识:1, 2, 9
        (2)信号完整名称:SIGHUP 
        (3)信号的简写名称:HUP

    • kill进程用法:



  
  

  • I/O监控工具:

  • vmstat : 服务器I/O状态

    vmstat [options] [delay [count]]vmstat 1 10       #1秒刷新一次,刷新10次后退出

    procs:
    r: 可运行(运行中或等待运行)进程的个数
    b: 处于不可中断睡眠态的进程个数(被阻塞的队列的长度)
    memory:
    swpd: 交换内存的使用总量
    free:空闲物理内存总量
    buffer:用于buffer的内存总量
    cache:用于cache的内存总量
    swap:
    si:从磁盘交换进内存的数据速率(kb/s)
    so:从内存交换至磁盘的数据速率(kb/s)
    io:
    bi:从块设备读入数据到内存中的速率(kb/s)
    bo: 保存数据至块设备的速率
    system:
    in: interrupts 中断速率,包括时钟
    cs: context switch 进程切换速率
    cpu:
    us : 用户CPU时间,
    sy : 系统CPU时间,太高表示系统调用时间长,例如IO操作频繁
    id : 空闲的CPU时间
    wt : 等待IO的时间
    st : 虚拟机占用的CPU时间

    • 选项:
      -s : 显示内存的统计数据

    • 显示的信息:
      Linux性能相关工具

  • iotop : 类似top的监视IO使用状况的工具

    第一行 : Read和Weite的速率总计
    第二行 : 实际的速率
    第三行:
      TID : 线程ID(按p切换为进程ID)
      PRIO : 优先级
      USER : 用户
      DISK READ : 磁盘读速率
       DISK WRITE : 磁盘写速率
      SWAPIN : swap交换百分比
      IO> : IO等待的百分
      COMMAND : 线程/进程命令

    • 选项:
      -o : 只显示正在产生IO的进程或线程,可以在iotop运行中按o生效
      -a : 显示累计IO量
      -k : 使用kB为单位
      -P : 仅显示进程,默认显示进程和线程
      -n NUM : 设置监测次数,默认无限次
      -d SEC : 设置监测间隔,默认为1秒
      -p PID : 指定监测的进程/线程
      -u USER : 指定监测某个用户
      -b : 非交互模式,用于记录日志
      -t : 加上时间戳,非交互模式
      -q : 禁止显示开头几行,非交互模式
      -q : 只在第一次监测时显示列名
      -qq : 永远不显示列名
      -qqq : 永远不现实IO汇总

    • iotop输出的信息:
      Linux性能相关工具

  • iostat : 统计CPU和设备IOS信息

     iostat 1 10                 #1秒刷新一次,刷新10次后退出
  • pmap : 进程对应的内存映射

    • 用法:pmap [options] pid [...]

    • 选项:
      -x: 显示详细格式的信息
      例:pmap 1 #查看进程PID为1的进程内存映射

  • dastat : 系统资源统计,代替vmstat,iostat

    • 用法:dstat [-afv] [options..] [delay [count]]

    • 选项:
      -c:显示CPU系统占用,用户占用,空闲,等待,中断,软件中断等信息
      -C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 显示cpu0和cpu1的信息
      -d:显示磁盘读写数据大小
      -n:显示网络状态
      -N eth1:指定要显示的网卡,有多块网卡时以,分隔
      -l:显示系统负载情况
      -m:显示内存使用情况
      -g:显示页面使用情况
      -p:显示进程状态
      -s:显示交换分区使用情况。
      -r:I/O请求情况
      -y:系统状态
      --ipc:显示ipc消息队列,信号等信息
      --socket:用来显示tcp udp端口状态
      -a:此为默认选项,等同于-cdngy
      -v:等同于 -pmgdsc -D total 
      --output file : 把状态信息以csv的格式重定向到指定的文件中,例:dstat --output 
      --top-cpu:显示最占用CPU的进程
      --top-io: 显示最占用io的进程
      --top-mem: 显示最占用内存的进程
      --top-latency: 显示延迟最大的进程

       

  • EPEL源上的监控工具:

  • htop : 升级版的top

  • glances : 监控系统资源利用情况

    • glances 会用一下几种颜色来代表状态:
        绿色:OK(一切正常)
        蓝色:CAREFUL(需要注意)
        紫色:WARNING(警告)
        红色:CRITICAL(严重)

    • 选项:
      -b: 以Byte为单位显示网卡数据速率
      -d: 关闭磁盘I/O模块
      -m: 禁用mount模块
      -n: 禁用网络模块
      -1:每个CPU的相关数据单独显示
      -t #: 延迟时间间隔
      -o {HTML|CSV}:输出格式
      -f /path/to/somefile: 设定输入文件位置

    • glances内按键命令:
      a : 对进程自动排序
      c : 按 CPU 百分比对进程排序
      m : 按内存百分比对进程排序
      p : 按进程名字母顺序对进程排序
      i : 按读写频率(I/O)对进程排序
      d : 显示/隐藏磁盘 I/O 统计信息
      f : 显示/隐藏文件系统统计信息
      n : 显示/隐藏网络接口统计信息
      s : 显示/隐藏传感器统计信息
      y : 显示/隐藏硬盘温度统计信息
      l : 显示/隐藏日志(log)
      b : 切换网络 I/O 单位(Bytes/bits)
      w : 删除警告日志
      x : 删除警告和严重日志
      1 : 切换全局 CPU 使用情况和每个 CPU 的使用情况
      h : 显示/隐藏这个帮助画面
      t : 以组合形式浏览网络 I/O
      u : 以累计形式浏览网络 I/O
      q : 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以)

    • glances监测远程系统:

    • 服务器模式:
      glances -s -B IPADDR
      IPADDR : 指明监听本机哪个地址(默认为所有地址)

    • 客户端模式:
      glances -c IPADDR
      IPADDR : 要监测的远程服务端地址


本文地址:http://dxf6.com/post/14.html
版权声明:本文为原创文章,版权归 社长 所有,欢迎分享本文,转载请保留出处!
重庆专业seo
数据湾

发表评论


表情

还没有留言,还不快点抢沙发?