我有一台 LAMP 服务器,logrotate 每周执行一次,我注意到一些日志往往会变得非常大。例如,apache 访问日志为 73MB。我告诉 logrotate 每天轮换它是否更好?大小是否对性能(CPU 负载)有影响,还是我们谈论的是边际差异(每日轮换与每周轮换)?
文件系统是ext3。
答案1
我从未见过任何 apache 网络服务器的性能会受到日志文件大小的影响。在一些非常旧的服务器上,如果日志文件达到 2GB,apache 就会停止工作。
73MB很小。
决定每天轮换网络服务器日志文件很方便(可读性,更容易与 awstats 等工具结合使用,...)
答案2
考虑到您可以购买容量为 4,000,000 MB 的硬盘;73MB 的日志文件确实很小。我会让 logrotate 每天轮换一次文件,保留一周到一个月的时间进行各种分析。对于该大小的服务器其余部分(CPU、RAM 等),它不会产生任何明显的影响。
答案3
从未测量过,但我认为日志大小对性能的影响很小。如果启用了 BufferedLogs,它会占用一些内存,否则只会对磁盘进行顺序写入。如果您的 apache 进行许多随机磁盘访问(提供许多图像或其他内容),请尝试使用外部日志服务器来最小化日志写入的 iowait。此外,使用调试日志记录级别日志增长非常快,如果它不重要,请更改为信息。干杯
答案4
在大多数情况下(当您仅将数据附加到日志文件末尾时),文件的大小并不重要(在 512mb RAM 机器上将其增加到几十 gb,没有明显的减速,直到 /var 分区已满:))
如果您的 /var 分区很小,日志文件很大(73MB 相对较小),或者您需要每日日志进行归档/处理,则应使用每日轮换。如果您不处理日志,或者不对它们做任何事情,除了将数据附加到末尾(就像 apache 所做的那样),轮换它们的频率并不重要 - 只需注意不要用尽 /var 上的所有空间,因为这可能导致比没有日志更大的问题。