我的一个网站运行速度非常慢,
我使用top
命令看到“rsyslogd”花费170M内存,
这是正常的吗?
如果没有,我怎样才能限制内存大小“rsyslogd”的成本,或频率“rsyslogd”
运行?
答案 0 :(得分:3)
是和否。 通常,您使用的是文件/磁盘队列模式。它将写入缓存到一个缓冲区,并且在打开和关闭时一次一行地写出一个块而不是一行。减少不必要的和小的磁盘访问。
问题在于它为每个文件记录了10MB的缓冲区。 20个日志文件表示200 + MB。日志文件的数量总是可以减少,但如果您没有运行raid(大块)或高需求系统,也可以减少缓冲区大小。文档在此处:http://www.rsyslog.com/doc/v8-stable/concepts/queues.html#disk-queues,“$< object> QueueMaxFileSize”以减小每个缓冲区的大小。 4MB可以降低到70MB
答案 1 :(得分:2)
听起来你有一些过程记录太多信息。你可能只看日志,看看谁在做所有的写作,看看你是否可以让他们停下来。当某些程序有一个反复出现的错误导致它每秒记录数千次相同的错误消息时,我已经看到日志达到千兆字节大小。认真检查日志,看看谁正在锤击rsyslogd。
答案 2 :(得分:1)
rsyslogd“run”没有“频率”,因为它是一个守护进程,提供日志记录功能。正如Robert S.Barnes指出的那样,你最好检查日志以确定应用程序,这会堵塞rsyslogd(哈!)。日志的名称是特定于操作系统的,但可能是,它们位于/ var / log及其子目录中。我已经看到rsyslogd会消耗相对大量的内存,但是170Mb太过分了,而且根本不正常。
无耻的offtopic编辑:我有服务器故障和stackoverflow标签彼此相邻,老实说,我100%确定我发布到serverfault,直到我实际提交答案(这应该是你的提示):P