0

最近,我们最资深的工程师之一问我关于使用 syslog-ng 与将日志从我们的应用程序写入磁盘的上下文切换。

上下文:我想使用 syslog-ng 将我们用 C++ 编写的应用程序的输出记录并发送到远程日志服务器主机上的 logstash,然后将其全部推送到 elasticsearch 并使用 Kibana 作为日志查看、分析和派生的前端有用的指标。ELK 堆栈

我们目前使用 4K 或 8K 的 FSYNC 缓冲区,它会定期将日志输出到磁盘上的日志文件;也就是说,我们不会为每个日志条目强制写入磁盘。

像任何优秀的追求性能的工程师一样,他想了解我们是否会看到更大的上下文切换,或者我们是否可以通过利用 syslog-ng 来获得任何性能提升。

所以问题是:使用 syslog-ng 会减少还是增加该应用程序主机上的上下文切换。

我的专业知识让我在这里提出这个问题——因为我没有足够的知识来自己想出答案。

长期潜伏者,仍然是新发帖者。谢谢!

4

1 回答 1

1

这取决于您必须处理多少日志以及您愿意投入多少资源。

我们将 Kibana/Elastic 搜索与 Logstash 一起使用,负载确实变得非常重,但是我们再次拥有超过 400 台服务器,所以 YMMW。Java 也并不是真正以对资源的宽容而闻名。但是,从好的方面来说,设置起来相当容易

用 grok 可以解析 Logstash 中的日志。抛出几个虚拟机并玩弄它,如果你有一个大型环境,微调配置是让它可以忍受的,或者如果你有钱,你可以扔硬件直到它运行。

于 2014-09-11T23:01:19.317 回答