Logtail提高采集性能

默认性能限制

为防止滥用消耗过多机器资源,咱们对默认安装的Logtail进行了一系列的资源限制。默认安装的Logtail最多日志采集速度为20M/s,20个并发发送。html

其余资源限制请参考:启动参数 help.aliyun.com/document_de… 中的默认配置。bash

采集能力

单核能力

若是放开发送流控,Logtail默认单核的能力大体以下(具体根据不一样正则、日志类型、采集提取的key数量、机器配置等会有必定浮动):服务器




极简模式并发

正则模式tcp

分隔符模式性能

JSON模式测试

单核能力优化

(单核100%CPU)spa

采集速度线程

100MB/s

20MB/s

35MB/s

30MB/s

内存占用

80

80

80

80

采集速度

0.1 MB/s(200条/s)

CPU占用(单核)

0.3%

0.6%

0.5%

0.5%

内存占用

32

32

32

32

采集速度

1 MB/s(2000条/s)

CPU占用(单核)

1.3%

5.0%

3.5%

3.5%

内存占用

32

32

32

32


备注:测试环境
CPU :Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz
MEM : 64GB
OS : Linux version 2.6.32-220.23.2.ali1113.el5.x86_64

多核能力

Logtail默认只开一个线程处理数据,若是开启多核,性能会有提高,但并非线性关系,实测最多开到8个线程后,性能几乎没有上涨。

  • 极简模式最高性能可达:440MB/s
  • 正则最高性能可达:70MB/s
  • 分隔符最高性可达:75MB/s
  • JSON最高性能可达:75MB/s

日志格式建议

根据您的使用目的,合理选择对应的日志格式

  1. 搬数据:使用极简模式,性能最高
  2. 数据分析:多字符分隔符>单字符分隔符>JSON模式>正则模式
  3. Java堆栈类型数据:正则模式
  • 注意:正则模式采集性能和正则优化有很是大关系。

如何放开资源限制

可经过调整Logtail的启动参数来放开默认的资源限制,下面咱们推荐2种配置方式:

  • 注意:Logtail使用短链接发送数据,若是发送并发太高,建议调整服务器的tcp参数,防止过多time_wait
  • 调整方式:sudo sysctl -w net.ipv4.tcp_tw_timeout=5

单核小资模式

在配置文件末尾追加如下两个参数,注意JSON需合法。

{
    ...
    "max_bytes_per_sec" : 50000000,
    "send_request_concurrency" : 50
}复制代码

多核极致模式

在配置文件末尾追加如下几个参数,需保证,注意JSON需合法。

  • 注意:需保证 cpu_usage_limit > process_thread_count
{
    ...
    "cpu_usage_limit" : 5,
    "process_thread_count" : 4,
    "max_bytes_per_sec" : 50000000,
    "send_request_concurrency" : 50
}复制代码


本文做者:元乙

原文连接

本文为云栖社区原创内容,未经容许不得转载。

相关文章
相关标签/搜索