小编the*_*ude的帖子

Ubuntu 的 PHP 会话垃圾收集 cron 作业需要 25 分钟才能运行,为什么?

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 使用率图:

CPU使用率图

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

以下是IO时间的相应图表:

IO时间

和磁盘操作:

磁盘操作

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

linux ubuntu php performance

13
推荐指数
2
解决办法
8679
查看次数

标签 统计

linux ×1

performance ×1

php ×1

ubuntu ×1