OS性能分析命令(一)各种top

文章目录

    • 一、top
    • 二、htop
    • 三、iotop
    • 四、iftop
    • 五、atop

一、top

一个常见的 top 命令的执行视图如下:
OS性能分析命令(一)各种top_第1张图片
top命令输出为六行:
第一行:top(队列信息)
从左往右依次对应-当前时间、系统运行时间、当前登陆用户数、系统负载(任务队列的平均长度)
第二行:Tasks(进程)
从左往右依次对应-进程总数、正在运行的进程数、休眠进程数、停止进程数、僵尸进程数
第三行:CPU(CPU状态信息)
从左往右依次对应-用户空间占比、内核空间占比、改变过优先级的进程占比、空闲CPU占比、IO等待占比、硬中断占比、软中断占比
第四行:MEM(内存信息)
从左往右依次对应-物理内存总量、空闲内存总量、已使用物理内存总量、内核缓存内存量
第五行:Swap(交换分区信息)
从左往右依次对应-交换区总量、空闲交换区总量、使用的交换区总量
第六行:各进程的状态监控
从左往右依次对应-进程ID、用户、优先级、Nice值、虚拟内存、常驻内存、共享内存、进程状态、上次更新到现在的CPU时间占用百分比、进程使用的物理内存百分比、进程使用的CPU时间总计,单位1/100秒、进程名称(命令名/命令行)

二、htop

htop 是 Linux 下一个交互式的进程浏览器,可以完全替代上一小节中所讲的 top 命令,与 top 命令对比,htop 命令有如下优点:

  • 画面可以水平垂直滚动,更像一个窗口
  • 可以跟踪进程,显示进程打开的文件
  • 支持进程的树状图显示
  • 支持按照名称查找进程
    OS性能分析命令(一)各种top_第2张图片
    F1
    查看帮助
    F2
    细节配置
    F3
    查找进程
    F4
    过滤
    F5
    查看进程树
    F6
    排序
    F7
    较小nice值
    F8
    增大nice值
    F9
    发送指定中断信号
    F10
    退出
    s
    strace追踪

三、iotop

iotop 是用来监控硬盘 IO 的使用情况,UI 界面和 top 类似,其中包括 PID、用户、I/O、进程 等相关信息。

Linux 下系统自带的 IO 统计工具如 iostat,nmon 等大多数是只能统计到 per 设备的读写情况,如果你想知道每个进程是如何使用 IO 的就比较麻烦,使用 iotop 命令可以很方便的查看。

OS性能分析命令(一)各种top_第3张图片

四、iftop

iftop 是 Linux 系统的流量和带宽监控工具,可用于查看实时的网络流量、监控 TCP/IP 连接等。
OS性能分析命令(一)各种top_第4张图片
iftop 命令常用的参数如下,这里做个小规模总结:

  • -i 设定监测的网卡,如:# iftop -i eth0
  • -B 以 bytes 为单位显示流量 (默认是 bits),如:# iftop -B
  • -n 使 host 信息默认直接都显示 IP,如:# iftop -n
  • -N 使端口信息默认直接都显示端口号,如: # iftop -N
  • -F 显示特定网段的进出流量,如 # iftop -F 10.10.1.0/24# iftop -F 10.10.1.0/255.255.255.0
  • -h( display this message ),帮助,显示参数信息
  • -p 使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的 IP 信息;
  • -b 使流量图形条默认就显示;

再来总结一下,进入 iftop 视图画面后的一些操作命令 (注意大小写):

  • h切换是否显示帮助;
  • n切换显示本机的 IP 或主机名;
  • s切换是否显示本机的 host 信息;
  • d切换是否显示远端目标主机的 host 信息;
  • t切换显示格式为 2 行 /1 行 /只显示发送流量 /只显示接收流量;
  • N切换显示端口号或端口服务名称;
  • S切换是否显示本机的端口信息;
  • D切换是否显示远端目标主机的端口信息;
  • p切换是否显示端口信息;
  • P切换暂停 /继续显示;
  • b切换是否显示平均流量图形条;
  • T切换是否显示每个连接的总流量;
  • l打开屏幕过滤功能,输入要过滤的字符,比如 ip,按回车后,屏幕就只显示这个 IP 相关的流量信息;
  • L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
  • j或按k可以向上或向下滚动屏幕显示的连接记录;
  • 123可以根据右侧显示的三列流量数据进行排序;
  • <根据左边的本机名或 IP 排序;
  • >根据远端目标主机的主机名或 IP 排序;
  • o切换是否固定只显示当前的连接;

五、atop

OS性能分析命令(一)各种top_第5张图片

ATOP:该列显示了主机名、信息采样日期和时间点

PRC:该列显示进程整体运行情况sys、usr字段分别指示进程在内核态和用户态的运行时间
#proc字段指示进程总数
#zombie字段指示僵死进程的数量
#exit字段指示atop采样周期期间退出的进程数量

CPU:该列显示CPU整体(即多核CPU作为一个整体CPU资源)的使用情况,我们知道 CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲)sys、usr字段指示CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例
irq字段指示CPU被用于处理中断的时间比例
idle字段指示CPU处在完全空闲状态的时间比例
wait字段指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例
CPU列各个字段指示值相加结果为N00%,其中N为cpu核数。

CPL:该列显示CPU负载情况avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内 运行队列中的平均进程数量
csw字段指示上下文交换次数
intr字段指示中断发生次数

MEM:该列指示内存的使用情况tot字段指示物理内存总量
free字段指示空闲内存的大小
cache字段指示用于页缓存的内存大小
buff字段指示用于文件缓存的内存大小
slab字段指示系统内核占用的内存大小

SWP:该列指示交换空间的使用情况tot字段指示交换区总量
free字段指示空闲交换空间大小

PAG:该列指示虚拟内存分页情况swin、swout字段:换入和换出内存页数

DSK:该列指示磁盘使用情况,每一个磁盘设备对应一列,如果有sdb设备,那么增多一列DSK信息sda字段:磁盘设备标识
busy字段:磁盘忙时比例
read、write字段:读、写请求数量

NET:多列NET展示了网络状况,包括传输层(TCP和UDP)、IP层以及各活动的网口信息XXXi 字段指示各层或活动网口收包数目
XXXo 字段指示各层或活动网口发包数目
常用参数

-n 显示网络信息(需要内核打补丁才能使用)
-m 显示内存相关信息(需要内核打补丁才能使用)
-d 显示磁盘读写相关(需要内核打补丁才能使用)
-g 查看默认的通用输出
-s 显示调度特点:每个进程的以下字段所示:进程的ID,运行状态(R)的线程数、中断状态的睡眠线程S(TLSPI)和不可中断睡眠线程D (TSLPU) 数,调度策略(分时调度策略,实时时间片轮转策略,实时调度策略FIFO),nice值,优先级(PRI),实时优先级(RTPR),当前的处理器,状态,退出代码,进程状态,cpu利用率和进程名。
-v 显示各种进程特性:每个进程的以下字段所示:进程ID(PID),父进程ID(PPID)、用户名(USERNAME)和组(GROUP),开始日期和时间,状态(例如,退出代码,如果该进程已完成),进程状态(ST)(D:不可终止进程、  R:正在运行进程 、  T:暂停进程、S:休眠进程、Z:僵尸进程……),CPU占用率和进程名。
-c 以命令行command-line的形式显示:每个进程有以下字段所示:进程的ID,所选资源占用百分比和命令行参数,
-u 以用户的形式显示:以下字段显示:在上一间隔时间内活动或终止的进程数,上一时间间隔内cpu在系统模式和用户模式的消耗,活动进程对虚拟内存和现有内存的消耗。当安装的cnt补丁后会显示读(RDDSK)写(WRDSK)到磁盘上的数据量,以及所收到(RNET)和发送(SNET)的网络数据包,内核补丁没有安装时这些计数器为零。最后一栏显示CPU百分比和用户名。
-p 以进程名的形式显示信息:和-u类似只是最后显示的是进程名
-M 按照占用物理内存百分比大小进行排列
-D,按照访问磁盘的繁忙程度进行排序
-N 按照接受和发送的网络数据包排序
-A 依据当前系统最繁忙的资源进行排序,可能有ACPU、AMEM、ADSK或者ANET

你可能感兴趣的:(OS)