我在 ubuntu 服务器上安装了 munin。它显示我的“inode 表使用量”每天早上 8 点出现峰值。然后它迅速下降并在几个小时内稳定下来。这是什么原因造成的?
我以为可能是 /etc/cron.daily 中运行了某些程序,但该程序设置为在早上 6 点运行,我将其改为早上 4 点。峰值仍出现在早上 8 点。我还启用了 cron 日志记录,但看不到早上 8 点启动的任何程序。
这是由 memset 托管的虚拟服务器。这可能是由虚拟主机上发生的情况引起的吗?
答案1
在默认的 ubuntu/debian 设置中,某些程序将通过“anacron”运行。执行时间取决于多种因素,尤其是机器启动时,但在服务器机器上,默认情况下,它会在每天早上 7:30 触发。
这是在文件中配置的/etc/cron.d/anacron
,因此一个简单的解决方案是编辑该文件并将配置的时间设置为更方便的时间(例如,如果您担心任务影响白天的性能,则可以设置为半夜)无需重新启动任何东西。
我启用的 cron 日志实际上显示 anacron 在 7:30 启动。Anacron 会延迟一段时间才执行任何操作,并且可能还会排队执行多项任务,结果是每天早上 8 点左右启动一项任务,导致大量 inode 表使用(有人建议 mlocate db 重新索引)我不知道这是否会导致任何性能问题,但现在看到它在半夜执行此操作似乎更健康。
这里有一些关于 ubuntu 的简短文档:https://help.ubuntu.com/community/CronHowto#How_Anacron_is_Set_Up
...这里还有关于 cron 和 anacron 之间相互作用的更详细解释: https://linuxformat.com//tuxradarchive/content/automate-linux-cron-and-anacron
答案2
查找大约在那个时间运行的 cronjobs。在 Ubuntu 中,首先检查 /etc/cron.daily 中的文件,以及 root 的 crontab(“sudo crontab -l”)。最有可能的是日志轮换或日志分析之类的东西正在创建许多临时文件。