美文网首页我用 Linux程序员
了解你服务器的心情——top命令详解

了解你服务器的心情——top命令详解

作者: 大闲人柴毛毛 | 来源:发表于2017-10-12 20:24 被阅读264次

    top是Linux较为常用的命令,可以监控服务器的CPU、内存、进程的运行情况,话不多说,直接操作。

    输入top即可启动:

    top运行界面

    下面我们就来逐一介绍top向我们展示的内容。

    第一行:系统概况

    top - 19:39:14 up 20 days,  7:48,  1 user,  load average: 0.00, 0.01, 0.05
    
    • 19:39:14 up 20 days:系统运行时间
    • 1 user:用户数
    • load average: 0.00, 0.01, 0.05:1分钟、5分钟、15分钟的平均负载

    第二行:进程概况

    Tasks:  69 total,   2 running,  67 sleeping,   0 stopped,   0 zombie
    
    • 69 total:总进程数
    • 2 running:运行态进程数
    • 67 sleeping:睡眠态进程数
    • 0 stopped:停止态进程数
    • 0 zombie:僵尸态进程数

    第三行:CPU概况

    %Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    
    • us:用户进程CPU使用占比
    • sy:系统进程CPU使用占比
    • ni:用户进程中改变了优先级的进程CPU使用占比
    • id:空闲CPU占比
    • wa:等待IO的CPU时间占比
    • hi:硬中断占用CPU百分比
    • si:软终端占用CPU百分比

    默认情况下显示的是所有CPU的平均值,如果想看每个CPU具体值,则按下『1』即可:

    %Cpu0  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu1  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu2  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
    %Cpu3  :  0.3 us,  0.3 sy,  0.0 ni, 99.0 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
    

    第四五行:内存概况

    在Linux中,内存一共分为两块:物理内存 和 交换区。
    物理内存是真正的内存,而内存资源毕竟有限,因此当物理内存不够的时候,根据LRU置换算法,那些很长时间没被使用的数据将会被存入交换区。交换区其实是硬盘,并非内存。当交换区存在数据时说明物理内存不够了。

    KiB Mem :  1883724 total,   300584 free,   646088 used,   937052 buff/cache
    KiB Swap:        0 total,        0 free,        0 used.  1062956 avail Mem
    
    • Mem 1883724 total:物理内存的总量
    • Mem 300584 free:物理内存的空闲量
    • Mem 646088 used:物理内存使用量
    • Mem 937052 buff/cache:物理内存内核缓存使用量
    • Swap 0 total:交换区总量
    • Swap 0 free:交换区空闲量
    • Swap 0 used:交换区使用量
    • Swap 1062956 avail Mem:虚拟内存总量

    PS:buff/cache虽然占用物理内存,但当内存不够时也可以直接使用,因此物理内存的可使用空间为:free + buff/cache。

    第六行:进程详情

    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
    1784 root      20   0 2072440  73204   8768 S  0.7  3.9 108:58.75 java
    1182 root      20   0   46540   2624   1988 S  0.3  0.1  11:06.20 AliYunDunUpdate
    
    • PID:进程ID
    • USER:进程所有者
    • RES:进程所占物理内存大小(kb)
    • SHR:进程所占共享内存大小(kb)
    • VIRT:进程所占虚拟内存大小???
    • %CPU:CPU占用百分比
    • %MEM:物理内存占用百分比
    • PR:进程优先级
    • NI:nice值
    • TIME+:上次更新到现在进程使用的CPU时间总计
    • COMMAND:启动该进程的命令

    小技巧

    1. 间隔刷新

    进入top后按下d,即可设置间隔刷新时间,默认是3秒。

    2. 添加进程监控字段

    进入top后按下f,即可添加/减少需要监控的进程信息。

    * PID     = Process Id             vMn     = Minor Faults delta
    * USER    = Effective User Name    USED    = Res+Swap Size (KiB)
    * PR      = Priority               nsIPC   = IPC namespace Inode
    * NI      = Nice Value             nsMNT   = MNT namespace Inode
    * VIRT    = Virtual Image (KiB)    nsNET   = NET namespace Inode
    * RES     = Resident Size (KiB)    nsPID   = PID namespace Inode
    * SHR     = Shared Memory (KiB)    nsUSER  = USER namespace Inode
    * S       = Process Status         nsUTS   = UTS namespace Inode
    * %CPU    = CPU Usage
    * %MEM    = Memory Usage (RES)
    * TIME+   = CPU Time, hundredths
    * COMMAND = Command Name/Line
      PPID    = Parent Process pid
      UID     = Effective User Id
      RUID    = Real User Id
      RUSER   = Real User Name
      SUID    = Saved User Id
      SUSER   = Saved User Name
      GID     = Group Id
      GROUP   = Group Name
      PGRP    = Process Group Id
    

    前面有*的说明已经显示了。

    3. 保存设置

    对top进行设置后,默认是不保存配置的,只有按了大写的W后才会保存。

    4. 监控结果输出到文件

    top -d 1 -n 3 > top.log
    

    相关文章

      网友评论

        本文标题:了解你服务器的心情——top命令详解

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