我在我的机器上使用syslog-ng 3.0。 有一台机器,从其他三台机器获取日志。 但最近,当我使用top来监视cpu的使用情况时(主要的),我发现syslog-ng使用了cpu的95%。 我使用第二深度包含在我的confs。 这个问题有什么可能的原因?
提前致谢。
你问的是错误的问题 – 你需要关注系统性能 ,而不是屏幕上的数字。
如果你的系统运行正常,性能满足你的要求,并且你的负载平均值不是很高(表示需要长时间的等待CPU来获得CPU),你没有问题要解决。
如果您遇到性能问题,那么您应该询问我们有关性能问题(事实上,您的CPU是固定的,在尝试帮助您解决性能问题时会很有帮助)。
你不会告诉我们你正在谈论哪个“CPU利用率”数字,但是真的没关系 – “100%CPU使用率”是一件坏事,这是一个常见的误解。 事实并非如此。
运行在100%CPU利用率下的计算机在没有任何性能问题的情况下不会出现问题,除非您预计将来(在系统的整个生命周期内)可用的CPU带宽将被过度增加。
Syslog-ng确实使用了大量的CPU资源,而单个CPU显示的95%一致性似乎很高。 我有一个单独的CPU系统,运行syslog-ng 2.1.4(对于debugging)和20多个Linux服务器(警告),带有<1Gb内存。 Top显示%CPU为93-83%。
filter非常灵活,但没有任何优化或逻辑检查; syslog-ng依赖于你。 遇到类似的情况,我审查了我的所有filter的逻辑错误,并优化了订单。 清理和优化将我的利用率降低了10%以上。 我build议:
在查看时,请检查磁盘I / O等待,并确认您使用的是本地UDP协议(避免使用TCP)。 希望有所帮助。