Glances服务器硬件资源监控工具

【一、安装部署运行】

docker pull nicolargo/glances:latest-ful

#常规启动,启动后可以通过接口和界面访问

docker run -d --name glances --restart always -p 61208:61208 -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /:/host/root:ro --pid host nicolargo/glances:latest-full glances -w

#仅允许通过接口访问

docker run -d --name glances --restart always -p 61208:61208 -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /:/host/root:ro --pid host nicolargo/glances:latest-full glances -w --disable-webui

docker logs -f glances

显示以下信息代表正常

INFO: Started server process [8952]

INFO: Waiting for application startup.

INFO: Application startup complete.

INFO: Uvicorn running on http://0.0.0.0:61208 (Press CTRL+C to quit)

【二、接口识别/列表】

如何查看可以调用的接口

docker exec -it glances /bin/sh

#进入容器后使用以下命令

glances --api-restful-doc

常见接口调用:

查看全部信息:http://X.X.X.X:61208/api/4/all

查看常见数据:http://X.X.X.X:61208/api/4/all/limits

【三、常见接口调用与字段解析】

{查看CPU信息}

http://X.X.X.X:61208/api/4/cpu

{

"total": 5.5,

"user": 4.4,

"nice": 0.0,

"system": 1.0,

"idle": 91.5,

"iowait": 3.0,

"irq": 0.0,

"steal": 0.0,

"guest": 3.9,

"ctx_switches": 84267,

"interrupts": 98513,

"soft_interrupts": 6363,

"syscalls": 0,

"cpucore": 64,

"time_since_update": 3.9991424083709717,

"ctx_switches_gauge": 217098744566,

"ctx_switches_rate_per_sec": 21071.0,

"interrupts_gauge": 250352638733,

"interrupts_rate_per_sec": 24633.0,

"soft_interrupts_gauge": 12115954109,

"soft_interrupts_rate_per_sec": 1591.0,

"syscalls_gauge": 0,

"syscalls_rate_per_sec": 0

}

字段名 中文含义 具体解释

total CPU 总使用率 所有非空闲状态的 CPU 资源占比,当前为 5.5%,代表 CPU 整体负载较低。

user 用户态使用率 CPU 执行用户应用程序(如浏览器、办公软件)的资源占比,当前为 4.4%。

nice 低优先级用户态使用率 CPU 执行 "nice 值调整后" 的低优先级用户进程的占比,当前 0% 表示无此类进程。

system 系统态使用率 CPU 执行操作系统内核任务(如进程调度、硬件驱动)的资源占比,当前为 1.0%。

idle 空闲率 CPU 无任务可执行的空闲状态占比,当前 91.5%,空闲率越高说明 CPU 越空闲。

iowait IO 等待率 CPU 等待磁盘 / 网络等 IO 设备响应的时间占比,当前 3.0%,过高可能表示 IO 设备卡顿。

irq 硬中断处理率 CPU 处理硬件中断(如键盘输入、磁盘 IO 请求)的时间占比,当前 0% 表示无硬中断。

steal 虚拟化抢占率 虚拟化环境中,CPU 被其他虚拟机 "抢占" 的时间占比,当前 0% 表示无抢占。

guest 虚拟机进程使用率 CPU 执行虚拟机(如 VMware、KVM)进程的时间占比,当前 3.9% 表示有虚拟机在运行。

ctx_switches 累计上下文切换次数 从系统启动到当前,CPU 在不同进程 / 线程间切换的总次数,当前为 84267 次。

interrupts 累计硬中断次数 从系统启动到当前,CPU 接收并处理的硬件中断总次数,当前为 98513 次。

soft_interrupts 累计软中断次数 从系统启动到当前,CPU 处理的软件中断(如网络数据包处理)总次数,当前 6363 次。

syscalls 累计系统调用次数 从系统启动到当前,用户进程向内核发起的系统调用总次数,当前 0 可能为统计延迟。

cpucore CPU 核心数 当前系统的 CPU 物理核心数(含超线程),当前为 64 核,核心数越多支持并发能力越强。

time_since_update 数据更新间隔时间 本次采集与上次采集的时间差,当前约 4 秒,代表数据每 4 秒刷新一次。

ctx_switches_gauge 上下文切换累计总量 更精确的上下文切换累计值(单位:次),当前为 217098744566 次,与ctx_switches可能因统计精度略有差异。

ctx_switches_rate_per_sec 上下文切换速率 每秒 CPU 切换进程 / 线程的次数,当前 21071 次 / 秒,过高可能表示进程过多导致频繁切换。

interrupts_gauge 硬中断累计总量 更精确的硬中断累计值(单位:次),当前为 250352638733 次。

interrupts_rate_per_sec 硬中断速率 每秒 CPU 处理的硬件中断次数,当前 24633 次 / 秒,需结合硬件设备判断是否正常。

soft_interrupts_gauge 软中断累计总量 更精确的软中断累计值(单位:次),当前为 12115954109 次。

soft_interrupts_rate_per_sec 软中断速率 每秒 CPU 处理的软件中断次数,当前 1591 次 / 秒,网络密集型应用此值会偏高。

syscalls_gauge 系统调用累计总量 更精确的系统调用累计值(单位:次),当前为 0,可能因采集机制未统计到。

syscalls_rate_per_sec 系统调用速率 每秒用户进程发起的系统调用次数,当前 0 次 / 秒,需结合实际应用判断是否正常。

{查看内存的信息}

http://X.X.X.X:61208/api/4/mem

{

"total": 271444738048,

"available": 20059586560,

"percent": 92.6,

"used": 251385151488,

"free": 20982136832,

"active": 203548852224,

"inactive": 42272423936,

"buffers": 949813248,

"cached": 36160274432,

"shared": 197394432

}

total 总内存容量 系统物理内存的总大小,包含所有可被系统使用的内存(不含硬件预留部分)。 约 271GB(271444738048 Byte ÷ 1024³),内存配置较高。

available 可用内存容量 系统当前可立即分配给新应用的内存,包含空闲内存 + 可回收的缓存 / 缓冲。 约 20GB(20059586560 Byte ÷ 1024³),当前可用内存较少。

percent 内存使用率 已使用内存占总内存的百分比,计算公式为 (1 - available/total) × 100%。 当前 92.6%,使用率偏高,需关注是否有内存泄漏或资源占用过高的进程。

used 已使用内存 已被应用、系统内核、缓存等占用的内存总量,不含完全空闲的内存。 约 251GB(251385151488 Byte ÷ 1024³),与total - free结果一致。

free 完全空闲内存 未被任何进程、缓存、缓冲占用的 "纯空闲" 内存,系统可直接分配给新进程。 约 20.9GB(20982136832 Byte ÷ 1024³),空闲内存量较低。

active 活跃内存 正在被进程积极使用的内存(如应用程序的代码、数据),系统不会轻易回收。 约 203.5GB(203548852224 Byte ÷ 1024³),占比高说明当前运行的应用对内存依赖强。

inactive 非活跃内存 曾被进程使用但当前未活跃的内存(如关闭的应用残留数据),系统可回收复用。 约 42.2GB(42272423936 Byte ÷ 1024³),存在一定可回收空间。

uffers 缓冲内存 用于存储磁盘 IO 的临时数据(如文件系统元数据、未写入磁盘的临时数据),可快速回收。 约 949MB(949813248 Byte ÷ 1024²),缓冲占用较低,磁盘 IO 压力小。

cached 页缓存内存 用于缓存已读取的文件内容(如应用程序、文档),下次读取可直接从内存获取,可回收。 约 36.1GB(36160274432 Byte ÷ 1024³),缓存占用较高,可提升文件读取速度。

shared 共享内存 多个进程可共同访问的内存区域(如共享库、进程间通信数据),避免内存重复存储。 约 197MB(197394432 Byte ÷ 1024²),共享内存占用低,进程间数据交互少。

{查看磁盘的信息}

http://X.X.X.X:61208/api/4/fs

{ "device_name": "/dev/sda", "fs_type": "ext4", "mnt_point": "/host/root/run/media/root/a019d8e4-8fcd-4060-8105-5d3eea71357f", "options": "rw,nosuid,nodev,relatime,errors=remount-ro", "size": 471495155712, "used": 114679808, "free": 447358500864, "percent": 0.0, "key": "mnt_point" }, { "device_name": "/dev/sdb", "fs_type": "xfs", "mnt_point": "/host/root/boot", "options": "rw,relatime,attr2,inode64,noquota", "size": 1063256064, "used": 536371200, "free": 526884864, "percent": 50.4, "key": "mnt_point" }

字段名 中文含义 具体解释 单位

device_name 设备名称 磁盘分区或存储设备的系统标识(如/dev/sda为第一块 SATA 硬盘,/dev/mapper为 LVM 逻辑卷)。 -

fs_type 文件系统类型 分区格式化时使用的文件系统格式(如xfs、ext4适合大容量存储,vfat用于兼容 Windows)。 -

mnt_point 挂载点 该分区在系统中的访问路径(如/host/root为根目录相关分区,/boot为启动分区)。 -

options 挂载参数 挂载时的配置选项,反映分区的读写权限和特性:

  • ro:只读模式(不可写入);

  • rw:读写模式(可写入);

  • relatime:相对时间戳记录(优化性能);

  • noquota:不启用磁盘配额。 -

size 总容量 该分区的总存储空间大小(包含已用和未用部分)。 字节(Byte)

used 已用空间 该分区中已被文件、目录占用的存储空间。 字节(Byte)

free 空闲空间 该分区中尚未使用的剩余存储空间(size - used)。 字节(Byte)

percent 使用率 已用空间占总容量的百分比(used/size × 100%),反映分区拥挤程度。 %

key 索引键 用于标识该对象的唯一索引方式,此处均为mnt_point(按挂载点区分)。

{查看磁盘信息}

http://X.X.X.X:61208/api/4/network

{ "bytes_sent": 44295, "bytes_recv": 1052, "speed": 10485760000, "key": "interface_name", "interface_name": "eth0", "alias": null, "bytes_all": 45347, "time_since_update": 2.6495862007141113, "bytes_recv_gauge": 1061573, "bytes_recv_rate_per_sec": 397.0, "bytes_sent_gauge": 52289229, "bytes_sent_rate_per_sec": 16717.0, "bytes_all_gauge": 53350802, "bytes_all_rate_per_sec": 17114.0 }, { "bytes_sent": 100, "bytes_recv": 100, "speed": 0, "key": "interface_name", "interface_name": "lo", "alias": null, "bytes_all": 200, "time_since_update": 2.6495862007141113, "bytes_recv_gauge": 28654, "bytes_recv_rate_per_sec": 37.0, "bytes_sent_gauge": 28654, "bytes_sent_rate_per_sec": 37.0, "bytes_all_gauge": 57308, "bytes_all_rate_per_sec": 75.0 }

字段名 中文含义 具体解释 单位

bytes_sent 发送字节数 本次采集周期内,接口发送的总数据量(不含历史累计)。 字节(Byte)

bytes_recv 接收字节数 本次采集周期内,接口接收的总数据量(不含历史累计)。 字节(Byte)

bytes_all 总字节数(收发合计) 本次采集周期内,接口发送 + 接收的总数据量(bytes_sent + bytes_recv)。 字节(Byte)

time_since_update 数据更新间隔时间 本次采集与上次采集的时间差,用于计算实时速率(如 2.65 秒)。 秒(s)

字段名 中文含义 具体解释

interface_name 接口名称 网络接口的系统标识:

  • eth0:通常为第一块物理以太网网卡;

  • lo:本地回环接口(用于系统内部通信)。

alias 接口别名 接口的自定义名称(如 "业务网卡"),当前为null表示未设置别名。

key 索引键 用于标识接口的唯一索引方式,此处为interface_name(按接口名区分)。

speed 接口速率上限 接口支持的最大传输速率(硬件理论值):

  • 10485760000 字节 / 秒 ≈ 10Gbps(eth0为 10G 网卡);

  • 0 表示无上限(lo为虚拟接口)。

字段名 中文含义 具体解释 单位

bytes_recv_gauge 累计接收字节数 从系统启动到当前,接口接收的总数据量(历史累计值)。 字节(Byte)

bytes_recv_rate_per_sec 接收速率 每秒接收的数据量(实时速度),由bytes_recv / time_since_update计算。 字节 / 秒(B/s)

bytes_sent_gauge 累计发送字节数 从系统启动到当前,接口发送的总数据量(历史累计值)。 字节(Byte)

bytes_sent_rate_per_sec 发送速率 每秒发送的数据量(实时速度),由bytes_sent / time_since_update计算。 字节 / 秒(B/s)

bytes_all_gauge 累计总字节数(收发合计) 从系统启动到当前,接口收发的总数据量(bytes_recv_gauge + bytes_sent_gauge)。 字节(Byte)

bytes_all_rate_per_sec 总速率(收发合计) 每秒收发的总数据量(bytes_recv_rate_per_sec + bytes_sent_rate_per_sec)。 字节 / 秒(B/s)

换算成Mbps的公式: bytes_all_rate_per_sec * 8 / 1000000

相关推荐
whowin2 年前
在ubuntu上检查内存使用情况的九种方法
ubuntu·监视内存·smem·nmon·glances