阿里云logtail采集容器内日志到sls导致容器内存增加

现象

nginx容器接入logtail后,因为服务请求量较大导致日志量快速增加,很快就触发了内存告警,甚至触发容器伸缩
查看内存使用如图所示(单位:GB,统计参数:container_memory_working_set_bytes)
阿里云logtail采集容器内日志到sls导致容器内存增加_第1张图片

排查过程

略去一大波nginx参数配置的苦逼历程...
最终排查后发现nginx使用内存并不多,而大部分内存是被pagecache占用。因为logtail会读文件,文件会占用pagecache,这时候系统释放是比较慵懒的,所以pagecache越用越多,这部分内存随时都可以释放,但是在容器里,这是不合理的

随后进行了一些操作测试对内存占用的影响

  1. 清理容器内日志
  2. 宿主机上清理pagecache

内存清理情况如下图
阿里云logtail采集容器内日志到sls导致容器内存增加_第2张图片

解决

虽然在宿主机增加定时脚本清理pagecache最省力,但是影响范围过大,不是很合理。最终采用容器内增加定时清理日志脚本解决,效果如下图
阿里云logtail采集容器内日志到sls导致容器内存增加_第3张图片

你可能感兴趣的:(solve,阿里云,云计算,nginx,kubernetes)