【发布时间】:2014-01-11 14:51:02
【问题描述】:
我们看到服务器的 CPU 每隔 30 分钟就会出现一次峰值。这可能是由 php5 作业清理会话文件引起的。这是从我们服务器上的 /etc/cron.d/php5 获取的:
# /etc/cron.d/php5: crontab fragment for php5
# This purges session files older than X, where X is defined in seconds
# as the largest value of session.gc_maxlifetime from all your php.ini
# files, or 24 minutes if not defined. See /usr/lib/php5/maxlifetime
# Look for and purge old sessions every 30 minutes
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -ignore_readdir_race -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete
在过去的版本中,这项工作似乎存在问题。 Ubuntu 11.10 版本存在问题,这占用了大量 CPU,但我们正在运行 Ubuntu 和 PHP 的更晚版本。 这份工作对 PHP 来说有多重要?我们可以阻止这个作业运行或降低它的优先级吗?
【问题讨论】:
-
仅仅因为 CPU 出现峰值并不意味着有必要担心。这些文件必须在某个时候进行清理,此时最好尽快清理它们,使用尽可能多的资源来完成工作。你是说这项工作对服务器征税不合理?
-
它可能很好地利用了资源,但问题是这项工作需要 2 分钟左右才能完成,并且在高峰时间额外使用 cpu 可能会阻止我们在此期间响应请求。
标签: php amazon-ec2 cron cpu