要查看历史进程创建速率,必须依赖已启用的sysstat服务及其采集的二进制日志(如/var/log/sa/sa28),用sar -c -f指定文件读取;若无日志则需检查sysstat状态和sa1定时任务。

sar 可以通过 -c 选项查看每秒进程创建速率(process creation rate),但要检查历史数据,必须依赖 sysstat 服务预先采集并保存的二进制日志文件(默认存于 /var/log/sa/saDD,DD 为日期)。
关键前提是:系统需已启用并运行 sysstat 数据收集服务(即 sa1 定时任务在后台持续记录)。若未开启,实时执行 sar -c 只能看当前采样,无法回溯历史。
查看历史进程创建速率的步骤
-
确认 sysstat 是否启用并有历史记录
运行以下命令检查是否有对应日期的日志文件:ls -l /var/log/sa/sa$(date -d "yesterday" +%d) # 或查指定日期,如 7月28日 → sa28
-
用 sar -c 读取指定日期的历史进程创建数据
例如查看 7月28日全天的进程创建速率(每10分钟一个采样点):sar -c -f /var/log/sa/sa28
输出示例:
00:00:01 proc/s 00:10:01 1.23 00:20:01 0.89 ... Average: 2.45
proc/s即每秒新创建的进程数,数值突增可能对应批量任务、脚本启动或异常 fork 行为。 -
按时间段筛选(可选)
若只需某一时段(如上午9–11点),加-s和-e参数:sar -c -f /var/log/sa/sa28 -s 09:00:00 -e 11:00:00
补充说明
-
-c报告只包含proc/s一列,它统计的是fork()/clone()系统调用成功次数,不含线程(线程创建不计入此值)。 - 若输出提示
Cannot open /var/log/sa/saXX: No such file or directory,说明该日未采集数据——需检查systemctl status sysstat是否运行,并确认/etc/cron.d/sysstat中的sa1任务是否生效。 - 实时监控当前速率(非历史)可用:
sar -c 1 5 # 每秒采样一次,共5次
不复杂但容易忽略。


















