现象
nginx容器接入logtail后,因为服务请求量较大导致日志量快速增加,很快就触发了内存告警,甚至触发容器伸缩
查看内存使用如图所示(单位:GB,统计参数:container_memory_working_set_bytes)
排查过程
略去一大波nginx参数配置的苦逼历程...
最终排查后发现nginx使用内存并不多,而大部分内存是被pagecache占用。因为logtail会读文件,文件会占用pagecache,这时候系统释放是比较慵懒的,所以pagecache越用越多,这部分内存随时都可以释放,但是在容器里,这是不合理的
随后进行了一些操作测试对内存占用的影响
- 清理容器内日志
- 宿主机上清理pagecache
内存清理情况如下图
解决
虽然在宿主机增加定时脚本清理pagecache最省力,但是影响范围过大,不是很合理。最终采用容器内增加定时清理日志脚本解决,效果如下图