Logtail提升采集性能

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 为防止滥用消耗过多机器资源,我们对默认安装的Logtail进行了一系列的资源限制。默认安装的Logtail最多日志采集速度为20M/s,20个并发发送。如需提高采集性能,请参考本篇文章。

默认性能限制

为防止滥用消耗过多机器资源,我们对默认安装的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

日志格式建议

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

  1. 搬数据:使用极简模式,性能最高
  2. 数据分析:多字符分隔符>单字符分隔符>JSON模式>正则模式
  3. 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
}
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
JSON 应用服务中间件 nginx
如何修改kong网关access.log的日志格式
有需要需要调整kong网关的日志格式,调整日志输出内容,由于原来使用docker部署kong网关,并且使用了环境变量指定了网关运行的参数,这里在以下介绍的方式还需要修改容器的环境变量,但是也提供了一条思路,就是部署网关的时候,统一使用kong.conf进行配置
1524 0
|
存储 运维 开发工具
警惕日志采集失败的 6 大经典雷区:从本地管理反模式到 LoongCollector 标准实践
本文探讨了日志管理中的常见反模式及其潜在问题,强调科学的日志管理策略对系统可观测性的重要性。文中分析了6种反模式:copy truncate轮转导致的日志丢失或重复、NAS/OSS存储引发的采集不一致、多进程写入造成的日志混乱、创建文件空洞释放空间的风险、频繁覆盖写带来的数据完整性问题,以及使用vim编辑日志文件导致的重复采集。针对这些问题,文章提供了最佳实践建议,如使用create模式轮转日志、本地磁盘存储、单线程追加写入等方法,以降低日志采集风险,提升系统可靠性。最后总结指出,遵循这些实践可显著提高故障排查效率和系统性能。
1702 21
|
存储 数据采集 监控
Logtail技术分享(一) : Polling + Inotify 组合下的日志保序采集方案
logtail是阿里云一款进行日志实时采集的Agent,当前几十万台部署logtail的设备运行在各种不同环境上(集团、蚂蚁、阿里云,还有用户部署在公网、IOT设备),每天采集数PB的数据,支撑上千种应用的日志采集。
19121 2
|
弹性计算 运维 监控
【最佳实践】iLogtail使用Grok语法解析日志
目标读者数字化系统开发运维(DevOps)工程师、稳定性工程师(SRE)、可观测平台运维人员等。背景介绍日志的形式往往多种多样,如果只是简单的读入日志数据,将很难进行搜索、分析及可视化。将原始的日志数据解析为结构化的数据,将大幅提升数据的可用性,方便用户进行快捷的“字段-值”的查询和分析。最基础的解...
1481 1
【最佳实践】iLogtail使用Grok语法解析日志
|
存储 SQL 运维
日志服务 SLS 和开源 ELK 全面对比
本文阐述了阿里云日志服务 SLS 和开源 ELK 在性能、成本、功能等维度的对比分析。 如需了解从ES平滑迁移到SLS 攻略,请参考文章链接https://developer.aliyun.com/article/1412611
34577 1
|
消息中间件 存储 数据采集
iLogtail社区版使用入门 - 如何将业务日志采集到Kafka
本文将会详细介绍如何使用iLogtail社区版将日志采集到Kafka中,从而帮助使用者构建日志采集系统。
2539 0
|
弹性计算 运维 监控
【最佳实践】主机场景下如何使用ilogtail采集超大规模文件
目标读者数字化系统开发运维(DevOps)工程师、稳定性工程师(SRE)、可观测平台运维人员等。使用场景客户的某些场景下,业务拆分的比较细,每个业务会定时输出一个日志文件(比如每小时输出一个文件),那么在一台机器上,可能会产生大量的日志文件。由于某些原因,用户不想在业务服务器上安装采集端,因此采用比...
1197 0
【最佳实践】主机场景下如何使用ilogtail采集超大规模文件
|
数据采集 监控 开发者
千万级可观测数据采集器--iLogtail代码完整开源
2022年6月29日,阿里云iLogtail开源后迎来首次重大更新,正式发布完整功能的iLogtail社区版。本次更新开源全部C++核心代码,该版本在内核能力上首次对齐企业版,开发者可以构建出与企业版性能相当的iLogtail云原生可观测性数据采集器。本次发布新增日志文件采集、容器文件采集、无锁化事件处理、多租户隔离、基于Pipeline的新版配置方式等诸多重要特性,全面增强社区版的易用性和性能,欢迎广大开发者关注、共建。
千万级可观测数据采集器--iLogtail代码完整开源
|
存储 Kubernetes 监控
K8s挂载PVC日志采集“轻量级”玩法
本文介绍一种使用K8s挂载PVC日志采集时的轻量级部署方式。
1773 1
K8s挂载PVC日志采集“轻量级”玩法
|
数据采集 存储 缓存
K8S采集专题-稳定性:iLogtail容器重启数据可靠性探讨
容器场景下iLogtail容器的稳定性对于日志采集的可靠性尤为重要,特别是对于容器重启的情况需要通过特定的配置确保采集状态可恢复。本文简要讲解了iLogtail的状态持久化原理和容器场景状态持久化方案,并详细描述了在K8S和Docker环境下如何配置iLogtail参数和容器参数来解决这种情况下的数据采集的稳定性问题。