默认性能限制
为防止滥用消耗过多机器资源,我们对默认安装的Logtail进行了一系列的资源限制。默认安装的Logtail最多日志采集速度为20M/s,20个并发发送。
其他资源限制请参考:启动参数 https://help.aliyun.com/document_detail/32278.html 中的默认配置。
采集能力
单核能力
如果放开发送流控,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需合法。
{
...
"cpu_usage_limit" : 2,
"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
}