elasticsearch 使管道输出工人与logstash中的管道工人相等是否有任何负面影响?,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch 使管道输出工人与logstash中的管道工人相等是否有任何负面影响?,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch 使管道输出工人与logstash中的管道工人相等是否有任何负面影响?

elasticsearch 使管道输出工人与logstash中的管道工人相等是否有任何负面影响?,elasticsearch,logstash,elasticsearch,Logstash,注意:我在输出插件中只有elasticsearch。在输入插件中,最多可以有30个输入(每个文件一个输入)。过滤器插件中几乎没有过滤器 我运行了以下测试场景,得到了意想不到的结果(在最后提到) 测试场景: i5和i7机器的RAM分别为8GB和16GB,并且(在运行日志存储之前)的可用内存分别为~2.5-3Gb和~9Gb 以下场景中使用的日志相同,大小约为1Gb (一) 机器:i5(共4个芯) Config:(默认值)pipeline.workers=4和pipeline.output.worke

注意:我在输出插件中只有elasticsearch。在输入插件中,最多可以有30个输入(每个文件一个输入)。过滤器插件中几乎没有过滤器

我运行了以下测试场景,得到了意想不到的结果(在最后提到)

测试场景

i5和i7机器的RAM分别为8GB和16GB,并且(在运行日志存储之前)的可用内存分别为~2.5-3Gb和~9Gb

以下场景中使用的日志相同,大小约为1Gb

(一)

机器:i5(共4个芯)

Config:(默认值)pipeline.workers=4和pipeline.output.workers=1

结果:logstash未记录任何错误/警告

处理日志的总时间:~30分钟

(二)

机器:i7(共8个芯)

Config:(默认值)pipeline.workers=8和pipeline.output.workers=1

结果:由于日志存储日志中存在读取超时错误,ES上似乎有负载

(三)

机器:i7(共8个芯)

配置:(自定义值)pipeline.workers=4和pipeline.output.workers=1/2/3(每次将ow增加1)

结果:由于日志存储日志中存在读取超时错误,因此每个场景中的ES似乎都有负载

(四)

机器:i7(共8个芯)

配置:(自定义值)pipeline.workers=4和pipeline.output.workers=4

结果:logstash没有记录任何错误/警告,但与场景1相比,所花费的总时间增加了约20分钟

总时间:~50分钟

我有以下问题

1) 使管道输出工人与logstash中的管道工人相等是否有任何负面影响

2) 如果我们比较案例场景1和4,为什么总时间会增加???与i5计算机相比,i7计算机上的日志处理速度应该更快


3) 如何在两台机器上获得相同的性能(或更好的性能)??(例如,对于1Gb日志,总处理时间只是为了明确您的测试,您在输入上使用了相同的数据,对吗?您是否在每个测试之间删除了数据?案例1和案例4之间的较长时间也可能是由于不同的jvm设置造成的?另一点是,工作设置似乎不推荐使用,请参阅:是的,使用了相同的数据。其他设置也不适用。)保持不变,即,我使用了Elastic search和logstash的默认设置。您发布的链接是关于输出插件中的worker设置,该设置已被弃用,而我正在谈论logstash的配置文件中提到的pipeline.output.workers和pipeline.workers设置。您可以参考链接:workers的优点,那么,您应该看看这篇文章:您在测试期间是否监控了资源(CPU、I/O、内存),因为如果没有资源匮乏,那么增加它们不会改变很多事情(例如,请参阅阿姆达尔定律).考虑到输出工作者的历史,您正在运行什么版本的Logstash?在i5机器上,CPU和内存得到了适当的利用(即CPU~90-100%和内存~80-90%),而在i7机器上,资源本可以得到更好的利用。但问题是,i7的工作(至少)不应该与i5机器的工作(案例场景4)相同吗。如果我不修改pipeline.output.workers的设置并避免logstash?的读取超时错误,我将如何将i7上的时间减少到~30分钟?我使用的是最新版本logstash-5.2.2和elasticsearch-5.2.2。而elasticsearch节点托管在本地或远程服务器上?如果它托管在本地,则可能有副作用,如果是遥远的,您确定您是测试期间唯一访问它的人吗?为了清楚您的测试,您在输入上使用了相同的数据,对吗?您是否在每个测试之间删除了数据?案例1和案例4之间的较长时间也可能是由于不同的jvm设置造成的?另一点是工作设置可以看到m已弃用,请参阅:是的,使用了相同的数据。其他设置未被更改,即我使用了默认设置Elastic search和logstash。您发布的链接是关于输出插件中已弃用的worker设置,而我谈论的是pipeline.output.workers和pipeline.workers设置,在的配置文件中提到logstash。你可以参考链接:关于工人的好观点,你应该看看这篇文章:你在测试期间是否监控了资源(CPU、I/O、内存),因为如果没有资源匮乏,那么增加它们不会改变很多事情(例如,见阿姆达尔定律).考虑到输出工作者的历史,您正在运行什么版本的Logstash?在i5机器上,CPU和内存得到了适当的利用(即CPU~90-100%和内存~80-90%),而在i7机器上,资源本可以得到更好的利用。但问题是,i7的工作(至少)不应该与i5机器的工作(案例场景4)相同吗。如果我不修改pipeline.output.workers的设置并避免logstash?的读取超时错误,我将如何将i7上的时间减少到~30分钟?我使用的是最新版本logstash-5.2.2和elasticsearch-5.2.2。而elasticsearch节点托管在本地或远程服务器上?如果它托管在本地,则可能有副作用,如果是遥远的,你确定你是测试期间唯一访问它的人吗?