iLogtail专题四:iLogtail性能参数配置

 公司一直使用的Filebeat进行日志采集
 由于Filebeat采集组件一些问题,现需要使用iLogtail进行代替
 现记录下iLogtail介绍和实际使用过程
 这是iLogtail系列的第四篇文章

遇到以下场景时,可在ilogtail_config.json配置文件中修改Logtail启动参数。

  • 需要采集的日志文件数目大(同时采集的文件数超过100个或所监控的目录下的文件数超过5000个),占用大量内存。
  • 日志数据流量大(例如极简模式下超过2 MB/s,正则模式下超过1 MB/s),导致CPU占用率高。
  • Logtail发送数据到日志服务的速率超过20 MB/s。
     

{

    ...

    "cpu_usage_limit" : 0.4,

    "mem_usage_limit" : 384,

    "max_bytes_per_sec" : 20971520,

    "process_thread_count" : 1,

    "send_request_concurrency" : 4,

    "buffer_file_num" : 25,

    "buffer_file_size" : 20971520,

    "buffer_file_path" : "",

    ...

}

Logtail启动参数说明如下表所示:

参数

类型

说明

示例

cpu_usage_limitdoubleCPU使用阈值,以单核计算。取值如下:
  • 取值范围:0.1~当前机器的CPU核心数
  • 默认值:2

警告 cpu_usage_limit为软限制,实际Logtail占用的CPU可能超过限制值,超限5分钟后将触发熔断保护,Logtail自动重启。

例如设置为0.4,表示日志服务将尽可能限制Logtail的CPU使用为CPU单核的40%,超出后Logtail自动重启。

一般情况下,通过极简模式采集日志时,单核处理能力约100 MB/s;通过完整正则模式采集日志时,单核处理能力约20 MB/s 。

"cpu_usage_limit" : 0.4
mem_usage_limitint内存使用阈值。取值如下:
  • 取值范围:128(MB)~ 2048(MB)
  • 默认值:384(MB)

警告 mem_usage_limit为软限制,实际Logtail占用的内存可能超过限制值,超限5分钟后将触发熔断保护,Logtail自动重启。
mem_usage_limit与监控的文件数的关系如下:

  • 使用默认值时,每台服务器上的每个Logtail采集配置最多可监控19,200个文件,每台服务器上的Logtail客户端最多可监控192,000个文件。
  • 使用最大值时,每台服务器上的每个Logtail采集配置最多可监控100,000个文件,每台服务器上的Logtail客户端最多可监控1,000,000个文件。

相关计算公式如下:
  • 每个Logtail采集配置可监控的最大文件数=mem_usage_limit/100×5000
  • 每个Logtail客户端可监控的最大文件数=mem_usage_limit/100×50,000

"mem_usage_limit" : 384
max_bytes_per_secint每秒钟Logtail发送原始数据的流量限制。取值如下:
  • 取值范围:1024(Byte/s)~52428800(Byte/s)
  • 默认值:20971520(Byte/s)

例如设置为2097152,表示Logtail发送数据的速率为2 MB/s。

注意 设置的值超过20971520 Byte/s(20MB/s),表示不限速。

"max_bytes_per_sec" : 2097152
process_thread_countintLogtail处理数据的线程数。 取值如下:
  • 取值范围:1~64
  • 默认值:1

一般情况下,可以处理极简模式下24 MB/s的数据写入或完整正则模式12 MB/s的数据写入。默认情况下无需调整该参数取值。

"process_thread_count" : 1
send_request_concurrencyint异步并发的个数。取值如下:
  • 取值范围:1~1000
  • 默认值:20

如果写入TPS很高,可以设置更高的异步并发个数。可以按照一个并发支持0.5 MB/s~1 MB/s网络吞吐来计算,实际根据网络延时而定。

说明 设置异步并发个数过高容易导致网络端口占用过多,需调整TCP相关参数。更多信息,请参见调整TCP相关参数

"send_request_concurrency" : 4
buffer_file_numint限制缓存文件的最大数目。取值如下:
  • 取值范围:1~100
  • 默认值:25

遇到网络异常、写入配额超限等情况时,Logtail将实时解析后的日志写入本地文件(安装目录下)缓存起来,等待恢复后尝试重新发送。

"buffer_file_num" : 25
buffer_file_sizeint单个缓存文件允许的最大字节数。取值如下:
  • 取值范围:1048576(Byte)~104857600(Byte)
  • 默认值:20971520(Byte)

buffer_file_size*buffer_file_num是缓存文件可以实际使用的最大磁盘空间。

"buffer_file_size" : 20971520
buffer_file_pathString缓存文件存放目录。 默认值为空,即缓存文件存放于logtail安装目录/usr/local/ilogtail下。

当您设置此参数后,需手动将原目录下名为logtail\_buffer\_file_*的文件移动到此目录,以保证Logtail可以读取到该缓存文件并在发送后进行删除。

"buffer_file_path" : ""
bind_interfaceString本机绑定的网卡名。默认值为空,自动绑定可用的网卡。

如果设置为指定的网卡(例如eth1),则表示Logtail将强制使用该网卡上传日志。

只支持Linux版本。

"bind_interface" : ""
check_point_filenameStringLogtail的checkpoint文件的保存路径, 默认为/tmp/logtail_check_point。

建议Docker用户修改checkpoint文件保存路径,并将宿主机挂载此路径,否则容器释放时会因丢失checkpoint信息而造成重复采集。例如在Docker中设置check_point_filename为/data/logtail/check_point.dat,在Docker启动命令中增加-v /data/docker1/logtail:/data/logtail, 将宿主机/data/docker1/logtail目录挂载到Docker中的/data/logtail目录。

"check_point_filename" : /tmp/logtail_check_point
check_point_dump_intervalintLogtail更新Checkpoint文件的周期,默认值:900,单位:秒。即默认情况下每15分钟更新一次Checkpoint文件。

仅支持Logtail 1.0.19及以上版本。

"check_point_dump_interval" : 900
user_config_file_pathStringLogtail配置文件的保存路径,默认为进程binary所在目录,文件名为user_log_config.json。

建议Docker用户修改Logtail配置文件保存路径,并将宿主机挂载此路径,否则容器释放时会因丢失checkpoint信息而造成重复采集。例如在Docker中设置user_config_file_path为/data/logtail/user_log_config.json,在Docker启动命令中增加-v /data/docker1/logtail:/data/logtail, 将宿主机/data/docker1/logtail目录挂载到Docker中的/data/logtail目录。

"user_config_file_path" : user_log_config.json
docker_file_cache_pathString该文件记录了容器文件到宿主机文件的路径映射,默认为/usr/local/ilogtail/docker_path_config.json。

建议Docker用户修改该文件路径,将Logtail容器中的此路径挂载到宿主机上,否则Logtail容器释放时会因为丢失映射信息而造成重复采集。例如在Docker中设置docker_file_cache_path为/data/logtail/docker_file_cache.dat,在Docker启动命令中增加-v /data/docker1/logtail:/data/logtail,将宿主机/data/docker1/logtail目录挂载到Docker中的/data/logtail目录。

仅支持Logtail 0.16.54及以上版本。

"docker_file_cache_path": /usr/local/ilogtail/docker_path_config.json
discard_old_dataBoolean是否丢弃历史日志。默认值:true,表示丢弃距离当前时间超过12小时的日志。"discard_old_data" : true
working_ipStringLogtail上报本服务器的IP地址。默认值为空,表示自动从本服务器获取IP地址。"working_ip" : ""
working_hostnameStringLogtail上报的本服务器的主机名。默认值为空,表示自动从本服务器获取主机名。"working_hostname" : ""
max_read_buffer_sizelong每条日志读取的最大值。默认值:524288,单位:Byte。

如果您的单条日志超过524288 Byte(512 KB),可修改此参数。

"max_read_buffer_size" : 524288
oas_connect_timeoutlongLogtail发起获取Logtail配置、访问密钥等请求时,连接阶段的超时时间。默认值:5,单位:秒。

网络条件较差,建立连接时间过长时可修改此参数。

"oas_connect_timeout" : 5
oas_request_timeoutlongLogtail发起获取Logtail配置、访问密钥等请求时,整个请求阶段的超时时间。默认值:10,单位:秒。

网络条件较差,建立连接时间过长时可修改此参数。

"" : 10
data_server_portlong设置data_server_port为443后,Logtail将通过HTTPS协议传输数据到日志服务。

仅支持Logtail 1.0.10及以上版本。

"data_server_port": 443
enable_log_time_auto_adjustBoolean设置enable_log_time_auto_adjust为true后,日志时间可自适应服务器本地时间。

出于数据安全考虑,日志服务会对请求(包括Logtail发起的请求)所携带的时间进行校验,拒绝与日志服务端时间相差超过15分钟的请求。Logtail发起请求时所携带的时间为服务器本地时间,当服务器本地时间被修改后(例如某些测试场景下需要调整本地时间为未来时间),Logtail请求将被拒绝,导致写入数据失败。您可以使用该参数实现日志时间自适应服务器本地时间。

仅支持Logtail 1.0.19及以上版本。

注意

  • 开启该功能后,日志时间将被加上日志服务端的时间与服务器本地时间的偏移量。由于偏移量只在请求被日志服务端拒绝时更新,因此可能出现日志服务端所查询到的日志的时间和日志实际的写入时间不一致的情况。
  • Logtail的部分逻辑依赖于系统时间的递增,建议在每次机器时间调整后重启Logtail。

"enable_log_time_auto_adjust": true
accept_multi_configBoolean是否允许多个Logtail配置采集同一个文件。默认值:false,表示不允许。

默认情况下,一个文件只能被一个Logtai配置采集,您可以通过该参数消除限制。每个Logtail配置的处理过程是独立的,当允许多个Logtai配置采集同一个文件时,需要消耗多倍的CPU、内存开销。

仅支持Logtail 0.16.26及以上版本。

"accept_multi_config": true
enable_checkpoint_sync_writeBoolean是否开启sync写功能。默认值:false,表示不开启。

sync写功能主要用于搭配ExactlyOnce写入功能。开启ExactlyOnce写入功能后,Logtail会在本地磁盘记录细粒度的Checkpoint信息(文件级别)。但出于性能考虑,默认写入Checkpoint时不会调用sync落盘,所以如果机器重启导致buffer数据来不及写入磁盘时,可能导致Checkpoint丢失。此时,您可以设置enable_checkpoint_sync_write为true,开启sync写功能。更多信息,请参见附录:ExactlyOnce写入功能说明

仅支持Logtail 1.0.20及以上版本。

"enable_checkpoint_sync_write": false

修改完,重启Logtail使配置生效

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用和引用的内容,titanagent.service是一个服务,其中配置了CPUQuota=50%的参数。这个参数会隐性开启CPUAccounting功能。然而,由于CPUAccounting会导致无法创建real-time进程,而crs的启动需要real-time进程,所以导致crs无法正常启动。为了解决这个问题,建议将titanagent.service中的CPUQuota=50%配置去掉,以免下次重启仍然报错。的内容,titanagent进程占用了131429的内存,而与之相关的其他进程如rsyslogd、tuned和ilogtail也占用了一定的内存。总计这些进程的内存占用量约为1.9G。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [titanagent服务导致oracle数据库集群cssd进程无法启动](https://blog.csdn.net/weixin_38428614/article/details/130507734)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [一次系统宕机认识系统日志](https://blog.csdn.net/f80407515/article/details/117713689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值