有人知道上下文切换吗?通过FSYNC和syslog ng从应用程序到磁盘的日志记录

Does anyone have knowledge on context switching - logging from app to disk via FSYNC vs syslog-ng

本文关键字:应用程序 ng 磁盘 记录 日志 syslog 上下文切换 FSYNC 通过      更新时间:2023-10-16

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

上下文:我想使用syslog ng来记录&将用C++编写的应用程序的输出发送到远程logserver主机上的logstash,然后将其全部放入elasticsearch&使用Kibana作为日志查看、分析和导出有用度量的前端ELK堆栈

我们目前使用4K或8K的FSYNC缓冲区,以一定间隔将日志吐出到磁盘上的日志文件中;也就是说,我们不会强制对每个日志条目进行磁盘写入。

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

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

我的专业知识让我来到这里,提出这个问题——因为我没有足够的知识来独自找到答案。

长期潜伏者,仍然是新的张贴。谢谢

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

我们在Logstash中使用Kibana/Elastic搜索,负载确实很重,但我们有400多台服务器,所以YMMW。Java也不以对资源宽容著称。然而,从好的方面来说,设置起来相当容易。

分析Logstash中的日志可以用grok完成。抛出几个虚拟机并玩它,如果你有一个大型环境,必须对配置进行微调才能让它变得可以忍受,或者如果你有钱,你可以向它扔硬件,直到它正常工作。