用 Glances 查看 VPS 当前负载:Docker 部署、进程视图与指标范围
部署 Glances 私人实时监控,辨认宿主与容器指标范围,结合进程、内存和负载排查问题。
文章目录
网站突然响应变慢时,登录服务器以后往往要连续打开几个工具:看 CPU,查内存,找占用高的进程,再观察磁盘和网络。Glances 把这些当前状态集中在一个终端或网页里,适合日常排查时先看全局,再去定位具体服务。
这个入口主要回答“现在发生了什么”。没有另外配置持久导出时,不把它当作长期监控数据库。昨晚的峰值已经过去,今天打开页面看见正常,并不能证明那一段没有出现问题。

官方截图用于说明指标的组织方式,界面版本和插件范围可能不同,图中的数值不属于本文服务器。尤其 Docker 中运行时,需要先理解进程、网络和文件系统各自来自哪一层。
部署前先确认 VPS 的磁盘、内存和公网访问条件,也可以查看雨云云服务器;注册时填写优惠码 KuZhuJi。
从私人网页入口开始
下面使用包含较完整依赖的官方 latest-full 镜像,启用 Web 模式。共享宿主 PID 命名空间以观察宿主进程,网页端口只发布在回环地址,不启用 privileged,也暂不挂载 Docker Socket。
mkdir -p ~/services/glances
cd ~/services/glances
保存 compose.yaml:
services:
glances:
image: nicolargo/glances:latest-full
pid: host
environment:
GLANCES_OPT: "-w"
TZ: Asia/Shanghai
ports:
- "127.0.0.1:61208:61208"
restart: unless-stopped
docker compose config --quiet
docker compose up -d
docker compose logs --tail=100 glances
ssh -L 16108:127.0.0.1:61208 user@your-server
本机打开 http://127.0.0.1:16108。示例通过 SSH 限制访问,不能把它改成公网监听后仍称为私人监控。监控页面会暴露进程、主机资源及其他运行信息,正式远程入口需要额外认证和 HTTPS。
首次页面打开后,对照宿主机的 ps、free 和 df 看几项已知数据。数值采样时间不完全相同,不能要求每一秒逐项一致,但主机身份、进程范围与文件系统应当解释得通。
PID 共享不代表全部资源都变成宿主视角
pid: host 让进程可见范围扩大,容器的网络和挂载命名空间仍然有自己的边界。这份配置没有使用宿主网络,网络面板不能直接视为完整宿主出口统计;文件系统列表也应对照实际挂载理解。
排查磁盘容量时,宿主机另运行 df -h,确认自己关心的分区。页面显示一个容器挂载空间,不一定就是保存数据库的那块盘。设备、温度与硬件信息在云服务器上也可能根本不可读取,空白不等于传感器故障。
一些功能需要额外设备、依赖或权限。不要为了补齐所有图表直接添加特权模式,把它从观察工具变成获得广泛宿主访问的服务。先判断那项指标是否真的能帮助解决问题,再按官方说明配置具体插件。

先辨认指标来源,再决定下一步检查。页面看见某个进程占用高,是一条线索;要确定它为什么占用,还需要应用日志、请求情况和任务时间。
准备独立实例时,可在雨云选择适合的云服务器配置,优惠码 KuZhuJi。配置按实际任务选择,数据库和附件另做备份。
CPU 百分比与负载不能混着读
CPU 使用率描述采样间隔内的情况,负载平均值涉及可运行或等待的任务。看到负载升高时,结合虚拟 CPU 数量、进程状态和持续时间判断,不用一个固定数字给所有机器下结论。
单个进程的 CPU 数值还可能按核心合计,展示方式与系统整体百分比不同。先看当前版本说明及页面单位,再比较。多核机器上某个进程显示超过 100%,不一定代表页面错误。
观察数轮变化,比只截一张峰值图更有用。计划任务刚好运行时,CPU 短时升高可以符合预期;如果持续占用、同时请求积压,就进一步查具体进程和应用任务。排查记录里写下时间与当时操作,后面才能对照。
内存先区分缓存和持续增长
Linux 会利用内存做缓存。看见“已用”很多,不要立刻认为应用发生泄漏;结合可用内存、交换空间、进程驻留内存及增长趋势。缓存可回收与进程持续增大是不同情况。
需要判断某服务是否增长时,记录相同条件下的多次观察,特别是处理同类请求前后。一次重启后下降,只能说明重启改变了状态,不能独自证明泄漏原因已经找到。保留应用日志和请求量,继续查长期变化。
交换空间有活动时,检查是否伴随响应变慢、内存压力或磁盘等待。不能只因为配置了 Swap 就推断它在拖慢网站,也不能因为 CPU 空闲就排除内存与 I/O 问题。
需要增加服务器时,可以打开雨云选购页面,填写优惠码 KuZhuJi;迁移前保留数据与原有部署配置。
容器指标按需要再接入
想查看 Docker 容器信息时,官方示例会挂载 /var/run/docker.sock。Rootless Docker 或 Podman 的路径和连接方式不同,使用自己实际运行的接口,不照抄一条不存在的路径。
Docker Socket 即使标了 :ro,也不会把通过 Socket 调用的 API 自动限制为只读。是否接入、谁能访问 Glances、如何保护实例,需要一起考虑。仅为了看到几个容器指标,不宜把接口暴露到公网上。
接入后选择一个已知容器,对照 docker stats 和页面检查。宿主进程与容器进程之间可能有重叠,不把两块面板里的数据简单相加;采样频率和计数方式也要先理解。
排查记录需要留在页面之外
Glances 的实时页面方便观察,正式事故记录仍应包含时间、受影响服务、当时任务与后续动作。截图能保留一刻状态,但不能补出发生前后的过程。需要历史趋势时,再配置适合的监控存储或导出方案。
如果以后启用导出插件,先确认目标存储能够接收数据、字段与时间正常,再谈保留周期。容器 running、页面有数字和历史数据库成功写入,是三个不同检查点。
本例没有业务持久目录,恢复主要保留 Compose 与使用的镜像标识;添加自定义配置、认证文件或导出凭据后,一并保存到受保护的外部副本。升级时先重建测试实例,对照进程、主要指标和实际接口,再替换正式观察入口。
