zoukankan      html  css  js  c++  java
  • [Linux]常用命令之【top/uptime/w/vmstat/free】

    1 top

    查看 Linux 负载

    • 查看所有进程的USER/CPU/内存/Swap/PID/Command情况
    [root@es1 ~]# top
    top - 14:05:43 up 61 days, 38 min,  2 users,  load average: 0.11, 0.10, 0.13
    Tasks: 220 total,   1 running, 219 sleeping,   0 stopped,   0 zombie
    Cpu(s):  0.2%us,  0.1%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:  32880208k total, 26979156k used,  5901052k free,   509528k buffers
    Swap: 16777212k total,       68k used, 16777144k free,  6755296k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                      
     4358 elastics  20   0 35.8g  17g  86m S  2.0 54.5   3428:50 java                                                                                                          
     4606 sdc       20   0 13.9g 1.0g  15m S  0.3  3.3 179:04.36 java                                                                                                          
        1 root      20   0 19232 1328 1128 S  0.0  0.0   0:13.40 init                                                                                                          
        2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                                                      
        3 root      RT   0     0    0    0 S  0.0  0.0   0:16.02 migration/0                                                                                                   
        4 root      20   0     0    0    0 S  0.0  0.0   0:32.50 ksoftirqd/0                                                                                                   
        5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0                                                                                                     
        6 root      RT   0     0    0    0 S  0.0  0.0   0:07.29 watchdog/0                                                                                                    
        7 root      RT   0     0    0    0 S  0.0  0.0   0:01.35 migration/1                                                                                                   
        8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/1                                                                                                     
        9 root      20   0     0    0    0 S  0.0  0.0   0:06.38 ksoftirqd/1                                                                                                   
       10 root      RT   0     0    0    0 S  0.0  0.0   0:06.91 watchdog/1                                                                                                    
       11 root      RT   0     0    0    0 S  0.0  0.0   0:01.47 migration/2                                                                                                   
       12 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/2                                                                                                     
       13 root      20   0     0    0    0 S  0.0  0.0   0:05.49 ksoftirqd/2                                                                                                   
       14 root      RT   0     0    0    0 S  0.0  0.0   0:06.41 watchdog/2                                                                                                    
       15 root      RT   0     0    0    0 S  0.0  0.0   0:00.73 migration/3                                                                                                   
       16 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/3                                                                                                     
       17 root      20   0     0    0    0 S  0.0  0.0   0:04.71 ksoftirqd/3                                                                                                   
       18 root      RT   0     0    0    0 S  0.0  0.0   0:06.19 watchdog/3                                                                                                    
       19 root      RT   0     0    0    0 S  0.0  0.0   0:01.34 migration/4                                                                                                   
       20 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/4                                                                                                     
       21 root      20   0     0    0    0 S  0.0  0.0   0:03.63 ksoftirqd/4                                                                                                   
       22 root      RT   0     0    0    0 S  0.0  0.0   0:06.13 watchdog/4                                                                                                    
       23 root      RT   0     0    0    0 S  0.0  0.0   0:00.82 migration/5                                                                                                   
       24 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/5                                                                                                     
       25 root      20   0     0    0    0 S  0.0  0.0   0:04.76 ksoftirqd/5                                                                                                   
       26 root      RT   0     0    0    0 S  0.0  0.0   0:05.96 watchdog/5                                                                                                    
       27 root      RT   0     0    0    0 S  0.0  0.0   0:01.47 migration/6                                                                                                   
       28 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/6                                                                                                     
       29 root      20   0     0    0    0 S  0.0  0.0   0:03.99 ksoftirqd/6                                                                                                   
       30 root      RT   0     0    0    0 S  0.0  0.0   0:05.96 watchdog/6                                                                                                    
       31 root      RT   0     0    0    0 S  0.0  0.0   0:00.64 migration/7                                                                                                   
       32 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/7                                                                                                     
       33 root      20   0     0    0    0 S  0.0  0.0   0:03.76 ksoftirqd/7  
    

    top 解释:

    【第1行】 top - 14:05:43 up 61 days, 38 min,  2 users,  load average: 0.11, 0.10, 0.13
    14:05:43 # 系统当前时间
    up 61 days, 38min # 系统已启用时间: 系统开机到现在已达61天38分钟
    2 users # 当前2个用户在线
    load average: 0.11, 0.10, 0.13 # 系统1分钟、5分钟、15分钟的CPU负载值。
        单位时间段内CPU活动进程数。
        如果你的机器为单核,那么只要这几个值均<1,代表系统就没有负载压力;
        如果你的机器为N核,那么必须是这几个值均<N才可认为系统没有负载压力;
        "单CPU系统1-3和SMP系统6-10都是可能接受的。"
    
    【第2行#任务/进程#】Tasks: 220 total,   1 running, 219 sleeping,   0 stopped,   0 zombie
    220 total:当前有220个任务
    1 running:1个任务正在运行
    219 sleeping:219个进程处于睡眠状态
    0 stopped:停止的进程数
    0 zombie:僵死的进程数
    
    【第3行#CPU#】Cpu(s):  0.2%us,  0.1%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    0.2%us:"user CPU time" / 用户态进程占用CPU时间百分比
    0.1%sy:"system CPU time" / 内核占用CPU时间百分比
    0.0%ni:" nice CPU time" / 用户进程空间内改变过优先级的进程占用CPU百分比。renice值为负的任务的用户态进程的CPU时间百分比。nice是优先级的意思. 
    99.7%id:"idle" / 空闲CPU时间百分比
    0.0%wa:"io wait" / 等待I/O的CPU时间百分比
    0.0%hi:"hardware irq" / CPU硬中断时间百分比
    0.0%si:"software irq" / CPU软中断时间百分比
    0.0%st: "steal time" / 虚拟机偷取(steal)的时间。
        一台物理是可以虚拟化出多台虚拟机,在其中一台虚拟机上用top查看发现st不为0,就说明本来有这么多个cpu时间是安排给我这个虚拟机的;
        但是由于某种虚拟技术,把这个cpu时间分配给了其他的虚拟机了。这就叫做偷取。
        详见: http://melody-dc.com/2015/11/21/%E7%90%86%E8%A7%A3CPU-steal-time/
    
    【第4行#内存#】 Mem:  32880208k total, 26979156k used,  5901052k free,   509528k buffers
    32880208k total:物理内存总数
    26979156k used: 已使用的物理内存
    5901052k free:  空闲的物理内存
    509528k buffers: 用作缓冲区的内存 [缓存]
    
    【第5行#交换空间#】 Swap: 16777212k total,       68k used, 16777144k free,  6755296k cached
    16777212k total:交换空间的总量
    68kk used: 使用的交换空间
    16777144k free:空闲的交换空间
    6755296k cached:缓存的交换空间
    
    【第6行#进程#】PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND   
    PID:进程ID
    USER:进程的所有者
    PR:进程的优先级
    NI:nice值
    VIRT:占用的虚拟内存
    RES:占用的物理内存
    SHR:使用的共享内存
    S:进行状态 S:休眠 R运行 Z僵尸进程 N nice值为负
    %CPU:占用的CPU
    %MEM:占用内存
    TIME+: 占用CPU的时间的累加值
    COMMAND:启动命令
    

    2 uptime

    查看 Linux 负载

    [root@xxx ~]# uptime
     09:21:06 up 47 days, 15:48,  2 users,  load average: 0.45, 0.33, 0.27
    

    uptime解释: 参考top命令的第1行解释

    3 w

    查看 Linux 负载

    [root@xxx ~]# w
     09:21:48 up 47 days, 15:49,  2 users,  load average: 0.52, 0.36, 0.28
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    10.0.11.244      14Sep20 16:51m  0.25s  0.25s -bash
    root     pts/1    10.0.11.119      09:00    0.00s  0.00s  0.00s w
    

    w解释

    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    USER — 登录的用户名
    TTY — 登录后系统分配的终端号
    FROM — 远程主机名,即从哪儿登录来的
    LOGIN@ — 何时登录
    IDLE — 空闲了多长时间,表示用户闲置的时间。这是一个计时器,一旦用户执行任何操作,该计时器便会被重置
    JCPU — 和该终端(tty)连接的所有进程占用的时间,这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间
    PCPU — 指当前进程(即在WHAT项中显示的进程)所占用的时间
    WHAT — 当前正在运行进程的命令行
    

    4 vmstat

    查看 Linux 负载

    [root@xxx ~]# vmstat
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     0  0 593508 961904 336788 2067244    0    0     0     4    0    0  0  0 99  0  0
    
    [root@xxx ~]#vmstat 5  5 【在5秒时间内进行5次采样】
    procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     0  0 593508 958208 336960 2067472    0    0     0     4    0    0  0  0 99  0  0	
     0  0 593508 958216 336964 2067476    0    0     0    48  857 1668  0  0 99  0  0		
    

    vmstat解释:

    [procs]
    r - 运行队列中进程数。多少个进程真的分配到CPU;当这个值超过了CPU数目,就会出现CPU瓶颈。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
    b - 阻塞队列中进程数。
    
    [memory]
    swpd - 虚拟内存已使用的大小(KB)[593508/1024=579.59MB]。如果大于0,表示当前机器的物理内存不足了;如果不是程序内存泄露的原因,那么该升级内存了或者把耗内存的任务迁移到其他机器。
    free - 空闲的物理内存的大小(KB)[961904/1024=939.36MB]。
    buff - 缓冲区大小(KB)[336788/1024=328.89MB]。
    cache - 缓存大小(KB)[2067244/1024=2018.79]。
    
    [swap]
    si - 每秒从磁盘读入虚拟内存的大小。如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
    so - 每秒虚拟内存写入磁盘的大小。如果这个值大于0,同上。
    
    [io]
    bi - 块设备每秒接收的块数量。这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024Byte。
    bo - 块设备每秒发送的块数量。例如读取文件时,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
    
    [system]
    in - interrupt / 每秒CPU的中断次数,包括时间中断。
    cs - count/second / 每秒上下文切换次数。例如: 我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
    
    [cpu]
    us - user time / 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。
    sy - system time / 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
    id - 空闲 CPU时间,一般来说,id + us + sy = 100,一般认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
    wa - 等待IO CPU时间。
    

    vmstat命令使用,更多详见: Linux vmstat命令详解 - 博客园/小a玖拾柒

    5 free

    查看当前系统的【内存】及使用状况

    [root@es1 elasticsearch]# free -h
                 total       used       free     shared    buffers     cached
    Mem:           31G       8.8G        22G       160K       497M       6.5G
    -/+ buffers/cache:       1.8G        29G
    Swap:          15G        68K        15G
    

    X 推荐文献

  • 相关阅读:
    「BZOJ 1000」A+B Problem
    「HNOI 2008」越狱
    蓝桥杯 拼音字母
    蓝桥杯 抽签
    蓝桥杯 快速排序
    [蓝桥杯] 最大比例
    [蓝桥杯] 交换瓶子
    [蓝桥杯] 四平方和
    [蓝桥杯] 剪邮票
    [蓝桥杯] 方格填数
  • 原文地址:https://www.cnblogs.com/johnnyzen/p/13571126.html
Copyright © 2011-2022 走看看