centos 内存不足开始占用虚拟内存时经常会出现 device is busy 该怎么办?

2014-08-12 17:22:20 +08:00
 bobopu
目前是16G内存,当然最好的办法就是升级内存,但预算有限(得下月资金才能到账),一下子升级到32G还是有点困难。目前物理内存占用92%,虚拟内存已占用1G左右(总共设置了32G),程序加载已经开始出现device is busy错误了,得反复加载多次才能成功。不是说物理内存全部用完才会开始占用虚拟内存么,这物理内存还剩8%怎么就开始占用swap了?这有什么好的临时解决办法吗?
4560 次点击
所在节点    Linux
10 条回复
pfitseng
2014-08-12 17:48:47 +08:00
把自己的笔记本插上去。。。
msg7086
2014-08-12 18:55:51 +08:00
vm.swappiness

另外,减少swap占用,通常会降低性能。
sixteen
2014-08-12 20:45:13 +08:00
都不说使用哪个虚拟化前端么?
freetg
2014-08-13 01:03:18 +08:00
有一部分内存应该是cache,可以尝试清除 echo 3 > /proc/sys/vm/drop_caches ,
使用swap会增加io,导致性能下降
msg7086
2014-08-13 01:36:18 +08:00
@freetg 不用cache性能掉得更快。
freetg
2014-08-13 01:43:38 +08:00
@msg7086 cache里有一部分是脏数据,可以定期清除,并不是不用
msg7086
2014-08-13 01:47:00 +08:00
@freetg swap里大部分都是长期不用的数据,比起cache来说更没用…
freetg
2014-08-13 02:04:10 +08:00
@msg7086 swap和cache不是一会事,swap是物理内存不够挪过去的进程数据,是不能直接清的,而cache是文件读写缓存,可以随时清且不影响系统正常运行
msg7086
2014-08-13 05:53:56 +08:00
@freetg 我说的没用,是说就算放在swap里也不会影响性能的意思。我没说他们是一回事…

倒是缓存,本来就是提高性能的技术,清掉了当然会影响性能了。
riaqn
2014-08-13 08:37:36 +08:00
@freetg “swap是物理内存不够挪过去的进程数据”,实际上即使在内存充足时,默认的内存配置还是会把冷数据迁移到swap的。
http://askubuntu.com/questions/157793/why-is-swap-being-used-even-though-i-have-plenty-of-free-ram

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

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

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

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

© 2021 V2EX