用 crontab 给 LLM 使用量装上“监控眼”

在把大模型接入日常工作流之后,笔者很快遇到了一个新问题:模型到底被用了多少次?每天的高峰时段是什么时候?周末是不是真的没人调用?如果对这些数据一无所知,就谈不上优化成本、排查异常,更谈不上为后续扩容做规划。

于是,笔者为 LLM 使用量加了一层可观测性,做法很简单------用 Linux 自带的 crontab 定时任务,周期性采集使用数据。下面把这份配置拆开讲讲。

01 | 定时任务的整体设计

先看完整的 crontab 配置:

bash 复制代码
$ crontab -l
# 工作日:09:00--11:45、14:00--17:45,每 15 分钟
*/15 9-11,14-17 * * 1-5 /home/alfred/scripts/llm_usage.sh

# 工作日:12:00、18:00 各执行一次
0 12,18 * * 1-5 /home/alfred/scripts/llm_usage.sh

# 工作日夜间:20:00、00:00、04:00、08:00,每 4 小时
0 0,4,8,20 * * 1-5 /home/alfred/scripts/llm_usage.sh

# 周末全天:每 4 小时
0 */4 * * 0,6 /home/alfred/scripts/llm_usage.sh

# 每周一 08:01 额外执行一次
1 8 * * 1 /home/alfred/scripts/llm_usage.sh

所有任务都指向同一个脚本 /home/alfred/scripts/llm_usage.sh,脚本负责采集当前时间点的 LLM 调用数据。区别只在于触发频率不同,这样既能覆盖关键时段,又不会给系统带来太大负担。

02 | 工作日:白天加密采样

工作日的白天是 LLM 使用的高峰期,所以采样频率最高。

bash 复制代码
*/15 9-11,14-17 * * 1-5 /home/alfred/scripts/llm_usage.sh

这段配置的含义是:周一至周五,在 9 点到 11 点 45 分、14 点到 17 点 45 分这两个时间段内,每 15 分钟执行一次脚本。*/15 表示"每 15 分钟",9-11,14-17 用逗号并列了两个小时段,1-5 限定为工作日。

这样密集的采样,可以清晰还原白天的工作节奏------比如上午 10 点是不是比下午 3 点调用更频繁,午休前后有没有明显回落。

03 | 工作日:午间与傍晚定点记录

bash 复制代码
0 12,18 * * 1-5 /home/alfred/scripts/llm_usage.sh

中午 12 点和傍晚 18 点各执行一次。这两个时间点比较特殊:12 点是午休边界,18 点是下班前后。单独记录这两个时刻的数据,有助于观察"午休是否真的没人用模型"以及"下班后是否还有零散调用"。

04 | 工作日夜间与周末:低频兜底

bash 复制代码
0 0,4,8,20 * * 1-5 /home/alfred/scripts/llm_usage.sh

工作日的夜间和清晨,调用量通常很低,没必要保持 15 分钟一次的频率。这里改为每 4 小时一次,覆盖 20 点、0 点、4 点和 8 点四个时间点,保证全天 24 小时都有数据落点,不会出现观测盲区。

周末的情况类似:

bash 复制代码
0 */4 * * 0,6 /home/alfred/scripts/llm_usage.sh

0,6 表示周六和周日,*/4 表示每 4 小时一次。周末整体调用量偏低,低频采样足够反映趋势,同时避免无意义的重复执行。

05 | 每周一的额外校准

bash 复制代码
1 8 * * 1 /home/alfred/scripts/llm_usage.sh

每周一早上 8 点 01 分额外执行一次。注意这里用的是 1 8,而不是 0 8,刻意错开整点。这样做的目的是笔者这里的LLM是每周8点重置额度,可测试发现原本整8点采样的结果还是未重置的状态,所以这里专门加了这条一分钟的offset,保证可以及时捕捉到重置额度的关键信息。不然有时候不小心提早就用超了,期待着能赶在重置时刻第一时间就恢复满血状态,可前端如果因为没及时采样到而一直显示0%,看起来也是非常焦虑啊。

小结

整套定时任务的核心思路是:高峰时段加密采样,低谷时段低频兜底,关键节点单独记录 。通过 crontab 的灵活配置,笔者用极小的系统开销,换来了对 LLM 使用量全天候、分时段的清晰观测。有了这些数据,后续无论是做成本分析、容量规划,还是排查异常调用,都有了可靠的依据。

关注我,和AI一起成长~

相关推荐
刃神太酷啦3 小时前
Linux 系统 MySQL 完整安装配置教程:从卸载 MariaDB 到优化 my.cnf----《Hello MySQL!》(1)
android·linux·c语言·c++·mysql·leetcode·mariadb
赵文宇(温玉)3 小时前
OpenEuler24.03 SP4 系统安装(欧拉/麒麟V10)
linux·openeuler·欧拉
Brilliantwxx5 小时前
【Linux】 进程(7)深度剖析 进程内核O(1)调度队列 + 饥饿问题
linux·运维·服务器
刚入门的大一新生6 小时前
Linux-命令行参数和环境变量
linux·运维·服务器
我星期八休息6 小时前
Linux I/O多路转接—epoll
java·linux·运维·服务器·开发语言·jvm·算法
wuminyu7 小时前
Java FFM处理网络读写事件源码剖析
java·linux·c语言·jvm·c++
实心儿儿7 小时前
Linux —— 数据链路层
linux·网络·智能路由器
智购科技无人售货机厂家8 小时前
2026自动售货机出货口防夹手设计:从红外检测到电机反转的工程实践~YH
大数据·linux·单片机·嵌入式硬件·微信
新时代牛马9 小时前
异常向量与VBAR_ELx:Linux entry.S 中的vectors 布局
linux·运维·服务器