精华内容
下载资源
问答
  • 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、硬盘则决定你的电脑可以装下多少东西,内存则决定你的电脑开机后一次最多可以运行多少程序(如手机运行内存)。
    
    展开全文
  • CPU使用率 磁盘使用率 内存使用率 cpu个数 物理内存 虚拟内存
  • 【场景】MySQL实例可能长时间运行,未进行磁盘及数据管理,导致磁盘使用率升高。尤其当实例显示“磁盘空间满”状态,且数据库不可进行写入操作,会导致实例异常、数据库备份失败潜在风险、数据库实例只读状态。从而...

    【场景】

    MySQL实例可能长时间运行,未进行磁盘及数据管理,导致磁盘使用率升高。尤其当实例显示“磁盘空间满”状态,且数据库不可进行写入操作,会导致实例异常、数据库备份失败潜在风险、数据库实例只读状态。从而影响业务正常运行。

    本文档通过分析及解决以下引起磁盘使用率高的场景,提前预防磁盘使用率高导致实例异常,只读状态的问题。

    1)磁盘利用率月/季度平均增长过快。

    2)delete删除数据后磁盘空间使用率无变化

    3)冷数据迁移

    4)大事务快速生成Binlog文件

    5)查询产生临时文件过大

    6)大事务未提交前产生binlog cache文件

    【场景1】每月/每季度磁盘利用率平均增长过快

    例如Mysql数据库总容量560G,根据近期3个月的磁盘监控数据分析每月的数据增长率占磁盘容量约10%(56G),当前磁盘使用率81.06%,按每月10%的增长率,当前容量2月后磁盘使用率到100%,存在磁盘满后数据库备份失败潜在风险,数据库状态只读风险。

    【分析】:查询数据库磁盘监控指标

    26dc4c93e5ba5575869f068310ae3d6d.png

    【解决方法】:建议扩容磁盘容量,扩容大小=(当前磁盘总容量)560G*10%(月数据增量率)*X(月),根据实际情况制定扩容计划(按月扩容、按季度扩容)

    【场景2】delete删除数据后磁盘空间使用率无变化

    【分析】:DELETE只是将数据标识位删除,并没有整理或者清理数据文件,当插入新数据后,会再次使用这些被置为删除标识的记录空间

    【解决方法】:innodb引擎的表通过以下方法回收空间:

    步骤一:show variables like 'innodb_file_per_table'; --返回值ON时使用步骤二、返回值OFF时使用步骤三

    步骤二:

    ALTER TABLE '表名' ENGINE=InnoDB;

    ANALYZE TABLE '表名';

    469dae82e0087ff2b689d1e0bffdd9b6.png

    步骤三、OPTIMIZE TABLE '表名';或者如图所示。

    c174ca4c1f926d97e9720ed1b55340f3.png

    步骤四:通过以下SQL命令返回结果,分析查看数据库的文件大小,分析其中可以删除的历史数据文件或无用数据文件。SELECT file_name, concat(TOTAL_EXTENTS,'M') as 'FIle_size' FROM INFORMATION_SCHEMA.FILES  order by TOTAL_EXTENTS

    d7b23556ba0827ff8f7b6717cfebfc1a.png

    注:如果您使用的delete from tablename语句清空当前表的所有记录时,建议使用truncate table tablename语句可以清空表空间、索引文件。大批量删除事务会使表长时间锁定,建议在维护时间清理空间。

    【场景3】冷数据迁移

    冷数据是对于离线类不经常访问的数据,比如企业备份数据、业务与操作日志数据、话单与统计数据怎么迁移。

    【解决方法】使用DAS工具导出功能或者mysqldump工具,将数据备份到其他服务器上。参考如下链接。

    【场景4】大事务快速生成Binlog文件,导致磁盘占满

    【分析】:查询磁盘监控指标,在1个小时内的磁盘使用率明显异常时,查询近期binglog日志文件个数及大小。

    【解决方法】修改binlog日志文件保存周期。

    【场景5】查询产生临时文件过大

    【分析】查询数据库慢日志,根据慢日志分析数据量大,行数多,响应时间长的sql语句分析这类sql查询,易产生临时文件。通过Explain解析sql的额外信息,当返回Extra字段当出现using index时,说明SQL使用覆盖索引,性能较好;而当出现 using filesort、using temporary、using where时,说明查询需要优化。

    【解决方法】应该优化SQL语句。避免频繁使用order by、group by操作,可以适当调大tmp_table_size和max_heap_table_size,但是为了减少磁盘使用而调高 tmp_table_size 和 max_heap_table_size,导致内存使用率升高不划算,因为内存资源远比磁盘资源宝贵;可以通过explain+SQL语句/或者使用DAS “SQL诊断”工具查看是否使用内部临时表,在 Extra 字段中有 Using temporary 字样的代表会使用内部临时表 例如:

    explain select*from test_table group by created_on order by default;

    2bf8cd8b444977ecd6c0eafb8fea9879.png

    【场景6】大事务未提交前产生binlog cache文件,导致磁盘满,主实例异常

    【分析】未提交事务,指开启事务后,长时间未向MySQL发出SQL执行请求或事务处理(COMMIT/ROLLBACK)请求,在系统表`information_schema`.`INNODB_TRX` 中状态为RUNNING,而在`information_schema`.`PROCESSLIST`中状态为SLEEP。

    这类问题一般产生原因都是应用一次性批量插入或者批量删除大量的数据,事务执行时间长,binglog cache缓存不足,产生大量临时缓存文件。如果一个会话(连接)里面有一个未提交事务,然后不做任何操作,那么这个线程处于SLEEP态。例如通过下列SQL语句查询当前数据库中

    SELECT t.trx_mysql_thread_id

    ,t.trx_state

    ,t.trx_tables_in_use

    ,t.trx_tables_locked

    ,t.trx_query

    ,t.trx_rows_locked

    ,t.trx_rows_modified

    ,t.trx_lock_structs

    ,t.trx_started

    ,t.trx_isolation_level

    ,p.time

    ,p.user

    ,p.host

    ,p.db

    ,p.command

    FROM   information_schema.innodb_trx t

    INNER JOIN information_schema.processlist p

    ON t.trx_mysql_thread_id = p.id

    WHERE  t.trx_state = 'RUNNING'

    AND p.time > 10

    AND p.command = 'Sleep'

    f0c419776f2c75e2539d5b196e832e28.png

    【解决方法】

    临时方法:Kill进程ID 如上图查询中事务ID,trx_mysql_thread_id=6。 即Kill 6

    长期解决方法:大事务拆分、分时、分批处理。

    展开全文
  • linux 磁盘使用率When administrating Linux systems we can found us tracking disk usage. Linux uses different partitions to store data. There are some temp files located in/tmpor different paths. Some ...
    linux 磁盘使用率

    linux 磁盘使用率

    When administrating Linux systems we can found us tracking disk usage. Linux uses different partitions to store data. There are some temp files located in /tmp or different  paths. Some applications are installed into the /opt path. So managing paths and disk usage may become hard in Linux. There are some GUI applications like KDirStat but they are useful for only GUI environments. We will look different commands in this tutorial to get disk usage.

    在管理Linux系统时,我们可以发现我们正在跟踪磁盘使用情况。 Linux使用不同的分区来存储数据。 在/ tmp或其他路径中有一些临时文件。 某些应用程序安装在/ opt路径中。 因此,在Linux中管理路径和磁盘使用情况可能会变得困难。 有一些GUI应用程序,例如KDirStat,但它们仅对GUI环境有用。 我们将在本教程中查找不同的命令以获取磁盘使用情况。

    使用df获取磁盘使用情况 (Get Disk Usage With df)

    We can simple issue df command and get disk usage in Kilobyte like below

    我们可以简单地发出df命令,并以千字节为单位获取磁盘使用情况,如下所示

    $ df     
    
    
    Get Disk Usage With df
    Get Disk Usage With df
    使用df获取磁盘使用情况

    使用df人可读格式获取磁盘使用情况(Get Disk Usage With df Human Readable Format)

    Let’s make it more readable by using gigabyte output. We will provide -h which means human readable format.

    让我们通过使用千兆字节输出使其更具可读性。 我们将提供-h ,表示人类可读格式

    $ df -h
    
    Get Disk Usage With df Human Readable Format
    Get Disk Usage With df Human Readable Format
    使用df人可读格式获取磁盘使用情况

    Information like Size, Used, Available or Usage percentage are printed in more readable format

    诸如大小,已使用,可用或使用百分比之类的信息以更具可读性的格式打印

    使用df以兆字节格式获取磁盘使用情况(Get Disk Usage With df As Megabyte Format)

    If you like the old days by out size with megabyte use below command.

    如果您喜欢过去的兆字节大小,请使用以下命令。

    $ df -m
    
    Get Disk Usage With df As Megabyte Format
    Get Disk Usage With df As Megabyte Format
    使用df以兆字节格式获取磁盘使用情况

    通过ncdu获得使用(Getting Usage With ncdu)

    ncdu is text-based disk usage viewer which can be found in Fedora,Ubuntu, Debian distributions. Sadly it is not provided by CentOS default repositories.

    ncdu是基于文本的磁盘使用情况查看器,可以在Fedora,Ubuntu和Debian发行版中找到。 遗憾的是,它不是CentOS默认存储库提供的。

    $ sudo ncdu /
    
    • We need root privilege to scan all root directory

      我们需要root特权才能扫描所有根目录
    Getting Usage With ncdu
    Getting Usage With ncdu
    通过ncdu获得使用

    And here after running ncdu we get following screen.

    在运行ncdu之后,我们得到以下屏幕。

    Getting Usage With ncdu
    Getting Usage With ncdu
    通过ncdu获得使用

    如何在Linux中获取文件系统磁盘使用率? 信息移植 (How To Get File System Disk Usage In Linux? Infografic)

    How To Get File System Disk Usage In Linux? Infografic
    How To Get File System Disk Usage In Linux? Infografic
    如何在Linux中获取文件系统磁盘使用率? 信息移植
    LEARN MORE  What Is exFAT FileSystem? Compare exFAT with FAT32 and NTFS
    了解更多什么是exFAT文件系统? 比较exFAT与FAT32和NTFS

    翻译自: https://www.poftut.com/how-to-get-file-system-disk-usage-in-linux/

    linux 磁盘使用率

    展开全文
  • Java获取磁盘使用率

    2016-03-09 21:08:14
    通过Java代码获取当前服务器磁盘使用率,对服务器磁盘实现监控,经测试在Linux与window上没问题
  • 磁盘使用情况 基于磁盘使用情况的警报-使用cron或Windows任务运行 建筑 提供了一个Makefile ,并且依赖于Docker可用 make 如果您希望避免使用Make和Docker,则可以在计算机上使用Go 1.15进行构建 go install github....
  • 线上机器一直再报 磁盘使用率大于90%,发现/var/log/下边有个mail文件,很大就直接清理掉>mail 但是这个问题反复出现,感觉一个没有什么业务的机器怎么磁盘使用率那么大 就查了下mail日志文件的形成 ps 发现有...

    线上机器一直再报 磁盘使用率大于90%,发现/var/log/下边有个mail文件,很大就直接清理掉>mail 

    但是这个问题反复出现,感觉一个没有什么业务的机器怎么磁盘使用率那么大 就查了下mail日志文件的形成

    ps 发现有好多sendmail、postdrop进程

    在网上查了下他们的关系才知道

    crond在执行脚本的时候会将脚本输出信息通过调用sendmail发邮件给系统用户,sendmail有会调用postdrop发送邮件,由于postfile服务异常邮件没有发送成功,造成sendmail  postdrop无法正常退出

     

    解决办法:

    删除sendmail,postdrop进程,是内存降下来

    ps -ef |grep 'mail'|awk -F" " '{print $2}'|xargs kill -9

    ps -ef |grep 'postdrop'|awk -F" " '{print $2}'|xargs kill -9

    关闭crond的邮件通知

    修改/etc/crontab,/etc/cron.d/0hourly中MAILTO=root修改为MAILTO=""

    crontab -e第一行增加一段MAILTO=""

     

    修改crontab -e 遇到No space left on device

    df -h 发现磁盘使用没有问题

    df -i 发现/var下磁盘的inode使用量100%

    find */ ! -type l | cut -d / -f 1 | uniq -c 发现/var/spool/postfix/maildrop有好多文件,这些文件就是sendmail发送失败,堆积在maildrop中

    清理掉这个目录 发现sendmail,postdrop进程又出现了 然后重启crond,观察没有再出现

    df -h显示磁盘占用是没有问题;但是df -i显示磁盘inode资源占用完。

    inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。

    这种情况的原因通常是:尽管那个分区的磁盘占用率未满,但是inode已经用完,应该是该磁盘的某些目录下存在大量的小文件导致。尽管小文件占用的磁盘空间并不大,但是数量太多,inode用尽。

     

    展开全文
  • 要检查磁盘的使用情况确定程序放哪个服务器和清理垃圾,所以写个小程序帮忙检查。本文给大家介绍C#检查远程或本地磁盘使用率的相关知识,感兴趣的朋友一起学习吧
  • 本篇博客主要说明使用java程序如何获取liunx系统中的cpu使用率、内存使用率以及磁盘使用率,效果图如下: 1.创建三个实体类,分别为cpu、内存以及磁盘相关信息: cpu相关信息实体 package ...
  • 云数据库 RDS 磁盘使用率计算方法和处理方案用户在使用 MySQL 实例时,会遇到空间使用告警甚至超过实例限额被锁定的情况。用户可以在云数据库 RDS 控制台的实例基本信息中,查看磁盘使用率,如下图所示。当云数据库 ...
  • linux磁盘使用率查询

    2016-02-29 10:55:41
    查看磁盘使用率 df -h 查看当前目录磁盘使用率,各个文件夹使用率 du -h --max-depth=1

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,918
精华内容 1,967
关键字:

磁盘使用率