版本 3.1
问题背景:之前用私有部署,从来不清理缓存,结果造成内存占用过高,服务器总是掉线。
尝试过的方法:
- 通过 mingdao 的配置文件限制 Redis 的内存占用。有用,但是用处不大, 因为只限制 Redis,时间长了,一样的内存占用就起来了。
- 给服务器添加自动清理缓存脚本。有用,但用处不大,因为主要的占用其实是 docker 运行的容器。 给服务器清理缓存只是挠痒痒。
- 限制 docker 容器的内存占用。 应该这就是究极方法了。今天刚开始用,还没有经历长测,所以效果后面再持续反馈。
步骤:
- 先
docker stats
查看内存占用,找到那个占用特别高的。 一般就两个,一个是明道服务容器,一个是文件预览服务容器。 明道服务容器 3.1 的稳定占用应该在 12G 以上,很多。如图: - 然后用
docker update --memory 14500m --memory-swap -1 容器ID
来限制大小,14500 就是 14.5G 这样基本上我可以留 1G 给服务器,支持 nginx 和其他服务免得掉线。