9 cron
我有几个用于基本维护的 cron 工作,这些工作不是非常占用资源。
我也有自定义任务调度(它只是调用一个 .php 文件并通过 GET 传递信息,即:cronjob.php?param1=param ...)。这些可以很快加起来。
这些只是调用系统命令并运行外部程序(Nmap 就是其中之一)。他们通常也不会花很长时间。
无论如何,谁能告诉我,太多了大概是什么意思?我知道这很难说,因为这取决于正在运行的作业和运行频率,但是 crontab 程序在什么时候开始“挣扎”?任何人有任何想法?
谢谢。
小智 6
我不会担心“crontab 程序”(cron)本身的负载;这是您可能需要注意的整体系统负载。在您的作业运行期间查看指标(cpu 利用率、io 速率、Web 查询响应时间) - 是否有明显的峰值?是否已经严重到扰乱了系统的实际使用?
如果程序“不需要很长时间”,这是一个好兆头,表明它没有问题。
如果您仍然担心,您可以做其他事情来限制负载:运行作业nice以降低它们的优先级,按顺序运行它们而不是同时运行,等等。
小智 5
仅在我们的生产系统中搜索,最大的一个有 862 个 cron 作业(在所有用户中,最大的一个,root,是 117 个),并且它并没有特别为这么多而出汗。
如果您每分钟开始 60 项工作,24x7,并且它们都需要两秒钟才能完成,那么您可能最终会陷入痛苦的世界。但是,只要工作负载平衡(安静时间等),它就会恢复。密切关注高峰时段的系统负载(CPU%、磁盘 I/O 等),比实际作业数量更担心这一点。
这个问题类似于“在遇到麻烦之前我可以运行多少个进程?”。最好的办法是尝试一下,因为这取决于您的系统。我发现 Cron 本身几乎没有限制,但是,如果您试图安排数以万计的工作,那么您会给它带来比以往任何时候都更大的压力。
测量,不要猜测!