运行环境
| 限制项 | 限制说明 |
|---|---|
| 体系结构 |
|
| 计算资源 |
实际使用量与采集速率、监控目录和文件数量、发送阻塞程度有关,请保证实际使用率 < 限制80%。 |
| 系统环境 | 参见下面表格 支持操作系统 和 支持CPU架构 |
| 存储介质 | 不建议使用共享网络存储介质,如NAS、OSS,否则可能导致数据截断、内容不一致或采集停止。 |
支持操作系统
| 操作系统 | 发行版 | 架构 |
|---|---|---|
| Linux | RedHat Enterprise 6、7、8 | x86_64 |
| Linux | CentOS 6、7、8 | x86_64 |
| Linux | CentOS Stream 8 | x86_64 |
| Linux | Debian 8、9、10、11 | x86_64 |
| Linux | Ubuntu 14.04、16.04、18.04、20.04 | x86_64 |
| Linux | SUSE Linux Enterprise Server 11、12、15 | x86_64 |
| Linux | OpenSUSE 15.1、15.2、42.3 | x86_64 |
| Linux | 其他基于glibc 2.5及以上版本的Linux操作系统 | x86_64 |
| Linux | CTyunOS 2.0.1 64位 ARM版 | ARM |
| Linux | KylinOS V10 SP1、SP2、SP3 64位 ARM版 | ARM |
| Linux | openEuler 22.03 SP2 64位 ARM版 | ARM |
| Linux | UOS-V20_1050u1e-aarch64 | ARM |
支持CPU架构
| CPU 架构 | 规格 | 规则族 | (虚拟 )CPU 型号 | 是否支持 |
|---|---|---|---|---|
| X86计算 | 通用型 | 通用型s8e | INTER(R) XEON(R) PLATINUM 8566C | ✓ |
| 通用型s8r | ✓ | |||
| 通用型s8 | ✓ | |||
| 通用型s7 | Inter Xeon Processor (Icelake) | ✓ | ||
| 通用型s6 | ✓ | |||
| 海光通用型hs1 | Hygon Dhyana Processor | ✓ | ||
| 计算型 | 计算型c8e | ✓ | ||
| 计算型c8 | ✓ | |||
| 计算型c7 | ✓ | |||
| 计算型c6 | ✓ | |||
| 海光计算型hc1 | ✓ | |||
| 内存型 | 内存型m8e | ✓ | ||
| 内存型m8 | ✓ | |||
| 内存型m7 | ✓ | |||
| 内存型m6 | ✓ | |||
| 海光内存型hm1 | ✓ | |||
| 增强型 | 网络增强型c8ne | INTER(R) XEON(R) PLATINUM 8566C | ✓ | |
| 网络增强型m8ne | ✓ | |||
| 本地盘型 | 超高IO型ip3 | Inter Xeon Processor (Icelake) | ✓ | |
| GPU加速/AI加速型 | GPU计算加速型p8a | ✓ | ||
| GPU计算加速型pn8i | ✓ | |||
| GPU计算加速型pi7 | ✓ | |||
| GPU图形加速基础型g7 | Inter Xeon Processor (Icelake) | ✓ | ||
| 经济型 | 经济型e | Inter Xeon Processor (Cascadelake) | ✓ | |
| ARM计算 | 通用型 | 鲲鹏通用型ks1 | Kunpeng-902 | ✓ |
| 飞腾通用型fs1 | Phytium S2500 | ✓(需升级到v2.1.1 版本) | ||
| 计算型 | 鲲鹏计算型kc1 | Kunpeng-902 | ✓ | |
| 飞腾计算型fc1 | Phytium S2500 | ✓(需升级到 v2.1.1 版本) | ||
| 内存型 | 鲲鹏内存型km1 | Kunpeng-902 | ✓ | |
| 飞腾内存型fm1 | Phytium S2500 | ✓ (需升级到 v2.1.1 版本) |
性能
单核的能力如下:
极简模式日志最大处理能力为100 MB/s。
正则默认最大处理能力为20 MB/s(与正则表达式的复杂度有关)。
分隔符日志最大处理能力为40 MB/s。
JSON日志最大处理能力为30 MB/s。
可调整启动和资源限制参数来提升性能。
推荐参数值
主机环境
| 参数 | 默认的采集速率 | 采集速率大于5 MB/s | 采集速率大于10 MB/s | 采集速率大于20 MB/s | 采集速率大于40 MB/s |
| cpu_usage_limit | 0.4 | 1 | 2 | 2 | 4 |
| mem_usage_limit | 384 | 1024 | 1024 | 2048 | 4096 |
| process_thread_count | 1 | 2 | 2 | 4 | 8 |
| send_request_concurrency | 4 | 4 | 20 | 40 | 80 |
资源限额参数需要修改 /etc/systemd/system/lmtagent.service 中如下部分:
MemoryMax=384M
MemoryAccounting=yes
MemoryLimit=384M
MemoryHigh=384M
CPUQuota=50%启动参数需要修改 /app/cams/lmtagent/config.json 中如下部分:
"process_thread_count": 4,
"send_request_concurrency": 4,
最后通过如下命令重启采集器生效
sudo systemctl daemon-reload && sudo systemctl restart lmtagent容器或Kubernetes环境
| 环境变量 | 默认的采集速率 | 采集速率大于5 MB/s | 采集速率大于10 MB/s | 采集速率大于20 MB/s | 采集速率大于40 MB/s |
| cpu_usage_limit | 1 | 2 | 3 | 4 | 10 |
| mem_usage_limit | 1024 | 2048 | 2048 | 4096 | 4096 |
| process_thread_count | 2 | 2 | 2 | 4 | 8 |
| send_request_concurrency | 4 | 4 | 20 | 40 | 80 |
| resources.limits.cpu | 1000M | 2000M | 3000M | 4000M | 10000M |
| resources.limits.memory | 1 Gi | 2 Gi | 2 Gi | 4 Gi | 4 Gi |
需要到云容器引擎CCE控制台-插件-插件实例 选择 ctg-log-operator 选择更新,修改如下配置:
procesThreadCount: 2
resources:
limit:
cpu: "1000m"
memory: "1000Mi"
request:
cpu: "10m"
memory: "200Mi"
selfMonitor:
cpuUsageLimit: 10
memUsageLimit: 1024
sendRequestConcurrency: 4其中 resources.limit 为Kubernetes 资源限制,selfMonitor 为采集器内部资源监控,默认配置中两处基本一致;
如果希望优先使用Kubernetes 资源限制,可以把selfMonitor调整比resources.limit大
如果希望优先使用采集器内部资源管控,可以把selfMonitor调整比resources.limit小
注意
resources.limit.memory 超限会触发Kubernetes资源管控导致lmtagent强制重启,此时数据可能会丢失或重复;
占用相关资源超过selfMonitor最大限制的时间5分钟,则lmtagent会强制重启,此时数据可能会丢失或重复。
如果下发的采集配置多或者采集目标文件非常多,请调高内存上限,使其高于上面表格中的推荐值。
如果下发的采集配置中有很多JSON或者正则解析处理插件,请调高CPU上限,使其高于上面表格中的推荐值。
压测数据
在单主机上性能压测数据如下:
| 测试场景 | 实例类型 | 日志生产速率 | 下发采集配置数 | lmtagent:v2.1.1 | lmtagent:v2.0.0 | ||||
|---|---|---|---|---|---|---|---|---|---|
最高CPU占用 (单位:核) | 最高内存占用 (单位:MB) | 采集延迟 | 最高CPU占用 (单位:核) | 最高内存占用 (单位:MB) | 采集延迟 | ||||
| 无采集配置 | 主机 | - | 0 | 0.006 | 101 | 无 | 0.00467 | 109 | 无 |
极简单配置 (不包含 JSON/正则解析等)
| 主机 | 1MB/s | 1 | 0.16 | 118 | 无 | 0.0710 | 123 | 无 |
| 5MB/s | 1 | 0.500 | 140 | 无 | 0.498 | 143 | 无 | ||
| 10MB/s | 1 | 0.500 | 137 | 延迟1min | 0.499 | 149 | 延迟2min | ||
| 20MB/s | 1 | 0.501 | 145 | 延迟4min | 0.498 | 150 | 延迟4min | ||
| 40MB/s | 1 | 0.502 | 145 | - | 0.499 | 148 | 延迟10min | ||
| 100MB/s | 1 | 0.503 | 148 | - | 0.500 | 150 | 延迟15min | ||
极简多配置 (不包含 JSON/正则解析等) | 主机 | 1MB/s | 10 | 0.503 | 202 | 延迟2min | 0.427 | 235 | 延迟2min |
| 5MB/s | 10 | 0.503 | 181 | - | 0.5 | 238 | - | ||
| 1MB/s | 100 | 0.506 | 488 | - | 0.499 | 1030 | - | ||
| 5MB/s | 100 | 0.514 | 478 | - | 0.5000 | 1010 | - | ||
| 1MB/s | 200 | 0.514 | 843 | - | 0.499 | 1760 | - | ||
| 1MB/s | 500 | 0.497 | 1760 | - | - | 超过2000 | - | ||
| 1MB/s | 1000 | - | 超过4000 | - | - | 超过4000 | - | ||
- 表示延迟过大,未统计