如果你的日志请求达到了5000条/秒,这里描述的技术点可用于调优。

  1. 检查操作系统配置

    在安装Fluentd之前,进行操作系统参数优化。

  2. 通过top查看系统瓶颈

    如果发现Fluentd运行效率不佳,可先查看一下当前系统瓶颈在哪里:CPU?内存?磁盘IO?

  3. 避免额外运算

    不要在Fluentd中执行过多的额外运算。这其实也是一个通用的使用建议。虽然Fluentd可以进行各种过滤、格式化等操作,但是过于复杂的配置难于理解和维护,也会降低其性能和健壮性。配置文件应保持尽可能的简单。

  4. 使用flush_thread_count参数

    如果Fluentd输出的日志目的地是一个远端的服务器或者服务,可打开配置文件中的flush_thread_count参数,此参数默认值为1. 使用多个flush线程会掩盖网络延迟,增加并发输出。

    该参数适用于所有的output插件。参考配置如下:

<match test>
@type output_plugin
<buffer ...>
flush_thread_count 8
...
</buffer>
...
</match>
  1. 对S3/TD插件使用外部gzip

    Ruby使用GIL控制多线程的执行,同一时刻只能有一个线程运行,这在一定程度上降低了系统的并发性能。

    S3/TD插件允许异步调用外部的gzip程序来进行数据压缩,这可释放CPU的部分算力来执行其他处理逻辑。

    配置如下所示:
# S3
<match ...>
@type s3
store_as gzip_command
<buffer ...>
flush_thread_count 8
...
</buffer>
...
</match> # Treasure Data
<match ...>
@type tdlog
use_gzip_command
<buffer ...>
flush_thread_count 8
...
</buffer>
...
</match>
  1. 减少内存使用

    Ruby可配置GC参数以优化内存使用性能,可通过环境变量进行配置。为减少内存使用,可调整RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR为较小的值,默认为2.0,可将其调整为0.9或1.2等。具体可参考Ruby官方文档。

  2. 多worker模式

    对于日志量级很大的场景,CPU通常会是Fluentd的性能瓶颈。此时可启用多worker模式,通过多个worker进程并行处理日志事件。

<system>
workers 8
</system>

最新文章

  1. MongoDb gridfs-ngnix文件存储方案
  2. 浅谈fls3的一个压缩问题
  3. HDU 1421 DP
  4. C# 对Excel文档打印时的页面设置
  5. SQL SERVER其它函数
  6. JMS - Message
  7. 对同一个项目下的多个数据库Context进行迁移Migrations
  8. windows下使用vnc viewer远程连接Linux桌面(转)
  9. DIV+CSS 让同一行的图片和文字对齐
  10. Windows Server 2008 如何在IIS中添加MIME类型
  11. 一个简易的kmp教学并给出java实现
  12. 【impala学习之一】impala
  13. 2018.10.27 bzoj1984: 月下“毛景树”(树链剖分)
  14. VS2010 正则批量替换头文件路径
  15. 【ArcGIS】ArcGIS Enterprise部署
  16. jieba分词加入特殊字符和空格
  17. html&lt;input&gt;输入框中各种正则表达式设置
  18. 类文件结构与javap的使用
  19. 【数学】【P5077】 Tweetuzki 爱等差数列
  20. ANY和SOME 运算符

热门文章

  1. 5-10 Quartz 任务调度
  2. Java的学习日常
  3. VirtualBox 相关命令行
  4. Python logging日志管理
  5. 大数据开发,Hadoop Spark太重?你试试esProc SPL
  6. Spring提供的API实现文件上传
  7. 构建数据湖上低延迟数据 Pipeline 的实践
  8. layui框架图片上传至服务器
  9. Windows 11上Dev C++ 5.11 提示 Failed to execute xxx Error 0的一种解决方法
  10. Luogu4408 [NOI2003]逃学的小孩 (树的直径)