没有 swap 的副作用?

2018-05-13 23:19:09 +08:00
 raawaa
系统偶尔会出现内存和 CPU 跑满的情况,系统响应变得非常慢,基本上像死机状态。

莫非和我没有 swap 有关?

吓死了,赶紧去加了一个 swap file
8742 次点击
所在节点    Linux
34 条回复
wonpain
2018-05-13 23:22:04 +08:00
还是内存不够大
vegito2002
2018-05-13 23:23:44 +08:00
加 swap 不如加内存
summerwar
2018-05-13 23:24:28 +08:00
加内存 加 cpu
fangxing204
2018-05-13 23:37:46 +08:00
是的,我以为 8g 内存差不多了,所以装系统就没分 swap,结果发现打开太多东西经常卡死,楼上说的都对,但是,我穷,选择连加个 swapfile,明显不会出现卡死的情况了。可以参考这里 https://askubuntu.com/a/796997/649754
Nitroethane
2018-05-14 01:00:53 +08:00
没有 swap 以及 swap 太小的话没办法休眠的吧
iir910
2018-05-14 01:44:38 +08:00
这年头,4G 是入门,8G 是凑合.16G 才够用.
要不是现在的内存价格死贵,我早就买 16G 了.
innoink
2018-05-14 01:46:42 +08:00
8g 内存一般不会占满吧,除非某些 bug 内存泄露之类的
mmqc
2018-05-14 02:26:49 +08:00
我目前机器 8g 机器上跑:网易云,chrome,telegram,golddict,medeley 内存占用大概 3.3g 没跑 ide,写代码用 vim。就这样,开了 mariadb 偶尔也会出现假死现象。。。对了,我分的 swap 是 16g。。。不知道啥情况
msg7086
2018-05-14 03:27:47 +08:00
对于内核来说,软件的内存使用量分两种,一种是占用的量,比如申请内存以后在里面存放了数据就属于占用;另一种是申请的量,比如申请内存以后没有写入数据。

其中的申请量是检测虚拟内存是否足够的依据。比如在 Windows 下,你有 8G 物理内存和 4G 分页文件,那么申请量最大不能超过 12G,超过了内核就会开始杀进程。Linux 下有 Overcommit 机制,可以让你适当多申请一些内存,超过物理内存和交换区的总和,但是这也是有上限的。低价 VPS 上开 MySQL 经常被杀进程就是因为 MySQL 申请量超过了 Overcommit 的上限。

有钱可以加物理内存,没钱的话还是加 Swap 比较好,对于申请且没有使用的内存部分,分页到 Swap 是不会影响性能的。
19tj
2018-05-14 03:41:25 +08:00
楼上大神,真∵夜猫
loading
2018-05-14 06:07:38 +08:00
free 命令,了解一下。
iwtbauh
2018-05-14 08:25:50 +08:00
@fangxing204 别加 swap 文件,想办法加 swap 分区。前者要多很多性能损失。
iwtbauh
2018-05-14 08:27:39 +08:00
副作用是有的,会多很多磁盘 I/O,而且硬盘速度肯定是不如物理内存的。但是如果内存确实不够是应该加的。

“偶尔会出现内存和 CPU 跑满”,top 命令看看是什么东西吃内存和 CPU
Love4Taylor
2018-05-14 08:29:41 +08:00
如果 CPU 余量很足的话 就上 zram/zswap 吧
yu099
2018-05-14 08:33:23 +08:00
@19tj 别人在美国吧
ZackB0T
2018-05-14 08:36:32 +08:00
vm.swappiness,了解下
ccsexyz
2018-05-14 08:46:08 +08:00
如果是服务器的话,是不应该开 swap 的
liuminghao233
2018-05-14 09:15:35 +08:00
没 swap 内存一爆直接 kill 进程
开了有 swap 就算是用 ssd,内存占用大了一样卡
raawaa
2018-05-14 09:52:10 +08:00
@iwtbauh 爆满的时候电脑没响应了,连 top 指令都没法输入。
snail1988
2018-05-14 10:16:21 +08:00
现在 16G 是入门 32G 标配。。。不上 swap 起码 16G

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

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

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

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

© 2021 V2EX