Ubuntu 设置了一个 cron 作业,用于查找和删除旧的 PHP 会话:
# 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 -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir \
fuser -s {} 2> /dev/null \; -delete
Run Code Online (Sandbox Code Playgroud)
我的问题是这个过程需要很长时间才能运行,有很多磁盘 IO。这是我的 CPU 使用率图:

清理运行由青色尖峰表示。期间开始时,PHP 的清理作业被安排在默认的 09 和 39 分钟时间。在 15:00,我从 cron 中删除了 39 分钟的时间,因此大小两倍的清理作业运行的频率减半(您可以看到峰值宽度加倍,频率减半)。
以下是IO时间的相应图表:

和磁盘操作:

在大约有 14,000 个活动会话的高峰期,可以看到清理运行了整整 25 分钟,显然在整个期间使用了 100% 的一个 CPU …