查看操作系统

cat /etc/os-release

检查输出中的关键字段

NAME="CentOS Linux"
ID="centos"

查看CPU

CPU占用 top

图中红色部分即为占用百分率,下面是每个进程的CPU占用率,如果服务器是多核CPU可能在下方看到有些进程CPU占用超过100%,这种一般是该进程使用了多核。

直接在命令行输入top即可查看CPU占用,效果演示如下:

top

其中:

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

  • PID - 进程标示号
  • USER - 进程所有者
  • PR - 进程优先级
  • NI - 进程优先级别数值
  • VIRT - 进程占用的虚拟内存值
  • RES - 进程占用的物理内存值
  • SHR - 进程使用的共享内存值
  • S - 进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死
  • %CPU - 进程占用的CPU使用率
  • %MEM - 进程占用的物理内存百分比
  • TIME+ - 进程启动后占用的总的CPU时间
  • Command - 进程启动的启动命令名称

查看CPU 架构

uname -m

查看CPU核数

lscpu

  • CPU(s): 16
    表示系统总逻辑线程数为 ‌16‌(即操作系统可见的“虚拟CPU”数量)。

  • Thread(s) per core: 1
    每个物理核心仅对应 ‌1 个线程‌,说明 ‌未启用超线程技术‌(若为2,则启用超线程)。

  • Core(s) per socket: 2
    每个物理 CPU(插槽)包含 ‌2 个物理核心‌。

  • Socket(s): 8
    系统共有 ‌8 个物理 CPU 插槽‌。

核数计算公式

  • 总物理核数‌ = 每个插槽的核数 × 插槽数
    2 cores/socket × 8 sockets = 16

  • 总逻辑线程数‌ = 物理核数 × 每核线程数
    16 cores × 1 thread/core = 16
    (与 CPU(s): 16 一致,验证计算正确)

查看内存占用 free

free的使用

free -h

直接在命令行输入free即可查看CPU占用,效果演示如下:

可以查看到内存的使用、空闲、缓存空间、交换空间的使用情况等

free的其他参数使用

可以看到上面展示的效果并不适合人类来阅读,因为你看到这个数字是没有直观的反馈的。好吧,作为最人性化设计的linux总会给你留一手的,下面我们看看其他参数:

  • -b, --bytes :字节为单位显示
  • -k, --kilo:以kb为单位显示
  • -m, --mega:以M为单位显示
  • -g, --giga:以G为单位显示
  • -h, --human:自动匹配人类可读并且合适的单位显示 推荐选用这个参数

我来逐项解释:

total (30Gi)
系统物理内存总量,由硬件决定,计算公式:
total = 物理内存芯片容量总和

used (3.7Gi)
已分配内存总量,计算公式:
used = total - free - buff/cache
本例验证:30Gi - 11Gi - 14Gi = 5Gi(与3.7Gi存在差值,详见说明)
说明‌:部分系统会将 shared 内存计入 used,导致计算偏差‌

free (11Gi)
完全未被使用的物理内存,直接来自内核统计

shared (2.3Gi)
进程共享内存量

buff/cache (14Gi)
内核缓存和缓冲区总和

available (23Gi)
实际可用内存量,核心计算公式:
available = free + 可回收的buff/cache部分
本例中:11Gi free + 约12Gi可回收缓存 = 23Gi‌

Swap (全0B)
未启用交换空间,所有值均为0‌ ‌


查看磁盘使用情况 df

df -Th --total

df(disk free)命令用来查看系统磁盘空间使用情况

参数:

  • -h:(可读性)显示单位,换算单位1024字节
  • -H:(可读性)显示单位,换算单位1000字节
  • -k:以KB为单位,显示磁盘大小
  • -m:以MB为单位,显示磁盘大小
  • --total:汇总
  • -i:列出inode信息而非块使用量
  • -T:显示文件系统类型
  • -t:查看指定文件类型的磁盘使用情况,如 df -t tmpfs
  • -x:查看处指定文件类型外的磁盘使用情况,即 -t 的反选。
  • -a:显示所有文件系统

一、字段解释

不加参数默认显示所有磁盘占用情况,不显示单位。

 字段从左到右依次是:

  • Filesystem:磁盘使用的文件系统
  • 1K-blocks:磁盘的总内存,以1K为单位(1K=1024字节)
  • Used:已使用的内存
  • Available:可用内存
  • Use%:磁盘使用百分比
  • Mounted on:磁盘文件系统的挂载点

二、显示单位

df -h 以容易阅读的格式显示大小单位,自动转换为 G(千兆字节)、M(兆字节)、K(千字节)。

也是工作中,最常用的一种方式。

也可以显示详细信息,加个T参数

df -H 和 df -h 很像,不同的是,-h 每1024字节转化为1KB,-H 每1000字节转化为1KB。

df -k 以K为单位显示文件大小,但不显示单位,也就是默认的显示格式。注:1K=1-24字节

df -m 以M为单位显示文件大小,但不显示单位。注:1M=1024K=1048576字节

三、汇总显示

df --total 可以汇总磁盘的使用情况,在最下方插入一行,显示每一列的总和。

四、指定目录

查看指定目录的挂载点和所在磁盘的使用情况。

比如:df -h /root 查看/root 目录挂载到哪个磁盘,及磁盘的使用情况。

五、指定显示字段

自定义结果输出的字段,字段名之间使用逗号分隔。

例:只显示文件系统、使用百分比、挂载点这三个字段 df --output=source,pcent,target

可选择的字段有:‘source’, ‘fstype’, ‘itotal’, ‘iused’, ‘iavail’, ‘ipcent’, ‘size’, ‘used’, ‘avail’, ‘pcent’, ‘file’ and ‘target’

六、du和df结果不一样

du 和 df 命令都可以查看磁盘使用情况,但有些时候两者的查询结果会不一样,比如:

df -h 显示/boot磁盘使用了145M

进入/boot目录后,du -sh显示只用了113M

du 基于文件获取数据,可以跨分区;
df 基于分区的块信息获取数据,只能针对整个分区;

当用户删除文件后,du将无法获取这些文件的数据,这个时候,如果还有进程持有被删除文件的句柄,文件就不会被真正的删除,分区的块信息就还保存文件信息,df 统计的时候也会算上这个文件的磁盘占用空间。

lsof 可以查看这种被删除状态的文件,也就是 deleted 状态。
进入/boot目录,lsof | grep deleted 查看 deleted 状态的文件。

kill PID 结束进程或重启对应的服务。
重启服务器也会结束进程,释放掉被删除文件的句柄。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐