目前有一个狸厂乞丐版 vps,1 核 1G,40G 存储.
在运行几个 web 服务以后,内存就见底了.而后由于 node 部署的问题,需要重新编译下模块,就由于内存不足编译失败了.
灵机一动,df -h 看了下,没有 swap.所以创建了一个文件交换区
dd if=/dev/zero of=/myswap
mkswap /myswap
swapon /myswap
vps 基本上就自己用,所以性能不是很看重. 麻烦大家评点下,这种做法还有什么缺陷或者什么建议么?
其实没必要,内存被占的主要是 buff/cache,搞个 cron 每天清一下 cache 就 ok 了
swap 还是挺有用的,至少比没有好,但是 swap 交换频繁会影响磁盘 IO
所有的云都没有 swap 分区的,因为所有虚机共享存储,做这个影响你自己也影响别人磁盘 io
vps 的 io 根本满足不了 swap 的性能需求。
vps 上临时用可以,编译完后就 swapoff 吧
如果有 fallocate 命令就没必要用 dd 浪费时间了。
自己用还怕什么性能,硬盘当内存用随便上就行。
低配版挂编译就是进 screen 开个 swap 然后收工睡觉等第二天起来再看结果(
前两天有一次编译 chromium 跑了 20 多小时(当时那个 vps 比我的老爷机性能还强)
> To make the most efficient use of real memory, Linux automatically uses all free RAM for buffer cache, but also automatically makes the cache smaller when programs need more memory.
> Under Linux, you do not need to do anything to make use of the cache, it happens completely automatically. Except for following the proper procedures for shutdown and removing floppies, you do not need to worry about it.
Ref from: https://www.tldp.org/LDP/sag/html/buffer-cache.html
有个说发 就是 本地静态编译一个,然后打包上传到 vps 上。。。
虽然是石头盘,但对于偶尔突发的大内存需求,swap 总比 SIGKILL 强
最后还是就那么挂着了,感谢大家的帮忙!