java log 性能,Logtail提升采集性能

默认性能限制

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

采集能力

单核能力

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

极简模式

正则模式

分隔符模式

JSON模式

单核能力

(单核100%CPU)

采集速度

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

日志格式建议

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

搬数据:使用极简模式,性能最高

数据分析:多字符分隔符>单字符分隔符>JSON模式>正则模式

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

}

本文作者:元乙

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值