内存、磁盘、CPU相关命令

参考

Linux中 du (详解)、 df (详解)和 free(详解)以及它们的区别_“花花”公子_龙的博客-CSDN博客_df du

Linux中top命令参数详解_yjclsx的博客-CSDN博客_top命令

查看Linux系统内存、CPU、磁盘使用率和详细信息 - 阿小杜 - 博客园

内存

1.free

free  可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。

(1)命令格式:

        free [参数]

(2)命令功能:

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

(3)命令参数:

        -b  以Byte为单位显示内存使用情况。 

        -k  以KB为单位显示内存使用情况。 

        -m  以MB为单位显示内存使用情况。

        -g   以GB为单位显示内存使用情况。 

        -o  不显示缓冲区调节列。 

        -s<间隔秒数>  持续观察内存使用状况。 

        -t  显示内存总和列。 

        -V  显示版本信息。 

(4)输出解释

frilab@fri-ml-server:~$ free -g
              total        used        free      shared  buff/cache   available
Mem:             62          12           2           0          47          49
Swap:             7           0           7

        Mem:内存的使用情况总览表(物理内存)

        Swap:虚拟内存。即可以把数据存放在硬盘上的数据

        shared:共享内存,即和普通用户共享的物理内存值

        buffers:用于存放要输出到disk(块设备)的数据的

        cached:存放从disk上读出的数据

        total:机器总的物理内存

        used:用掉的内存

        free:空闲的物理内存

        cache:系统分配但未被使用的cache数量(cache是cpu和内存之间的,buffer是内存和磁盘之间的,都是为了解决速度不对等的问题。
        缓存(cache)是把读取过来的数据保存起来,重新读取时若命中,就不去硬盘了,若没有命中就去读硬盘,其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读取的内容不断往后排,直至从中删除。
        缓冲(buffer)时根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的的反复寻道,从而提高系统性能,linux有一个守护进程定期清空缓冲内容(即写入磁盘)。(buffer是即将要写入磁盘的,而cache是被从磁盘中读出来的。)
        available:和free是有区别的,是实际可以用的最大空间。是应用程序认为可用内存数量,available = free + buff/cache (注:只是大概的计算方法)Linux 为了提升读写性能,会消耗一部分内存资源缓存磁盘数据,对于内核来说,buffer 和 cache 其实都属于已经被使用的内存。但当应用程序申请内存时,如果 free 内存不够,内核就会回收 buffer 和 cache 的内存来满足应用程序的请求。这就是稍后要说明的 buffer 和 cache。

注:物理内存(total)=系统看到的用掉的内存(used)+系统看到空闲的内存(free)

2. top

top实时显示系统中各个进程的资源占用情况。

(1)命令格式

         top [-d number] | top [-bnp]

(2)命令参数

        -d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。 -b:以批次的方式执行top。 -n:与-b配合使用,表示需要进行几次top命令的输出结果。 -p:指定特定的pid进程号进行观察。

        在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):

        ?:显示在top当中可以输入的命令【注:大写字母  】

        P:以CPU的使用资源排序显示 M:以内存的使用资源排序显示 N:以pid排序显示 T:由进程使用的时间累计排序显示 k:给某一个pid一个信号。可以用来杀死进程 r:给某个pid重新定制一个nice值(即优先级) q:退出top。

        在top基本视图中,按键盘数字“1”可以监控每个逻辑CPU的状况; 敲击键盘‘x’(打开/关闭排序列的加亮效果);敲击键盘‘b’(打开关闭运行态进程的加亮效果)

        用ctrl+c也可以退出top。

(3)输出内容

top - 10:27:50 up 201 days, 18:07,  2 users,  load average: 1.23, 1.09, 1.02
Tasks: 908 total,   1 running, 726 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.8 us,  1.3 sy,  0.0 ni, 95.4 id,  0.0 wa,  0.0 hi,  0.5 si,  0.0 st
KiB Mem : 65622940 total,  1967308 free, 13326808 used, 50328824 buff/cache
KiB Swap:  8388604 total,  8380656 free,     7948 used. 51702960 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                        
32104 999       20   0 2560284 221456  20640 S  72.8  0.3   4246:24 mysqld                                                                                                                                         
31293 root      20   0  702760   8208   2624 S  33.1  0.0   1811:00 docker-proxy                                                                                                                                   
 3163 root      20   0 20.744g 314620  18820 S  19.7  0.5   1289:46 java                                                                                                                                                      

      

top前5行统计信息
 

第1行:top - 05:43:27 up 4:52, 2 users, load average: 0.58, 0.41, 0.30。 第1行是任务队列信息,其参数如下:

内容含义
05:43:27表示当前时间
up 4:52系统运行时间 格式为时:分
2 users当前登录用户数
load average: 0.58, 0.41, 0.30系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
        

        第2行:Tasks: 159 total, 1 running, 158 sleeping, 0 stopped, 0 zombie ;第3行:%Cpu(s): 37.0 us, 3.7 sy, 0.0 ni, 59.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st ;第2、3行为进程和CPU的信息 ;当有多个CPU时,这些内容可能会超过两行,其参数如下:

内容含义
159 total进程总数
1 running正在运行的进程数
158 sleeping睡眠的进程数
0 stopped停止的进程数
0 zombie僵尸进程数
37.0 us用户空间占用CPU百分比
3.7 sy内核空间占用CPU百分比
0.0 ni用户进程空间内改变过优先级的进程占用CPU百分比
59.3 id空闲CPU百分比
0.0 wa等待输入输出的CPU时间百分比
0.0 hi硬中断(Hardware IRQ)占用CPU的百分比
0.0 si软中断(Software Interrupts)占用CPU的百分比
0.0 st
 

第4行:KiB Mem: 1530752 total, 1481968 used, 48784 free, 70988 buffers ;第5行:KiB Swap: 3905532 total, 267544 used, 3637988 free. 617312 cached Mem ;第4、5行为内存信息 
其参数如下:

内容含义
KiB Mem: 1530752 total物理内存总量
1481968 used使用的物理内存总量
48784 free空闲内存总量
70988 buffers(buff/cache)用作内核缓存的内存量
KiB Swap: 3905532 total交换区总量
267544 used使用的交换区总量
3637988 free空闲交换区总量
617312 cached Mem缓冲的交换区总量。
3156100 avail Mem代表可用于进程下一次分配的物理内存数量


 

进程信息 

列名含义
PID进程id
PPID父进程id
RUSERReal user name
UID进程所有者的用户id
USER进程所有者的用户名
GROUP进程所有者的组名
TTY启动进程的终端名。不是从终端启动的进程则显示为 ?
PR优先级
NInice值。负值表示高优先级,正值表示低优先级
P最后使用的CPU,仅在多CPU环境下有意义
%CPU上次更新到现在的CPU时间占用百分比
TIME进程使用的CPU时间总计,单位秒
TIME+进程使用的CPU时间总计,单位1/100秒
%MEM进程使用的物理内存百分比
VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP进程使用的虚拟内存中,被换出的大小,单位kb
RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE可执行代码占用的物理内存大小,单位kb
DATA可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR共享内存大小,单位kb
nFLT页面错误次数
nDRT最后一次写入到现在,被修改过的页面数。
S进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
COMMAND命令名/命令行
WCHAN若该进程在睡眠,则显示睡眠中的系统函数名
Flags任务标志

CPU

 查看cpu信息(信息记录在/proc/cpuinfo中)

 总核数 = 物理CPU个数 X 每颗物理CPU的核数

总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

【补充wc、sort、uniq、cut命令】 

wc

        Linux wc命令用于计算字数。

        利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。

语法

   wc [-clw][--help][--version][文件...]

参数

  • -c或--bytes或--chars 只显示Bytes数。
  • -l或--lines 显示行数。
  • -w或--words 只显示字数。
  • --help 在线帮助。
  • --version 显示版本信息。

sort

        sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。

参数

  • -b 忽略每行前面开始出的空格字符。
  • -d 排序时,对英文字母、数字及空格字符进行排序,忽略其他的字符
  • -u 意味着是唯一的(unique),输出的结果是去完重了的。
  • -o<输出文件> 将排序后的结果存入指定的文件
  • -t<分隔字符> 指定排序时所用的栏位分隔字符。例如:-t*  以*分隔字符 ,分成多列,然后+ 或-k指定按照第几列排序,列数从1开始计数。
  • +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
  • [-k field1[,field2]] 按指定的列进行排序

示例:

frilab@fri-ml-server:~$ sort one 

a
b
cd
se
 
sort 命令将以默认的方式将文本文件的第一列以 ASCII 码的次序排列,并将结果输出到标准输出。
,使用-t指定分隔符,使用 -k 参数设置对第二列的值进行重排,结果如下:

(1)文件内容
frilab@fri-ml-server:~$ cat one 
b-3
a-2
cd-1
se-0

(2)指定分隔符、指定排序列数
frilab@fri-ml-server:~$ sort -t- -k 2 one 

se-0
cd-1
a-2
b-3

uniq

  uniq命令可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

语法

        uniq [-icu]  [输入文件][输出文件]

选项与参数:

  • -i :忽略大小写字符的不同;
  • -c :进行计数
  • -u :只显示唯一的行
  • [输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
  • [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)

cut

cut命令可以从一个文本文件或者文本流中提取文本列。

语法

         cut -d'分隔字符' -f fields <==用于有特定分隔字符

参数

  • -d :后面接分隔字符。与 -f 一起使用;
  • -f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思,去除多段时,逗号分隔。
(1)PATH变量值 
frilab@fri-ml-server:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/java/jdk1.8.0_231/bin

(2)分号分隔 去除3 5位的字符【序号从1开始计数】
frilab@fri-ml-server:~$ echo $PATH | cut -d ':' -f 3,5
/usr/sbin:/sbin
frilab@fri-ml-server:~$ 

查看虚拟机逻辑CPU的个数

# cat /proc/cpuinfo| grep "processor"| wc -l
[root@localhost ~]# cat /proc/cpuinfo| grep "processor"| wc -l
6

 查看物理CPU个数

# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

[root@localhost ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
1

列出CPU详细信息

# lscpu

frilab@fri-ml-server:~$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              32
On-line CPU(s) list: 0-31
Thread(s) per core:  2
Core(s) per socket:  8
Socket(s):           2
NUMA node(s):        2
Vendor ID:           GenuineIntel
CPU family:          6
Model:               85
Model name:          Intel(R) Xeon(R) Silver 4110 CPU @ 2.10GHz
Stepping:            4
CPU MHz:             2100.116
BogoMIPS:            4200.00
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            1024K
L3 cache:            11264K

 磁盘

du 

作用

        显示每个文件和目录的磁盘使用空间~~~文件的大小。

命令参数

        -a   #显示目录中文件的大小  单位 KB 。

        -b  #显示目录中文件的大小,以字节byte为单位。

        -c  #显示目录中文件的大小,同时也显示总和;单位KB。

        -k 、 -m  、#显示目录中文件的大小,-k 单位KB,-m 单位MB.

        -s  #仅显示目录的总值,单位KB。

        -h  #以K  M  G为单位显示,提高可读性~~~(最常用的一个~也可能只用这一个就满足需求了)

        -x  #以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 

        -L   #显示选项中所指定符号链接的源文件大小。   

        -S   #显示个别目录的大小时,并不含其子目录的大小。 

        -X   #在<文件>指定目录或文件。   

        --exclude=<目录或文件>    #略过指定的目录或文件。    

        -D   #显示指定符号链接的源文件大小。   

        -H或--si                 #与-h参数相同,但是K,M,G是以1000为换算单位。   

        -l   #重复计算硬件链接的文件。

df

作用:显示磁盘分区上还没有使用可使用的磁盘空间

这里只记住两个参数就好:

        -a    #查看全部文件系统,单位默认KB

        -h   #使用-h选项以KB、MB、GB的单位来显示,可读性高~~~(最常用)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fang·up·ad

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值