Logrotate是Linux上的一个日志文件归档工具,能够将当前日志文件备份并压缩,创建新的日志文件,以及删除就的备份文件,通常被设置成定时任务每天自动运行。
可能考虑到压缩需要比较长的时间,对每个压缩任务Logrotate会Fork一个新的Process来处理,问题是如果有多个很大的日志文件需要归档,就会同时有多个压缩程序运行,如果服务器本身就很忙就可能会触发性能问题。
我就遇到了这个问题,在做压力测试的时候,启用了MySQL的Query log, 同时还产生大量的syslog, 早上突然服务器进入过载状态,所有外部的请求都不响应,load average持续维持在很高的值。
解决的方法有两种,一种方法是减少日志文件的尺寸,另一种方法是设置Logrotate只备份文件,但不做压缩操作。
可能考虑到压缩需要比较长的时间,对每个压缩任务Logrotate会Fork一个新的Process来处理,问题是如果有多个很大的日志文件需要归档,就会同时有多个压缩程序运行,如果服务器本身就很忙就可能会触发性能问题。
我就遇到了这个问题,在做压力测试的时候,启用了MySQL的Query log, 同时还产生大量的syslog, 早上突然服务器进入过载状态,所有外部的请求都不响应,load average持续维持在很高的值。
解决的方法有两种,一种方法是减少日志文件的尺寸,另一种方法是设置Logrotate只备份文件,但不做压缩操作。