CentOS VNC性能监控实操指南
一 监控目标与端口
二 快速检查与实时监控命令
systemctl status vncserver@:1.service(是否 active/running)。ss -lntp | grep 5901 或 netstat -lnpt | grep Xvnc,确认进程在对应端口监听。vncserver -list(查看已启动的显示号与会话信息)。top/htop(按CPU/内存排序定位异常进程)、ps aux | grep Xvnc(定位VNC相关进程)。tail -f ~/.vnc/*.log,关注连接、认证失败、会话异常等线索。vmstat 1、iostat -x 1、free -m、sar -n DEV 1(CPU、内存、磁盘IO、网络吞吐)。iftop -P(按连接查看实时带宽占用)。三 历史数据采集与可视化
nmon(交互式查看CPU、内存、磁盘、网络)。nmon -fT -s 5 -c 60(每5秒采样,共60次,生成 .nmon 文件)。sar -A(需先启用 sysstat 数据收集)。四 面向VNC的专项检查清单
vncserver -list 显示的会话应与 ss -lntp | grep 5901 的监听一一对应;若会话存在但端口未监听,多为会话异常或进程僵死。iftop 观察单会话带宽,客户端开启压缩、降低色深与分辨率可显著减小流量。tail ~/.vnc/*.log,关注频繁认证失败、Xorg 报错、会话意外退出等;配合 journalctl -u vncserver@:1.service -f 查看服务级日志。五 一键巡检脚本示例
#!/usr/bin/env bash
set -e
echo "=== VNC 服务状态 ==="
systemctl is-active --quiet vncserver@:1.service && echo "active" || echo "inactive"
echo -e "\n=== 监听端口 ==="
ss -lntp | grep -E ':(590[0-9])' || echo "无 VNC 端口监听"
echo -e "\n=== 会话列表 ==="
vncserver -list 2>/dev/null || echo "无活动会话"
echo -e "\n=== 资源快照 top5 CPU/MEM ==="
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head -n 6
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%mem | head -n 6
echo -e "\n=== 网络占用前5连接 ==="
iftop -t -s 1 -n -N -P | head -n 20 || echo "iftop 未安装或未在 PATH 中"
echo -e "\n=== VNC 日志尾部 ==="
tail -n 50 ~/.vnc/*.log 2>/dev/null || echo "无 VNC 日志"