我注意到我的 OpenVZ 虚拟机 (VE) 没有安装 logrotate,而且我的日志有点大 :-)
由于 VE 的文件系统通过 /vz/private/.. 向主机公开,有什么理由不让主机上的 logrotate 轮换 VE 中的日志吗?
答案1
因为您可能希望在每个虚拟机上记录大量操作系统日志,所以安装 logrotate 可能更简单、更干净。这绝对是我推荐的解决方案。
至于 10 个 logrotate 与 1 个 logrotate 资源问题,我认为没什么好担心的。这是过早优化。先以正确的方式进行,然后在必要时加快速度。
Logrotate 每天运行一次;在我的系统上,它运行大约需要 0.002 秒。第一的时间,但此后您的资源损失将几乎为零。
您甚至可以通过错开 /etc/cron.daily 脚本的执行时间来改善这种情况 - 这样就不会所有虚拟机都同时执行。
(并且由于减慢系统速度的因素是日志的实际移动/截断/重命名/gziping/等,并且这些操作将发生在一个或十个 logrotate 进程中 - 这是每个 VM 使用一个 logrotate 的另一个原因。logrotate 本身的开销非常小,以至于在噪声中丢失了。)
答案2
看起来像是一个自行车棚但是...
IO 是 logrotate 唯一能产生明显影响的资源。
一个主 logrote 将产生与在任意数量的 Linux 容器(VM)内运行的一组 logrote 一样多的 IO。