前阵子入手了一个2c2g轻量云一直闲置,正好最近需要编译和部署的东西多了准备用来搭建Drone CI/CD来解放双手,装好后顺手试一下居然给我卡死!!用阿里云自带健康诊断检测是磁盘IO问题
如何引起
云服务器默认是禁swap的,那么在内存满时只能去频繁回收内存和预读pagecache了,恰巧编译是个“空间换时间”的场景,在恰巧轻量云用的是机械硬盘,那么磁盘被打满也就不奇怪了。
解决
- 加内存(钞能力)
- 优化内存占用
- 没搜到crossgen2有关内存配置,只能在.drone.yml文件里面限制docker容器了
- 开swap赌闲置的内存够多
- 推荐使用zram