【容器日志采集】【踩坑】【1】<jemalloc>: Unsupported system page size
🧱 Fluent Bit jemalloc 踩坑记录(鲲鹏 / 麒麟环境)
📌 问题背景
- 硬件:Kunpeng 920(aarch64)
- 系统:KylinOS
- 镜像:
ghcr.m.daocloud.io/openinsight-proj/fluent-bit:4.0.1 - 报错:
<jemalloc>: Unsupported system page size
Aborted (core dumped)
👉 原因:Fluent Bit 官方镜像默认开启 jemalloc,要求系统 pagesize = 4096,而麒麟环境通常为 65536(64K),不兼容。
🧪 1. 确认系统 pagesize
getconf PAGESIZE
输出:
65536
⚠️ 如果不是 4096,就不能直接使用开启 jemalloc 的官方镜像。
✅ 2. 解决方案
方案一:使用社区镜像(已关闭 jemalloc)
直接使用编译时关闭 jemalloc 的社区镜像👇
#增加仓库
registry-mirrors": [
"https://ghcr.m.daocloud.io"
]
#拉取镜像
docker pull ghcr.m.daocloud.io/openinsight-proj/fluent-bit:4.0.1
💡 我目前只验证过
4.0.1这个版本可用,其他版本可根据实际情况自行查找测试。
方案二:关闭 jemalloc 并自行编译
自行拉取源码并关闭 jemalloc:
git clone https://github.com/fluent/fluent-bit.git
cd fluent-bit
git checkout v4.0.1
mkdir build && cd build
cmake -DFLB_JEMALLOC=Off ..
make -j$(nproc)
docker build -t fluent-bit-arm64:4.0.1 .
在 K8s 配置中不需要额外设置 jemalloc 变量,直接使用自编译镜像即可 ✅
📝 小结
| 项目 | 官方镜像 | 麒麟环境 |
|---|---|---|
| jemalloc 需求 | 4096 page | 65536 page(不兼容) |
| 解决方式一 | 自行编译关闭 jemalloc | ✅ 推荐 |
| 解决方式二 | 使用社区已编译镜像(2.0.5) | ✅ 可直接用 |
| 其他版本 | 未测试 | 需自行验证 |
✅ 一句话总结:
如果
getconf PAGESIZE不是 4096 → 关闭 jemalloc 或 使用社区关闭 jemalloc 的版本 🚀

浙公网安备 33010602011771号