4
好吧, 我正在考慮創建一個依賴於cronjob的webscript。
我想知道,它是否會對crontabs的數量造成任何服務器損害?什麼是cron作業的服務器使用情況?
可以說我每天要做50個crontabs,它會傷害服務器嗎? 如果沒有,什麼是當你創建一個新的工作cron
守護進程調用函數job_add
(job.c
)要在Linux服務器@ 512MB內存
好吧, 我正在考慮創建一個依賴於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