迫于内存补足,创建了一个文件交换区

2019-05-12 12:03:44 +08:00
 cnfczn

目前有一个狸厂乞丐版 vps,1 核 1G,40G 存储. 在运行几个 web 服务以后,内存就见底了.而后由于 node 部署的问题,需要重新编译下模块,就由于内存不足编译失败了. 灵机一动,df -h 看了下,没有 swap.所以创建了一个文件交换区 dd if=/dev/zero of=/myswap mkswap /myswap swapon /myswap

vps 基本上就自己用,所以性能不是很看重. 麻烦大家评点下,这种做法还有什么缺陷或者什么建议么?

3575 次点击
所在节点    Linux
9 条回复
mayx
2019-05-12 12:09:06 +08:00
其实没必要,内存被占的主要是 buff/cache,搞个 cron 每天清一下 cache 就 ok 了

swap 还是挺有用的,至少比没有好,但是 swap 交换频繁会影响磁盘 IO
singerll
2019-05-12 12:09:40 +08:00
所有的云都没有 swap 分区的,因为所有虚机共享存储,做这个影响你自己也影响别人磁盘 io
loading
2019-05-12 12:11:22 +08:00
vps 的 io 根本满足不了 swap 的性能需求。
Homebrew
2019-05-12 12:13:42 +08:00
vps 上临时用可以,编译完后就 swapoff 吧
jackmod
2019-05-12 12:50:58 +08:00
如果有 fallocate 命令就没必要用 dd 浪费时间了。

自己用还怕什么性能,硬盘当内存用随便上就行。
低配版挂编译就是进 screen 开个 swap 然后收工睡觉等第二天起来再看结果(
前两天有一次编译 chromium 跑了 20 多小时(当时那个 vps 比我的老爷机性能还强)
HhZzXx
2019-05-12 20:28:55 +08:00
> 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
dorothyREN
2019-05-12 21:29:21 +08:00
有个说发 就是 本地静态编译一个,然后打包上传到 vps 上。。。
Arnie97
2019-05-13 10:25:48 +08:00
虽然是石头盘,但对于偶尔突发的大内存需求,swap 总比 SIGKILL 强
cnfczn
2019-05-13 15:20:12 +08:00
最后还是就那么挂着了,感谢大家的帮忙!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/563313

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX