什么是cron作业的服务器使用情况?
问题描述:
好吧, 我正在考虑创建一个依赖于cronjob的webscript。
我想知道,它是否会对crontabs的数量造成任何服务器损害?什么是cron作业的服务器使用情况?
可以说我每天要做50个crontabs,它会伤害服务器吗? 如果没有,什么是当你创建一个新的工作cron
守护进程调用函数job_add
(job.c
)要在Linux服务器@ 512MB内存
答
添加的crontab的最大金额,该功能的alloc内存的工作,将其添加到作业列表的尾部。 工作分配在堆上,所以在理论上你只受到机器上安装的RAM的限制。
从科雷代码的一些注意事项:
作业结构:
typedef struct _entry {
struct _entry *next;
uid_t uid;
gid_t gid;
char **envp;
char *cmd;
bitstr_t bit_decl(minute, MINUTE_COUNT);
bitstr_t bit_decl(hour, HOUR_COUNT);
bitstr_t bit_decl(dom, DOM_COUNT);
bitstr_t bit_decl(month, MONTH_COUNT);
bitstr_t bit_decl(dow, DOW_COUNT);
int flags;
#define DOM_STAR 0x01
#define DOW_STAR 0x02
#define WHEN_REBOOT 0x04
} entry;
而且用户结构:
typedef struct _user {
struct _user *next, *prev; /* links */
char *name;
time_t mtime; /* last modtime of crontab */
entry *crontab; /* this person's crontab */
} user;
typedef struct _job {
struct _job *next;
entry *e;
user *u;
} job;
每个用户crontab条目被定义
您c看到这个结构并不会占用大量的内存。 如果您对cron
的工作方式感到好奇,您可以在这里看到代码:cron ubuntu source。
这可能会更适合[ServerFault](http://serverfault.com)。 – whirlwin
我想如果你的服务器可以做50件事情,那么它可以按照预定的时间间隔做50件事情。 Cron本身非常优化,不会为任务增加任何实际开销。物理内存的数量本身并不是决定性因素。你的_tasks_之一可能会伤害服务器,但_cron_不会。 – David