在一核小内存机器上安装数据库,编译阶段被系统杀掉,日志只留下 killed 字样。乍看像缓存或者权限的锅,追下去往往不是。
fallocate -l 2G /swapfile chmod 600 /swapfile mkswap /swapfile && swapon /swapfile echo '/swapfile swap swap defaults 0 0' >> /etc/fstab
追下去是这么回事:物理内存不足以支撑编译和初始化,系统在内存耗尽时直接终止进程。
「编译内存不足」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。报错里带路径的,先去看那个路径在不在、权限对不对。
同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
具体做法是,临时增加交换分区;降低并发编译数;完成后按需保留交换空间。
验收就看一点,安装流程可以跑完,系统不再出现进程被杀。