美文网首页系统运维专家
运维排障常用命令-htop

运维排障常用命令-htop

作者: MR_Zzzzzz_ | 来源:发表于2020-04-01 23:21 被阅读0次

    导读

    众所周知,系统中运行着很多进程(线程),进程(线程)运行就会占用系统资源,如CPU、内存、IO 。top是一个动态的可以查看这些运行进程(线程)的命令,运维人员会频繁使用其来排查问题, htop作为top命令的“升级版”,提供更好的可视化效果和交互,可以提升我们日常排除问题的效率,htop作者列举了以下和top的对比。

    • In htop you can scroll the list vertically and horizontally to see all processes and full command lines.
    • In top you are subject to a delay for each unassigned key you press (especially annoying when multi-key escape sequences are triggered by accident).
    • htop starts faster (top seems to collect data for a while before displaying anything).
    • In htop you don't need to type the process number to kill a process, in top you do.
    • In htop you don't need to type the process number or the priority value to renice a process, in top you do.
    • In htop you can kill multiple processes at once.
    • top is older, hence, more tested.
    我是top 我是htop

    而作为我的体验来说,htop在大多数情况的易用性是比top好的,但是有两点还是top命令才容易获取:

    1. CPU的相关详细统计信息
    2. 进程的相关详细统计信息

    安装与简介

    安装

    简介

    • 资源使用面板与运行统计面板可以非常方便的查看各个CPU的运行情况、内存、进程数、Load等,可以使用F2进行面板显示信息调整。
      调整资源使用面板
    • 进(线)程运行明细基本和 top命令的显示一致,也可以通过F2进行列显示调整。
      调整进(线)程运行明细

    常用字段解释

    字段 解释
    PID 进/线程ID
    PPID 父进程ID
    S 进程状态(S-休眠 R-运行 D-不可中断的休眠(IO) Z-僵尸)
    PRI 进程内核调度优先级
    NI NICE值,越高其他进程的调度优先级越高
    VIRT virtual memory usage 虚拟内存
    RES resident memory usage 常驻内存
    SHR shared memory 共享内存
    CPU 进程使用CPU百分比
    MEM 进程使用内存百分比
    DISK_READ 进程每秒IO读操作的大小(B/s)
    DISK_WIRTE 进程每秒IO写操作的大小(B/s)
    NLWP 进程包含的线程数量

    个人推荐将DISK_READDISK_WRITENLWP这几个列显示选项打开,这样方便我们定位IO的问题,就不需要再借助iotop等工具查看进程的IO情况。

    常见运维使用场景

    1.查看系统的整体运行情况

    这是我们最常用的使用场景,比如我们收到了一个线上告警,登录机器排查问题的时候只要运行一下htop命令就可以查看一下资源使用面板与运行统计面板就可以大概知道机器的资源使用情况。一般来说Load要小于CPU的核心数,CPU最好不要有一直使用率100%等情况,

    2.排查异常进程

    我们经常需要排查占用资源异常高的进程,使用htop非常方便,可以简单的点击一下进(线)程运行明细标题就可以排序了,非常方便,下面是两个“栗子”:

    • CPU占用率最高的进程:
    • 当前消耗磁盘写IO资源最高的进程:

      有时候我们也要查看异常状态的进程(进程状态为D或者Z),也只需在点击一下进(线)程运行明细标题的 S字段就可以了:

    3.查看某个进程的运行状态

    实现这个操作也非常简单,这里以查看nginx进程为例,只需点击键盘的F4输入筛选条件即可。

    4.批量杀死进程

    有时候我们还需要批量杀死一些进程,这里我们只要在要杀死的进程点击空格键,选好后点击F9,最后点击回车就可以给进程发送信号杀死进程了。

    结语

    以上就是htop的介绍和相关运维使用场景,当然还有功能和使用场景可以发掘去探索,欢迎大家补充与探讨~

    相关文章

      网友评论

        本文标题:运维排障常用命令-htop

        本文链接:https://www.haomeiwen.com/subject/qcyzuhtx.html