设为首页 收藏本站
查看: 985|回复: 0

[经验分享] Linux性能相关工具

[复制链接]

尚未签到

发表于 2018-5-16 11:35:27 | 显示全部楼层 |阅读模式


  • 进程管理相关命令:

  • pstree : 树状显示进程

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





  • ps : 查看进程状态

    •   三种选项风格:

        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输出的属性:
      DSC0000.jpg

      • 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: 实时优先级


    •   查找占用最多内存和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显示的信息:
      DSC0001.jpg

        第一行: 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开头(可省略),不区分大小写

    • 显示当前系统可用信号: 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进程用法:

      • 按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: 显示指定进程的子进程
           





  
  



  • I/O监控工具:

  • vmstat : 服务器I/O状态

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

    • 选项:
      -s : 显示内存的统计数据
    • 显示的信息:
      DSC0002.jpg

      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时间




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

    •   选项:
      -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输出的信息:
      DSC0003.jpg

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




  • 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 : 要监测的远程服务端地址



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-460945-1-1.html 上篇帖子: 讨论Linux目录结构 下篇帖子: Linux图形编程感受
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表