#操作系统负载监控

YCS实现了一套操作系统负载监控机制OS Watcher,定期收集操作系统当前的负载信息。

# OS Watcher简介

OS Watcher是YCS服务器提供的内嵌工具,以线程形式存在。该线程在其运行时,定期通过调用系统命令(例如iostat、vmstat等)或读取虚拟文件(例如/proc/meminfo)等方式,获取并保存操作系统的性能指标,用于辅助监控操作系统的资源使用情况。OS Watcher相关线程的启动、关闭方式简单,资源占用少,收集信息全面,可以在性能分析和诊断时提供帮助。

# OS Watcher启停

OS Watcher默认会随YCS启动而启动,用户可按需通过YCS配置参数OSW_AUTO_START配置是否自启动。

用户还可以通过ycsctl工具手动启停OS Watcher,命令格式如下:

ycsctl start osw
ycsctl stop osw

# OS Watcher监测

# 监测对象

OS Watcher的监测对象可分为操作系统命令和虚拟文件读取,共支持10个监测对象。系统命令包括iostat、vmstat等常用性能工具,虚拟文件包括/proc/meminfo,/proc/slabinfo等常用信息获取。

OS Watcher启动时会逐一检查监测对象,判断其是否可执行或可读取,在运行时仅处理检查通过的对象:

  • 对于系统命令,OS Watcher将依次检查所在操作系统的/bin、/usr/bin、/usr/sbin目录,若某个系统命令存在于上述任一目录中且具有执行权限,则视为该命令检查通过。

  • 对于虚拟文件,OS Watcher将检查文件路径,若文件存在且具有读权限,则视为该文件检查通过。

支持的命令如下表所示。

命令名称 完整命令 备注
arp arp -an 获取本地计算机完整的ARP缓存
iostat iostat -xk 获取磁盘设备的IO统计信息,结果以KB为单位
ip ip -s -s addr 获取每个网络接口的地址信息和统计信息
meminfo 读取/proc/meminfo文件,获取当前系统内存使用详情
mpstat mpstat -P ALL 获取每个CPU核心的统计信息
nfsiostat nfsiostat 获取当前挂载的所有网络文件系统的统计信息
ps ps -elf --sort=-%cpu,-%mem,-etime | head -n 1000 获取当前计算机内运行的进程详细信息,结果依次按CPU占用、内存占用、运行时间降序排序,最多获取1000行
slabinfo 读取/proc/slabinfo文件,获取当前系统内存分配详情
top top -b -n 1 | head -n 50 获取当前正在运行的进程信息和统计信息,按CPU占用降序排序,最多获取50行
vmstat vmstat 获取当前系统的虚拟内存使用详情

# 监测频率

默认配置下,OS Watcher收集信息的时间间隔为磁盘心跳超时时间DISK_HB_KEEP_ALIVE的三分之一(结果向下取整数)。用户可按需通过YCS配置参数OSW_INTERVAL指定时间间隔。

# OS Watcher监测结果

OS Watcher的监测结果(即收集的数据)将以文件形式保存。

# 结果文件路径

OS Watcher的监测结果文件将保存在对应YCS节点的${YASCS_HOME}/diag/osw文件夹下,根据不同的系统命令名称创建子文件夹,将每种系统命令的结果写入到文件中,文件名格式为osw-<command>-<timestamp>.dat

# 当OS Watcher关闭时
$ ycsctl start osw
Succeed

$ tree ${YASCS_HOME}/diag
/home/yashandb/YASCS_HOME1/diag
├── osw
│   ├── arp
│   │   └── osw-arp-20250101093000.dat
│   ├── iostat
│   │   └── osw-iostat-20250101093000.dat
│   ├── ip
│   │   └── osw-ip-20250101093000.dat
│   ├── meminfo
│   │   └── osw-meminfo-20250101093000.dat
│   ├── mpstat
│   │   └── osw-mpstat-20250101093000.dat
│   ├── nfsiostat
│   │   └── osw-nfsiostat-20250101093000.dat
│   ├── ps
│   │   └── osw-ps-20250101093000.dat
│   ├── slabinfo
│   │   └── osw-slabinfo-20250101093000.dat
│   ├── top
│   │   └── osw-top-20250101093000.dat
│   └── vmstat
│       └── osw-vmstat-20250101093000.dat
└── trace

12 directories, 10 files

# 结果文件内容

OS Watcher监测结果文件的具体内容是对应系统命令的输出,以iostat为例,收集一次数据后,当前结果文件中将新增以下内容:

###################################################
## OS WATCHER RECORD: 2025-01-01 11:23:15.945831 ##
###################################################
Linux 3.10.0-1160.119.1.el7.x86_64 (AchorBase) 	01/01/2025 	_x86_64_	(8 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.90    0.00    2.43    0.11    0.00   95.57

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00    25.69    0.08   71.15     4.84   848.09    23.95     0.01    0.20    0.60    0.20   0.09   0.62
sda               0.00     0.04    0.11    0.67     3.97    38.81   110.75     0.00    1.36    0.53    1.49   0.07   0.01
sdd               0.00     2.16   23.51    1.83  3150.96    21.55   250.35     0.01    0.29    0.28    0.33   0.26   0.66
sdf               0.00     0.00    1.53    0.10   144.66     0.62   178.19     0.00    0.11    0.11    0.08   0.11   0.02
sde               0.00     0.00    2.94    1.10   846.88   153.81   495.22     0.00    0.67    0.78    0.36   0.11   0.05
sdg               0.00     0.00    0.00    0.00     0.15     0.07   282.15     0.00    0.62    0.49    1.71   0.09   0.00
sdh               0.00     0.08    0.08    0.34     2.26    23.83   122.66     0.00    0.47    0.14    0.56   0.08   0.00
sdc               0.00     0.00   16.24    1.13  1398.94     4.79   161.61     0.00    0.14    0.14    0.10   0.13   0.22
dm-0              0.00     0.00    0.11    0.70     3.96    38.81   105.92     0.00    1.36    0.53    1.48   0.08   0.01
dm-1              0.00     0.00    0.00    0.00     0.00     0.00    10.22     0.00   13.21    0.26   15.20   7.30   0.00
dm-2              0.00     0.00    0.08   96.84     4.84   848.09    17.60     0.02    0.17    0.60    0.17   0.06   0.62

# 结果文件管理

OS Watcher支持指定能保存文件数量和单个文件大小,通过YCS配置参数OSW_FILE_NUMOSW_FILE_SIZE控制。

当正在使用的文件大小超出限制时,OS Watcher将创建新的文件,若此时文件总数超出限制,OS Watcher将按时间先后顺序删除最早的文件直至数量达标。

Note:

对于数据文件数量和大小的限制,将分别作用于每个命令的子文件夹中。

本文以典型部署为例,每20秒收集一次数据,文件大小的增长速度参考值如下表所示,下表数据仅供参考,具体请以实际为准。

文件名称 文件增长速度(MB/h)
arp 0.01~0.1
iostat 0.2~0.4
ip 0.2~0.4
meminfo 0.1~0.2
mpstat 0.1~0.3
nfsiostat 0.01~0.1
ps 5~10
slabinfo 2~4
top 0.5~1
vmstat 0.04~0.1
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流