精华内容
下载资源
问答
  • 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
    

    显示详情:

    Filesystem1K-blocksUsedAvailableUse%Mounted on
    /dev/vda14115180837942443524413210%/
    devtmpfs93064409306440%/dev
    tmpfs94111609411160%/dev/shm
    tmpfs9411164689406481%/run
    tmpfs94111609411160%/sys/fs/cgroup
    tmpfs18822401882240%/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、硬盘则决定你的电脑可以装下多少东西,内存则决定你的电脑开机后一次最多可以运行多少程序(如手机运行内存)。

    展开全文
  • 1、查看磁盘状态 [root@delivery-test ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 410M 3.5G 11% /run tmpfs 3.9G 0 3.9G

    1、查看磁盘状态

    [root@delivery-test ~]# df -h
    Filesystem      Size  Used Avail Use% Mounted on
    devtmpfs        3.9G     0  3.9G   0% /dev
    tmpfs           3.9G     0  3.9G   0% /dev/shm
    tmpfs           3.9G  410M  3.5G  11% /run
    tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
    /dev/sda1        40G   40G   20K 100% /
    tmpfs           799M     0  799M   0% /run/user/0
    overlay          40G   40G   20K 100% /var/lib/docker/overlay2/2f948926a76c2201c01918b47d54bb87db7deac28ac2a1586820e2a0163fe471/merged
    shm              64M     0   64M   0% /var/lib/docker/containers/fc77375a461d6a68d3d7af41519c194662d405ce131d50793963e734b8131f42/shm
    

    2、查看各个文件磁盘占用情况

    命令中的 / 表示跟目录,也可以试 /home 等,可根据情况自行修改。

    [root@delivery-test ~]# du -sh /*
    0	/bin
    154M	/boot
    0	/dev
    36M	/etc
    37G	/home
    0	/lib
    4.3M	/root
    1.5M	/tmp
    1.6G	/usr
    530M	/var
    

    3、查看inodes容量

    当磁盘容量或inode容量任意一个不足时就都会提示 No space left on device

    查看后进入占用率高的目录删除无用文件即可。

    [root@delivery-test /]# df -ih
    Filesystem     Inodes IUsed IFree IUse% Mounted on
    devtmpfs         996K   384  995K    1% /dev
    tmpfs            998K     1  998K    1% /dev/shm
    tmpfs            998K   566  998K    1% /run
    tmpfs            998K    16  998K    1% /sys/fs/cgroup
    /dev/sda1        106K  106K   923  100% /
    tmpfs            998K     1  998K    1% /run/user/0
    overlay          106K  106K   923  100% /var/lib/docker/overlay2/2f9489a0163fe471/merged
    shm              998K     1  998K    1% /var/lib/docker/containers/fc7834b8131f42/shm
    

    4、查看文件数量

    inodes 爆满那就查看一下哪些地方文件数量过多。

    根据上边的信息 / 目录的 inodes 占用率为 100% 所以查看其下文件,将无用文件删除即可,进行删除即可。

    for i in /*; do echo $i; find $i |wc -l; done
    

    5、僵尸进程

    若磁盘容量和 inodes 容量都正常但还是没有磁盘空间,则需查看是否存在已被删除的文件,状态为 deleted

    lsof | grep deleted
    

    根据进程号,将其 kill 掉即可。若不清楚该进程作用请勿随意 kill

    原理:

    在linux上被删除的文件仍被其他进程所使用,文件句柄没有完全释放出来,导致空间无法释放出来,在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

    展开全文
  • 可参考linux系统查看CPU使用率的命令 常用命令:top top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。 [root@izwz94b8tt3jlf3ne0ymp3z ~]# top top - ...
  • 查看 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查看内存使用情况zz2008-06-20 10:57老是忘,贴一篇长长记性在Linux查看内存我们一般用free命令:[root@scs-2 tmp]# freetotal used free shared buffers cachedMem: 3266180 3250004 16176 0 110652 ...
  • 如何查看Linux磁盘及内存占用情况

    千次阅读 2020-08-12 09:13:17
    文章目录一、查看磁盘使用情况:1.df -k:以KB为单位显示磁盘使用量和占用2.df -m:以Mb为单位显示磁盘使用量和占用3.df --help:查看更多df命令及使用方法二、查看内存占用情况:1.top2.free3.cat /proc/...
  • /*** linux 下cpu 内存 磁盘 jvm的使用监控* @author avery_leo**/public class DiskSpace {/*** 获取cpu使用情况* @return* @throws Exception*/public double getCpuUsage() throws Except...
  • 一、查看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, ...
  • 使用vmstat命令来察看系统资源情况在命令行方式下... 查看CPU使用情况的命令每5秒刷新一次,最右侧有CPU的占用的数据$ vmstat 5top 然后按Shift+P,按照进程处理器占用排序$ top2. 查看内存使用情况的命令用fre...
  • 1、查看CPU个数cat /proc/cpuinfo | grep "physical id" | uniqtop可以实时的查看cpu的使用情况2、查看CPU核数cat /proc/cpuinfo | grep "cpu cores" | uniq3、查看CPU型号cat /proc/cpuinfo | grep 'model name' |...
  • 使用free命令 后面的选项是空间单位free -m 以MB为单位进行统计 free -g 以GB为单位进行统计进程管理判断服务器的健康状况ps 查看系统中运行了哪些进程ps aux unix格式命令 显示系统中ps -le linux格式命令 显示更加...
  • linux查看内存使用情况top详解

    千次阅读 2020-10-27 14:17:18
    1. top命令: 输入命令: top 输出内容展示: 内容分析: PID:进程的ID USER:进程所有者 PR:进程的优先级别,越小越优先被执行 NI:进程Nice值,代表这个进程的优先值 VIRT:进程占用的虚拟内存 RES...
  • linux top命令详解

    2021-05-15 17:56:36
    linux top命令详解下面详细介绍它的使用方法。top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombieCpu(s): 0.3% us, 1.0% sy, 0.0% ni, ...
  • linux查看磁盘io使用情况

    万次阅读 2020-11-03 10:27:42
    三种方法 iostat命令、iotop命令、pt-...使用iostat -x 5 查看IO情况: -x:更详细的io设备统计信息 选项 说明 rrqm/s 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并 ...
  • Linux查看CPU使用率的一些命令

    千次阅读 2019-01-22 09:59:36
    在使用linux系统进行运维的过程中,我们经常要查看一下CPU的使用率,以便观察以及分析系统的整体运行情况。 那么使用以下这些命令有何作用?我们一起看看: 1. top 使用频率比较高的命令,可在第三行看到cpu的...
  •  在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。常用的查看CPU使用率命令为top命令。  top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于...
  • Linux查看CPU使用率、内存使用率

    千次阅读 2020-04-16 11:56:01
    一、CPU使用率查看 1.cat /proc/loadavg命令 $ cat /proc/loadavg 0.08 0.06 0.10 1/442 8347 前三项分别是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载为在特定时间间隔内运行队列中的平均进程数,...
  • Linux服务器如何查看CPU使用率、内存占用情况Top命令Free命令Vmstat命令 作为Linux运维工程师,系统维护过程中,需要我们经常查看CPU使用率、内存使用率、带宽占用,从资源使用的程度分析系统整体的运行情况。 在 ...
  • 转自:https://www.cnblogs.com/djlsunshine/p/10833343.html 一、查看内存占用 1、free # free -m 以MB为单位显示内存使用情况 [root@localhost ~]# free -m total used free shared buff/cache ...
  • 一、查看CPU使用率 top命令 top:time of process,查看系统当前的运行情况,查看CPU、内存、运行时间、交换分区、执行的线程等信息。 top命令是linux下常用的性能分析工具,能够实时的显示系统中各个进程中资源...
  • Linux如何查看CPU、内存、磁盘使用情况 ...进入top的实时界面后,默认按照CPU的使用率排序,个人觉得按照CPU使用率不太友好 我们可以通过,Shift+m 按键将进程按照内存使用情况排序,可以查看哪些进程消耗
  • Linux如何查看CPU、内存、磁盘使用情况

    万次阅读 多人点赞 2020-03-14 22:43:09
    如何使用top 进入top的实时界面后,默认按照CPU的使用率排序,个人觉得按照CPU使用率不太友好 我们可以通过,Shift+m 按键将进程按照内存使用情况排序,可以查看哪些进程消耗内存非常大 Linux中输入:top 键盘按下...
  • 前几天登录云服务器突然发现没几个服务内存竟然快占满了,于是赶快top查看,发现直接top查看的话 也不太好分析是哪个应用占用的内存比较大,于是谷歌了一番记录了以下几种查内存占用情况的方法。 查看内存占用情况...
  • Linux 查看磁盘IO的使用

    千次阅读 2020-08-06 11:12:57
    有的时候我们需要更进一步了解磁盘io的使用情况,那么本文就是重点讲解一下如何查看linux磁盘io信息的。 1.iostat: 1.1 命令格式: iostat[参数][时间][次数] 1.2 命令功能: 通过iostat方便查看CPU、网卡、tty...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,075
精华内容 12,430
关键字:

linuxtop查看磁盘使用率

linux 订阅