精华内容
下载资源
问答
  • Linux系统查看CPU使用率、内存使用率、磁盘使用率

    万次阅读 多人点赞 2019-04-16 15:17:00
    一、查看CPU使用率 1. top 命令 top命令可以看到总体的系统运行状态和cpu的使用率 。 %us:表示用户空间程序的cpu使用率(没有通过nice调度) %sy:表示系统空间的cpu使用率,主要是内核程序。 %ni:表示用户空间...

    一、查看CPU使用率

    1. top 命令

    [root@sss ~]# top
    top - 16:54:38 up 7 days,  5:13,  3 users,  load average: 0.00, 0.01, 0.05
    Tasks:  77 total,   2 running,  75 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  1882232 total,   813020 free,   330164 used,   739048 buff/cache
    KiB Swap:        0 total,        0 free,        0 used.  1386608 avail Mem 
    
      PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                                        
    17215 root       0 -20  127504  12176   9560 S  0.7  0.6  21:46.45 AliYunDun                                                                                                                                      
     2770 root      20   0  573932  17232   6088 S  0.3  0.9   1:11.38 tuned                                                                                                                                          
        1 root      20   0   43548   3844   2588 S  0.0  0.2   0:06.54 systemd                                                                                                                                        
        2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                                       
        3 root      20   0       0      0      0 S  0.0  0.0   0:08.75 ksoftirqd/0                                                                                                                                    
        5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H              
    ... ...                                                                                                                                 
    

    top命令可以看到总体的系统运行状态和cpu的使用率 。

    %us:表示用户空间程序的cpu使用率(没有通过nice调度)
    %sy:表示系统空间的cpu使用率,主要是内核程序。
    %ni:表示用户空间且通过nice调度过的程序的cpu使用率。
    %id:空闲cpu
    %wa:cpu运行时在等待io的时间
    %hi:cpu处理硬中断的数量
    %si:cpu处理软中断的数量
    %st:被虚拟机偷走的cpu
    注:99.0 id,表示空闲CPU,即CPU未使用率,100%-99.0%=1%,即系统的cpu使用率为1%。
    

    2、vmstat

    详细使用和参数介绍参考网址

    3、sar

    sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,这个包很有用。
    

    命令示例:

    例如每1秒采集一次CPU使用率,共采集5次。
    
    [root@sss ~]# sar -u 1 5
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:56:03 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    04:56:04 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    04:56:05 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    04:56:06 PM     all      0.99      0.00      0.99      0.00      0.00     98.02
    04:56:07 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    04:56:08 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    Average:        all      0.20      0.00      0.20      0.00      0.00     99.60
    

    和top一样,可以看到所有cpu的使用情况。如果需要查看某颗cpu的使用可以用-P参数。例如指定显示0号cpu 的使用情况。

    [root@sss ~]# sar -P 0 -u 1 5
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:39:13 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    04:39:14 PM       0      0.00      0.00      0.99      0.00      0.00     99.01
    04:39:15 PM       0      0.00      0.00      0.00      0.00      0.00    100.00
    04:39:16 PM       0      0.00      0.00      0.00      0.00      0.00    100.00
    04:39:17 PM       0      0.00      0.00      0.00      0.00      0.00    100.00
    04:39:18 PM       0      1.00      0.00      0.00      0.00      0.00     99.00
    Average:          0      0.20      0.00      0.20      0.00      0.00     99.60
    [root@izuf633l0ge76tv5mzalpmz ~]# 
    

    进程队列长度和平均负载状态
    例如每1秒采集一次,共采集5次。

    [root@sss ~]# sar -q 1 5  
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:40:14 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
    04:40:15 PM         0       149      0.00      0.01      0.05         0
    04:40:16 PM         0       149      0.00      0.01      0.05         0
    04:40:17 PM         0       149      0.00      0.01      0.05         0
    04:40:18 PM         1       149      0.00      0.01      0.05         0
    04:40:19 PM         1       149      0.00      0.01      0.05         0
    Average:            0       149      0.00      0.01      0.05         0
    

    输出项:

    runq-sz:运行队列的长度(等待运行的进程数)
    
    plist-sz:进程列表中进程(processes)和线程(threads)的数量
    
    ldavg-1:最后1分钟的系统平均负载(System load average)
    
    ldavg-5:过去5分钟的系统平均负载
    
    ldavg-15:过去15分钟的系统平均负载
    

    创建的平均值和上下文切换的次数
    例如每1秒收集一次,共收集5次。

    [root@sss ~]# sar -w 1 5 
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:41:39 PM    proc/s   cswch/s
    04:41:40 PM      0.00    274.26
    04:41:41 PM      0.00    277.78
    04:41:42 PM      0.00    285.00
    04:41:43 PM      0.00    280.00
    04:41:44 PM      0.00    270.00
    Average:         0.00    277.40
    

    sar命令也可以获取过去指定日期的性能参数。

    [root@sss ~]# sar -u -f /var/log/sa/sa08
    Linux 3.10.0-693.2.2.el7.x86_64 (localhost.localdomain)         04/08/2019      _x86_64_        (1 CPU)
    
    10:54:35 AM       LINUX RESTART
    
    11:00:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    11:10:01 AM     all     12.93      0.23      2.89      1.54      0.00     82.41
    11:20:01 AM     all     46.58      0.00      8.81      0.79      0.00     43.82
    11:30:01 AM     all     44.93      0.00      9.68      0.15      0.00     45.24
    11:40:02 AM     all      0.25      0.00      0.15      0.00      0.00     99.60
    11:50:01 AM     all      0.19      0.00      0.13      0.00      0.00     99.68
    12:00:01 PM     all      0.31      0.00      0.19      0.14      0.00     99.37
    ... ...
    

    4、mpstat

    这个命令也在sysstat包中,语法类似。
    cpu使用情况比sar更加详细些,也可以用-P指定某颗cpu 。
    

    例如每1秒收集一次,共5次。

    [root@sss ~]# mpstat 1 5 
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:58:01 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
    04:58:02 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    04:58:03 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    04:58:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    04:58:05 PM  all    1.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.00
    04:58:06 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    Average:     all    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.80
    

    5、iostat

    这个命令主要用来查看io使用情况,也可以来查看cpu,个人感觉不常用。
    

    示例

    [root@sss ~]# iostat -c 1 2
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.26    0.00    0.21    0.01    0.00   99.53
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.00    0.00    0.00    0.00    0.00  100.00
    

    6、dstat

    每秒cpu使用率情况获取

    [root@sss ~]#  dstat -c
    ----total-cpu-usage----
    usr sys idl wai hiq siq
      0   0 100   0   0   0
      0   1  99   0   0   0
      1   0  99   0   0   0
      0   0 100   0   0   0
      0   0 100   0   0   0
      1   1  98   0   0   0
      0   0 100   0   0   0
      ... ...
    

    最占cpu的进程获取

    [root@sss ~]# dstat --top-cpu  
    -most-expensive-
      cpu process   
    AliYunDun    0.2
    AliYunDun    2.0
    mysqld       1.0
    AliYunDun    1.0
    kworker/0:1H 1.0
    AliYunDun    1.0
    AliYunDun    1.0
    AliYunDun    1.0
    

    二、查看内存使用率

    1、top命令

    top 命令查看内存使用率

    查看第四行: KiB Mem
    内存使用率: used/ total
    

    2、free命令

    free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。

    1.命令格式:
    free [参数]
    
    2.命令功能:
    free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略
    
    3.命令参数:
    -b  以Byte为单位显示内存使用情况。 
    
    -k  以KB为单位显示内存使用情况。 
    
    -m  以MB为单位显示内存使用情况。
    
    -g   以GB为单位显示内存使用情况。 
    
    -o  不显示缓冲区调节列。 
    
    -s<间隔秒数>  持续观察内存使用状况。 
    
    -t  显示内存总和列。 
    
    -V  显示版本信息。 
    
    4.使用实例:

    实例1:显示内存使用情况

    命令示例:

    free [-k] # 以 kb  为单位显示内存使用状况
    free -g # 以 G 为单位显示内存使用状况
    free -m # 以 M 为单位显示内存使用状况
    free -t  # 以总和的形式显示内存的使用信息
    free -s 1 # 每一秒显示内存使用情况
    

    输出:

    [root@sss ~]# free
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384944
    Swap:             0           0           0
    
    [root@sss ~]# free -g
                  total        used        free      shared  buff/cache   available
    Mem:              1           0           0           0           0           1
    Swap:             0           0           0
    
    [root@sss ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1838         324         791           0         722        1352
    Swap:             0           0           0
    
    [root@sss ~]# free -t
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384948
    Swap:             0           0           0
    Total:      1882232      331760      811004
    
    [root@sss ~]# free -s 1
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384948
    Swap:             0           0           0
    
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331784      810980         592      739468     1384924
    Swap:             0           0           0
    
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331784      810980         592      739468     1384924
    Swap:             0           0           0
    ... ...
    

    说明–对这些数值的解释:

    total:总计物理内存的大小。
    
    used:已使用多大。
    
    free:可用有多少。
    
    Shared:多个进程共享的内存总额。
    
    Buff/cache:磁盘缓存的大小。
    

    第三行是交换分区SWAP的,也就是我们通常所说的虚拟内存。
    当可用内存少于额定值的时候,就会进行交换

    如何看额定值:

    命令:

    cat /proc/meminfo 
    

    输出:

    [root@sss ~]# cat /proc/meminfo
    MemTotal:        1882232 kB
    MemFree:          811244 kB
    MemAvailable:    1385300 kB
    Buffers:           81268 kB
    Cached:           602500 kB
    SwapCached:            0 kB
    Active:           601948 kB
    Inactive:         379880 kB
    Active(anon):     298392 kB
    Inactive(anon):      256 kB
    Active(file):     303556 kB
    Inactive(file):   379624 kB
    Unevictable:           0 kB
    Mlocked:               0 kB
    SwapTotal:             0 kB
    SwapFree:              0 kB
    Dirty:               320 kB
    Writeback:             0 kB
    AnonPages:        298052 kB
    Mapped:            47236 kB
    Shmem:               592 kB
    Slab:              55772 kB
    SReclaimable:      44076 kB
    SUnreclaim:        11696 kB
    KernelStack:        2384 kB
    PageTables:         5808 kB
    NFS_Unstable:          0 kB
    Bounce:                0 kB
    WritebackTmp:          0 kB
    CommitLimit:      941116 kB
    Committed_AS:     810896 kB
    VmallocTotal:   34359738367 kB
    VmallocUsed:       10604 kB
    VmallocChunk:   34359719676 kB
    HardwareCorrupted:     0 kB
    AnonHugePages:    237568 kB
    CmaTotal:              0 kB
    CmaFree:               0 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    DirectMap4k:       63360 kB
    DirectMap2M:     2033664 kB
    DirectMap1G:           0 kB
    

    交换将通过三个途径来减少系统中使用的物理页面的个数:

    1.减少缓冲与页面cache的大小, 
    
    2.将系统V类型的内存页面交换出去,  
    
    3.换出或者丢弃页面。(Application 占用的内存页,也就是物理内存不足)。 
    

    事实上,少量地使用swap是不是影响到系统性能的。

    那buffers和cached都是缓存,两者有什么区别呢?

    为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
    
    磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。
    
    Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。
    
    Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。
    
    简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。
    
    所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准.
    
    如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。
    
    实例2:以总和的形式显示内存的使用信息

    命令:

     	free -t 
    

    输出:

    [root@sss ~]# free -t
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384948
    Swap:             0           0           0
    Total:      1882232      331760      811004
    
    实例3:周期性的查询内存使用信息

    命令:

    free -s 10
    

    输出:

    [root@sss ~]# free -s 10
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      324924      816688         496      740620     1392280
    Swap:             0           0           0
    
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      324944      816664         496      740624     1392260
    Swap:             0           0           0
    

    说明:

    每10s 执行一次命令
    

    三、查看磁盘使用率

    1、输入df命令

    [root@sss ~]# df
    

    显示详情:

    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/vda1 41151808 3794244 35244132 10% /
    devtmpfs 930644 0 930644 0% /dev
    tmpfs 941116 0 941116 0% /dev/shm
    tmpfs 941116 468 940648 1% /run
    tmpfs 941116 0 941116 0% /sys/fs/cgroup
    tmpfs 188224 0 188224 0% /run/user/0

    说明

    磁盘使用率=(Used列数据之和)/(1k-blocks列数据之和)
    

    磁盘和内存的区别与联系:

    (磁盘--也叫硬盘--或是U盘--或是移动硬盘)
    1、硬盘与内存都是存储器,一个是内部,一个是外部。
    
    2、硬盘与内存的区别是很大的,这里只谈最主要的三点:
    	1)内存是计算机的工作场所,硬盘用来存放暂时不用的信息;
    	2)内存是半导体材料制作,硬盘是磁性材料制作;
    	3)内存中的信息会随掉电而丢失,硬盘中的信息可以长久保存。
    	
    3、内存与硬盘的联系也非常密切:
    		硬盘上的信息永远是暂时不用的,要用请装入内存!
    		CPU与硬盘不发生直接的数据交换,CPU只是通过控制信号指挥硬盘工作,硬盘上的信息只有在装入内存后才能被处理。
    		
    4、计算机的启动过程就是一个从硬盘上把最常用信息装入内存的过程。
    
    5、硬盘则决定你的电脑可以装下多少东西,内存则决定你的电脑开机后一次最多可以运行多少程序(如手机运行内存)。
    
    展开全文
  • linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。常用的查看CPU使用率命令为top命令。 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows...

    一、查看CPU使用率

    1、top命令
    在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。常用的查看CPU使用率命令为top命令。

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

    top:Time of Process查看系统当前运行的情况,CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里,是内存不够、CPU处理能力不够、IO读写过高。

    top命令很常用,在第三行有显示CPU当前的使用情况。

     

    1.png

    如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。

    %us:表示用户空间程序的cpu使用率(没有通过nice调度)

    %sy:表示系统空间的cpu使用率,主要是内核程序。

    %ni:表示用户空间且通过nice调度过的程序的cpu使用率。

    %id:空闲cpu

    %wa:cpu运行时在等待io的时间

    %hi:cpu处理硬中断的数量

    %si:cpu处理软中断的数量

    %st:被虚拟机偷走的cpu

    注:96.9id,表示空闲CPU,即CPU未使用率,100%-96.9%=3.1%,即系统的cpu使用率为3.1%。

    2、其他命令可参考

    二、查看内存使用率

    1、top命令

     

    2.png

    (1)查看第四行KiB Mem
    (2)内存使用率=used/ total
    2、free命令
    可参考--正确计算Linux系统内存使用率

    三、查看磁盘使用率

    1、输入df命令

     

    3.png

     

    2、磁盘使用率=(Used列数据之和)/(1k-blocks列数据之和)

     

     

     

    四、查看磁盘大小

    df -hl

    注意事项:磁盘和内存的区别与联系:

    磁盘--也叫硬盘--或是U盘--或是移动硬盘
    1、硬盘与内存都是存储器,一个是内部,一个是外部。
    2、硬盘与内存的区别是很大的,这里只谈最主要的三点:1)内存是计算机的工作场所,硬盘用来存放暂时不用的信息;2)内存是半导体材料制作,硬盘是磁性材料制作;3)内存中的信息会随掉电而丢失,硬盘中的信息可以长久保存。
    3、内存与硬盘的联系也非常密切:这里只提一点:硬盘上的信息永远是暂时不用的,要用吗?请装入内存!CPU与硬盘不发生直接的数据交换,CPU只是通过控制信号指挥硬盘工作,硬盘上的信息只有在装入内存后才能被处理。
    4、计算机的启动过程就是一个从硬盘上把最常用信息装入内存的过程。
    5、硬盘则决定你的电脑可以装下多少东西,内存则决定你的电脑开机后一次最多可以运行多少程序(如手机运行内存)。

     

    展开全文
  • 文章目录一、查看CPU使用率1....使用实例:三、查看磁盘使用率1、输入df命令 一、查看CPU使用率 1. top 命令 [root@sss ~]# top top - 16:54:38 up 7 days, 5:13, 3 users, load average: 0.00, 0.01, 0.05 Tasks: 77

    一、查看CPU使用率

    1. top 命令

    [root@sss ~]# top
    top - 16:54:38 up 7 days,  5:13,  3 users,  load average: 0.00, 0.01, 0.05
    Tasks:  77 total,   2 running,  75 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  1882232 total,   813020 free,   330164 used,   739048 buff/cache
    KiB Swap:        0 total,        0 free,        0 used.  1386608 avail Mem 
    
      PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                                        
    17215 root       0 -20  127504  12176   9560 S  0.7  0.6  21:46.45 AliYunDun                                                                                                                                      
     2770 root      20   0  573932  17232   6088 S  0.3  0.9   1:11.38 tuned                                                                                                                                          
        1 root      20   0   43548   3844   2588 S  0.0  0.2   0:06.54 systemd                                                                                                                                        
        2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                                       
        3 root      20   0       0      0      0 S  0.0  0.0   0:08.75 ksoftirqd/0                                                                                                                                    
        5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H      
    

    top命令可以看到总体的系统运行状态和cpu的使用率 。

    %us:表示用户空间程序的cpu使用率(没有通过nice调度)
    %sy:表示系统空间的cpu使用率,主要是内核程序。
    %ni:表示用户空间且通过nice调度过的程序的cpu使用率。
    %id:空闲cpu
    %wa:cpu运行时在等待io的时间
    %hi:cpu处理硬中断的数量
    %si:cpu处理软中断的数量
    %st:被虚拟机偷走的cpu
    注:99.0 id,表示空闲CPU,即CPU未使用率,100%-99.0%=1%,即系统的cpu使用率为1%。

    2、vmstat

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值
    包括服务器的CPU使用率,
    内存使用,
    虚拟内存 交换情况,
    IO读写情况

    相比top,通过vmstat可以看到整个机器的 CPU,内存,IO的使用情况,
    而不是单单看到各个进程的CPU使用率和内存使用率。

    运行示例
    一般vmstat工具的使用是通过

    两个数字参数来完成的
    第一个参数: 采样的时间间隔数,单位是秒,
    第二个参数: 采样的次数

    如:

    [root@izuf633l0ge76tv5mzalpmz ~]# vmstat 2 12
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     2  0      0 835920  80296 642904    0    0     1     1   14   69  0  0 100  0  0
     0  0      0 835920  80296 642936    0    0     0     0  216  304  1  1 99  0  0
     0  0      0 835920  80296 642936    0    0     0     0  208  313  0  1 99  0  0
     0  0      0 835920  80300 642936    0    0     0     8  186  292  0  0 99  1  0
     0  0      0 835920  80300 642936    0    0     0     0  115  274  0  0 99  0  0
     0  0      0 835920  80300 642936    0    0     0     0  115  278  0  0 100  0  0
     0  0      0 835920  80300 642936    0    0     0     0  115  280  1  0 100  0  0
     0  0      0 835920  80300 642936    0    0     0     0  117  284  0  1 99  0  0
     0  0      0 835920  80300 642936    0    0     0     0  113  276  0  0 100  0  0
     0  0      0 835920  80300 642936    0    0     0     0  114  281  0  1 100  0  0
     0  0      0 835920  80300 642936    0    0     0     0  119  285  1  0 99  0  0
     0  0      0 835920  80300 642936    0    0     0     0  111  274  0  0 100  0  0
    [root@izuf633l0ge76tv5mzalpmz ~]# 
    

    实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如:

    [root@izuf633l0ge76tv5mzalpmz ~]# vmstat 2
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     3  0      0 836068  80304 642936    0    0     1     1   14   69  0  0 100  0  0
     0  0      0 836044  80304 642936    0    0     0     0  228  324  0  0 100  0  0
     0  0      0 836044  80304 642936    0    0     0     0  233  334  1  1 99  0  0
    

    … …
    这表示vmstat每2秒采集数据,一直采集,直到我结束程序。

    参数详解
    Linux 内存监控vmstat命令输出分成六个部分:
    1
    进程procs
    r:在运行队列中等待的进程数 。
    b:在等待io的进程数 。
    1
    2
    内存memoy:
    swpd:现时可用的交换内存(单位KB)。
    free:空闲的内存(单位KB)。
    buff: 缓冲去中的内存数(单位:KB)。
    cache:被用来做为高速缓存的内存数(单位:KB)。

    swap交换页面
    si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
    so: 从内存交换到磁盘的交换页数量,单位:KB/秒。

    io块设备:
    bi: 发送到块设备的块数,单位:块/秒。
    bo: 从块设备接收到的块数,单位:块/秒。

    system系统:
    in: 每秒的中断数,包括时钟中断。
    cs: 每秒的环境(上下文)转换次数。

    cpu中央处理器:
    cs:用户进程使用的时间 。以百分比表示。
    sy:系统进程使用的时间。 以百分比表示。
    id:中央处理器的空闲时间 。以百分比表示。

    常见诊断:
    1、假如 r 经常大于4 ,且 id 经常小于40,表示中央处理器的负荷很重。
    2、假如 bi,bo 长期不等于0,表示物理内存容量太小。

    每个参数的具体意思如下:

    表示运行队列(就是说多少个进程真的分配到CPU),
    我测试的服务器目前CPU比较空闲,没什么程序在跑,
    当这个值超过了CPU数目,就会出现CPU瓶颈 了。
    这个也和top的负载有关系,
    一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。
    top的负载类似每秒的运行队 列。
    如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。

    表示阻塞的进程,这个不多说,进程阻塞,大家懂的。

    swpd

    虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,
    如果不是程序内存泄露的原因,
    那么你该升级内存了或者把耗内存的任务迁移到其他机器。

    free

    空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。

    buff

    Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M

    cache

    cache直接用来记忆我们打开的文件,给文件做缓冲,
    我本机大概占用300多M
    (这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,
    是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

    si

    每秒从磁盘读入虚拟内存的大小,如果这个值大于0,
    表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
    我的机器内存充裕,一切正常。

    so

    每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

    bi

    块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,
    默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,
    但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,
    磁盘写入速度差不多140M每秒

    bo

    块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。
    bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

    in

    每秒CPU的中断次数,包括时间中断

    cs

    每秒上下文切换次数,
    例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,
    这个值要越小越好,太大了,要考虑调低线程或者进程的 数目,
    例如在apache和nginx这种web服务器中,
    我们一般做性能测试时会进行几千并发甚至几万并发的测试,
    选择web服务器的进程可以由进程或 者线程的峰值一直下调,压测,
    直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。
    系统调用也是,每次调用系统函数,我们的代码就会进入内核 空间,导致上下文切换,
    这个是很耗资源,也要尽量避免频繁调用系统函数。
    上下文切换次数过多表示你的CPU大部分浪费在上下文切换,
    导致CPU干正经事的 时间少了,CPU没有充分利用,是不可取的。

    us

    用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,
    可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

    sy

    系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

    id

    空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,
    us是用户CPU使用率,sy是系统CPU使用率。

    wt

    等待IO CPU时间。

    3、sar

    sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,这个包很有用。

    命令示例:

    例如每1秒采集一次CPU使用率,共采集5次。

    [root@sss ~]# sar -u 1 5
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:56:03 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    04:56:04 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    04:56:05 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    04:56:06 PM     all      0.99      0.00      0.99      0.00      0.00     98.02
    04:56:07 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    04:56:08 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    Average:        all      0.20      0.00      0.20      0.00      0.00     99.60
    

    和top一样,可以看到所有cpu的使用情况。如果需要查看某颗cpu的使用可以用-P参数。例如指定显示0号cpu 的使用情况。

    [root@sss ~]# sar -P 0 -u 1 5
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:39:13 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    04:39:14 PM       0      0.00      0.00      0.99      0.00      0.00     99.01
    04:39:15 PM       0      0.00      0.00      0.00      0.00      0.00    100.00
    04:39:16 PM       0      0.00      0.00      0.00      0.00      0.00    100.00
    04:39:17 PM       0      0.00      0.00      0.00      0.00      0.00    100.00
    04:39:18 PM       0      1.00      0.00      0.00      0.00      0.00     99.00
    Average:          0      0.20      0.00      0.20      0.00      0.00     99.60
    [root@izuf633l0ge76tv5mzalpmz ~]# 
    

    进程队列长度和平均负载状态
    例如每1秒采集一次,共采集5次。

    [root@sss ~]# sar -q 1 5  
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:40:14 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
    04:40:15 PM         0       149      0.00      0.01      0.05         0
    04:40:16 PM         0       149      0.00      0.01      0.05         0
    04:40:17 PM         0       149      0.00      0.01      0.05         0
    04:40:18 PM         1       149      0.00      0.01      0.05         0
    04:40:19 PM         1       149      0.00      0.01      0.05         0
    Average:            0       149      0.00      0.01      0.05         0
    

    输出项:

    runq-sz:运行队列的长度(等待运行的进程数)

    plist-sz:进程列表中进程(processes)和线程(threads)的数量

    ldavg-1:最后1分钟的系统平均负载(System load average)

    ldavg-5:过去5分钟的系统平均负载

    ldavg-15:过去15分钟的系统平均负载

    创建的平均值和上下文切换的次数
    例如每1秒收集一次,共收集5次。

    [root@sss ~]# sar -w 1 5 
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:41:39 PM    proc/s   cswch/s
    04:41:40 PM      0.00    274.26
    04:41:41 PM      0.00    277.78
    04:41:42 PM      0.00    285.00
    04:41:43 PM      0.00    280.00
    04:41:44 PM      0.00    270.00
    Average:         0.00    277.40
    

    sar命令也可以获取过去指定日期的性能参数。

    [root@sss ~]# sar -u -f /var/log/sa/sa08
    Linux 3.10.0-693.2.2.el7.x86_64 (localhost.localdomain)         04/08/2019      _x86_64_        (1 CPU)
    
    10:54:35 AM       LINUX RESTART
    
    11:00:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    11:10:01 AM     all     12.93      0.23      2.89      1.54      0.00     82.41
    11:20:01 AM     all     46.58      0.00      8.81      0.79      0.00     43.82
    11:30:01 AM     all     44.93      0.00      9.68      0.15      0.00     45.24
    11:40:02 AM     all      0.25      0.00      0.15      0.00      0.00     99.60
    11:50:01 AM     all      0.19      0.00      0.13      0.00      0.00     99.68
    12:00:01 PM     all      0.31      0.00      0.19      0.14      0.00     99.37
    ... ...
    

    4、mpstat

    这个命令也在sysstat包中,语法类似。
    cpu使用情况比sar更加详细些,也可以用-P指定某颗cpu 。

    例如每1秒收集一次,共5次。

    [root@sss ~]# mpstat 1 5 
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:58:01 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
    04:58:02 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    04:58:03 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    04:58:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    04:58:05 PM  all    1.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.00
    04:58:06 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    Average:     all    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.80
    

    5、iostat

    这个命令主要用来查看io使用情况,也可以来查看cpu,个人感觉不常用。

    示例

    [root@sss ~]# iostat -c 1 2
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.26    0.00    0.21    0.01    0.00   99.53
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.00    0.00    0.00    0.00    0.00  100.00
    

    6、dstat
    每秒cpu使用率情况获取

    [root@sss ~]#  dstat -c
    ----total-cpu-usage----
    usr sys idl wai hiq siq
      0   0 100   0   0   0
      0   1  99   0   0   0
      1   0  99   0   0   0
      0   0 100   0   0   0
      0   0 100   0   0   0
      1   1  98   0   0   0
      0   0 100   0   0   0
      ... ...
    

    最占cpu的进程获取

    [root@sss ~]# dstat --top-cpu  
    -most-expensive-
      cpu process   
    AliYunDun    0.2
    AliYunDun    2.0
    mysqld       1.0
    AliYunDun    1.0
    kworker/0:1H 1.0
    AliYunDun    1.0
    AliYunDun    1.0
    AliYunDun    1.0
    1
    

    二、查看内存使用率

    1、top命令

    top 命令查看内存使用率

    查看第四行: KiB Mem
    内存使用率: used/ total

    2、free命令

    free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。

    (1).命令格式:

    free [参数]

    (2).命令功能:

    free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略

    (3) .命令参数:

    -b  以Byte为单位显示内存使用情况。 
    
    -k  以KB为单位显示内存使用情况。 
    
    -m  以MB为单位显示内存使用情况。
    
    -g   以GB为单位显示内存使用情况。 
    
    -o  不显示缓冲区调节列。 
    
    -s<间隔秒数>  持续观察内存使用状况。 
    
    -t  显示内存总和列。 
    
    -V  显示版本信息。
    

    (4).使用实例:

    实例1:显示内存使用情况

    命令示例:

    free [-k] # 以 kb  为单位显示内存使用状况
    free -g # 以 G 为单位显示内存使用状况
    free -m # 以 M 为单位显示内存使用状况
    free -t  # 以总和的形式显示内存的使用信息
    free -s 1 # 每一秒显示内存使用情况
    

    输出:

    [root@sss ~]# free
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384944
    Swap:             0           0           0
    
    [root@sss ~]# free -g
                  total        used        free      shared  buff/cache   available
    Mem:              1           0           0           0           0           1
    Swap:             0           0           0
    
    [root@sss ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1838         324         791           0         722        1352
    Swap:             0           0           0
    
    [root@sss ~]# free -t
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384948
    Swap:             0           0           0
    Total:      1882232      331760      811004
    
    [root@sss ~]# free -s 1
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384948
    Swap:             0           0           0
    
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331784      810980         592      739468     1384924
    Swap:             0           0           0
    
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331784      810980         592      739468     1384924
    Swap:             0           0           0
    
    说明–对这些数值的解释:
    
    total:总计物理内存的大小。
    
    used:已使用多大。
    
    free:可用有多少。
    
    Shared:多个进程共享的内存总额。
    
    Buff/cache:磁盘缓存的大小。
    

    第三行是交换分区SWAP的,也就是我们通常所说的虚拟内存。
    当可用内存少于额定值的时候,就会进行交换

    如何看额定值:
    命令:

    cat /proc/meminfo 
    

    输出:

    [root@sss ~]# cat /proc/meminfo
    MemTotal:        1882232 kB
    MemFree:          811244 kB
    MemAvailable:    1385300 kB
    Buffers:           81268 kB
    Cached:           602500 kB
    SwapCached:            0 kB
    Active:           601948 kB
    Inactive:         379880 kB
    Active(anon):     298392 kB
    Inactive(anon):      256 kB
    Active(file):     303556 kB
    Inactive(file):   379624 kB
    Unevictable:           0 kB
    Mlocked:               0 kB
    SwapTotal:             0 kB
    SwapFree:              0 kB
    Dirty:               320 kB
    Writeback:             0 kB
    AnonPages:        298052 kB
    Mapped:            47236 kB
    Shmem:               592 kB
    Slab:              55772 kB
    SReclaimable:      44076 kB
    SUnreclaim:        11696 kB
    KernelStack:        2384 kB
    PageTables:         5808 kB
    NFS_Unstable:          0 kB
    Bounce:                0 kB
    WritebackTmp:          0 kB
    CommitLimit:      941116 kB
    Committed_AS:     810896 kB
    VmallocTotal:   34359738367 kB
    VmallocUsed:       10604 kB
    VmallocChunk:   34359719676 kB
    HardwareCorrupted:     0 kB
    AnonHugePages:    237568 kB
    CmaTotal:              0 kB
    CmaFree:               0 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    DirectMap4k:       63360 kB
    DirectMap2M:     2033664 kB
    DirectMap1G:           0 kB
    

    交换将通过三个途径来减少系统中使用的物理页面的个数:

    1.减少缓冲与页面cache的大小,

    2.将系统V类型的内存页面交换出去,

    3.换出或者丢弃页面。(Application 占用的内存页,也就是物理内存不足)。
    1
    2
    3
    4
    5
    事实上,少量地使用swap是不是影响到系统性能的。

    那buffers和cached都是缓存,两者有什么区别呢?

    为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。

    磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。

    Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。

    Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。

    简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。

    所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准.

    如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。

    实例2:以总和的形式显示内存的使用信息
    命令:

    free -t 
    

    输出:

    [root@sss ~]# free -t
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384948
    Swap:             0           0           0
    Total:      1882232      331760      811004
    
    

    实例3:周期性的查询内存使用信息
    命令:

    free -s 10
    

    输出:

    [root@sss ~]# free -s 10
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      324924      816688         496      740620     1392280
    Swap:             0           0           0
    
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      324944      816664         496      740624     1392260
    Swap:             0           0           0
    

    说明:

    每10s 执行一次命令

    三、查看磁盘使用率

    1、输入df命令

    [root@sss ~]# df

    显示详情:

    Filesystem	1K-blocks	Used	Available	Use%	Mounted on
    /dev/vda1	41151808	3794244	35244132	10%	/
    devtmpfs	930644	0	930644	0%	/dev
    tmpfs	941116	0	941116	0%	/dev/shm
    tmpfs	941116	468	940648	1%	/run
    tmpfs	941116	0	941116	0%	/sys/fs/cgroup
    tmpfs	188224	0	188224	0%	/run/user/0
    

    说明

    磁盘使用率=(Used列数据之和)/(1k-blocks列数据之和)
    

    磁盘和内存的区别与联系:

    (磁盘–也叫硬盘–或是U盘–或是移动硬盘)
    1、硬盘与内存都是存储器,一个是内部,一个是外部。

    2、硬盘与内存的区别是很大的,这里只谈最主要的三点:
    1)内存是计算机的工作场所,硬盘用来存放暂时不用的信息;
    2)内存是半导体材料制作,硬盘是磁性材料制作;
    3)内存中的信息会随掉电而丢失,硬盘中的信息可以长久保存。

    3、内存与硬盘的联系也非常密切:
    硬盘上的信息永远是暂时不用的,要用请装入内存!
    CPU与硬盘不发生直接的数据交换,CPU只是通过控制信号指挥硬盘工作,硬盘上的信息只有在装入内存后才能被处理。

    4、计算机的启动过程就是一个从硬盘上把最常用信息装入内存的过程。

    5、硬盘则决定你的电脑可以装下多少东西,内存则决定你的电脑开机后一次最多可以运行多少程序(如手机运行内存)。

    展开全文
  •  在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。常用的查看CPU使用率命令为top命令。  top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于...

    一、查看CPU使用率

    1、top命令

      在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。常用的查看CPU使用率命令为top命令。

      top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

      top:Time of Process查看系统当前运行的情况,CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里,是内存不够、CPU处理能力不够、IO读写过高。

      top命令很常用,在第三行有显示CPU当前的使用情况。


     
      
      1.png

        如上所示,top命令可以看到总体的系统运行状态和cpu的使用率 。

          %us:表示用户空间程序的cpu使用率(没有通过nice调度)

          %sy:表示系统空间的cpu使用率,主要是内核程序。

          %ni:表示用户空间且通过nice调度过的程序的cpu使用率。

          %id:空闲cpu

          %wa:cpu运行时在等待io的时间

          %hi:cpu处理硬中断的数量

          %si:cpu处理软中断的数量

          %st:被虚拟机偷走的cpu

        注:96.9id,表示空闲CPU,即CPU未使用率,100%-96.9%=3.1%,即系统的cpu使用率为3.1%。

      2、其他命令可参考

    二、查看内存使用率

      1、top命令

         

        (1)查看第四行KiB Mem
        (2)内存使用率=used/ total

      2、free命令

        可参考--正确计算Linux系统内存使用率

    三、查看磁盘使用率

      1、输入df命令

      
     

      2、磁盘使用率=(Used列数据之和)/(1k-blocks列数据之和)

        注意事项:磁盘和内存的区别与联系:

        磁盘--也叫硬盘--或是U盘--或是移动硬盘
          1、硬盘与内存都是存储器,一个是内部,一个是外部。
          2、硬盘与内存的区别是很大的,这里只谈最主要的三点:1)内存是计算机的工作场所,硬盘用来存放暂时不用的信息;2)内存是半导体材料制作,硬盘是磁性材料制作;3)内存中的信息会随掉电而丢失,硬盘中的信息可以长久保存。
          3、内存与硬盘的联系也非常密切:这里只提一点:硬盘上的信息永远是暂时不用的,要用吗?请装入内存!CPU与硬盘不发生直接的数据交换,CPU只是通过控制信号指挥硬盘工作,硬盘上的信息只有在装入内存后才能被处理。
          4、计算机的启动过程就是一个从硬盘上把最常用信息装入内存的过程。
          5、硬盘则决定你的电脑可以装下多少东西,内存则决定你的电脑开机后一次最多可以运行多少程序(如手机运行内存)。

     

    转载于:https://www.cnblogs.com/iSun520/p/11268979.html

    展开全文
  • 查看 cpu 使用率脚本 cpu_id=`top -bn 1 | sed -n 3p |awk -F , '{print $4}'|awk '{print $1}'` echo -e "${cpu_id}"|awk '{printf "%2.2f",100-$1}' 查看内存使用率脚本 set -u InfoFile="/proc/meminfo" [[ -f ...
  • 作为Linux运维工程师系统维护过程中,需要我们经常查看CPU使用率、内存使用率、带宽占用,从资源使用的程度分析系统整体的运行情况。在 Linux查看资源使用情况有很多命令可以参考,CPU、内存、IO、NETWORK等资源...
  • 一、查看CPU使用率 top命令 top:time of process,查看系统当前的运行情况,查看CPU、内存、运行时间、交换分区、执行的线程等信息。 top命令是linux下常用的性能分析工具,能够实时的显示系统中各个进程中资源...
  • /* 写在完成后,查找了很多资料,看到了很多方法,也看了部分top的源码,最终选择了这几种混合的方式来写,... [x] CPU利用率:top /proc/stat [x] 内存使用率top -- sysinfo [x] 硬盘占用率:df (disk free) ...
  • Linux CPU、内存、磁盘使用率计算原创作品,转载请标明出处。命令方式查看:cpu使用率:如果发现多个进程cpu使用率加起来高于100%,或者单个进程(可能开多个线程导致)使用率高于100%,说明该top工具版本比较旧,...
  • 它被用来检查是什么进程在服务器上占有如此高的使用率,对于大多数 Linux 系统管理员来说很常见,现实世界中被 Linux 系统管理员广泛采用。如果在进程输出中你没有看到很大的不同,你仍然有选择查看其他东西。我会...
  • 1. 查看cpu核数:  cat /proc/cpuinfo | grep "processor" |sort |uniq | wc -l 2. 查看内存总数: ...3. 查看磁盘使用情况:  df -h 4.看cpu、内存、SWAP使用率:  top 5. 查看Linux版本:  cat /...
  • 大多数时间里服务器性能由于在硬盘上的高 I/O 读和写降低了性能。如果它很高或者波动,很...如果Linux 系统性能变慢,我们会用top 命令来查看系统性能。它被用来检查是什么进程在服务器上占有如此高的使用率,对于大...
  • 查看Linux磁盘及内存占用情况

    万次阅读 多人点赞 2017-12-11 17:56:46
    查看磁盘使用情况: df -k:以KB为单位显示磁盘使用量和占用 df -m:以Mb为单位显示磁盘使用量和占用 df –help:查看更多df命令及使用方法 查看内存占用情况: 1.top PID:当前运行进程的ID USER:...
  • 大多数时间里服务器性能由于在硬盘上的高 I/O 读和写降低了性能。...如果 Linux 系统性能 变慢,我们会用 top 命令 来查看系统性能。它被用来检查是什么进程在服务器上占有如此高的使用率,对于大多数 L...
  • 文章目录一、查看磁盘使用情况:1.df -k:以KB为单位显示磁盘使用量和占用2.df -m:以Mb为单位显示磁盘使用量和占用3.df --help:查看更多df命令及使用方法二、查看内存占用情况:1.top2.free3.cat /proc/...
  • linux 内存与磁盘管理

    2020-06-06 14:22:24
    内存和磁盘使用率查看 内存使用状况查看 free && top 如果没有使用swap(虚拟内存),在linux内存被即将占满的情况下 ,内核会随机杀死占用较大的应用/进程。 ## 以兆(m)为单位显示内存情况 $ free -m # ...
  • 查看磁盘使用情况:df -k:以KB为单位显示磁盘使用量和占用df -m:以Mb为单位显示磁盘使用量和占用df –help:查看更多df命令及使用方法查看内存占用情况:1.topPID:当前运行进程的IDUSER:进程属主PR:每个...
  • 查看磁盘使用情况: df -k:以KB为单位显示磁盘使用量和占用 这里写图片描述 df -m:以Mb为单位显示磁盘使用量和占用 这里写图片描述 df –help:查看更多df命令及使用方法 这里写图片描述 查看内存占用情况: ...
  • 查看磁盘使用情况: df -k:以KB为单位显示磁盘使用量和占用 df -m:以Mb为单位显示磁盘使用量和占用 df –help:查看更多df命令及使用方法 查看内存占用情况: 1.top PID:当前运行...
  • linux查看内存使用情况

    千次阅读 2021-01-29 11:19:22
    查看磁盘使用情况: df -k:以KB为单位显示磁盘使用量和占用 df -m:以Mb为单位显示磁盘使用量和占用 df –help:查看更多df命令及使用方法 查看内存占用情况: 1.top PID:当前运行进程的ID USER:进程属主...
  • 在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU、内存的使用情况,网络流量和磁盘I/O? A: 在命令行方式下, 1. 查看CPU使用情况的命令 每5秒刷新一次,最...
  • 介绍  在linux上跑程序时,常常遇到程序卡顿,内存消耗大,这时候,我们需要使用free查看内存使用情况及top内存消耗排行,当然,我们还可以继续使用一些其他的JVM监控命令如jstat等命令进行java程序的性能评估。...
  • linux磁盘管理命令

    2019-10-27 19:19:09
    磁盘占用信息 df 用于检查了linux系统上文件系统的磁盘空间占用情况 du du 绝对路径[/文件] #对指定目录或文件磁盘空间...vmstat #服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况, IO读写情...
  • 1、使用top 查看系统性能指标,发现iowait%数值异常,查看状态为D的进程 2、通过pidstat -d -p pid 观察当前进程的KB_rb、kb_wr指标情况,如果对应进程这两个指标为0,可以换成当前命令:pidstat -d 1 10 观测当前...
  • iostat 、 iotop 查看磁盘IO vmstat、 sar 、iostat、 top 检测CPU free、vmstat 内存 2、服务器系统性能标准评估表 二、详解 1、查看整体负载 TOP命令 CPU、内存信息查看 $cpu: cpu核数 sy: 内核CPU使用率 us:...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 123
精华内容 49
关键字:

linuxtop查看磁盘使用率

linux 订阅