技术解析

centos 内存不足开始占用虚拟内存时经常会出现 device is busy 该怎么办?
0
2021-07-16 19:54:36
idczone
目前是16G内存,当然最好的办法就是升级内存,但预算有限(得下月资金才能到账),一下子升级到32G还是有点困难。目前物理内存占用92%,虚拟内存已占用1G左右(总共设置了32G),程序加载已经开始出现device is busy错误了,得反复加载多次才能成功。不是说物理内存全部用完才会开始占用虚拟内存么,这物理内存还剩8%怎么就开始占用swap了?这有什么好的临时解决办法吗?
把自己的笔记本插上去。。。

vm.swappiness
另外,减少swap占用,通常会降低性能。

都不说使用哪个虚拟化前端么?

有一部分内存应该是cache,可以尝试清除 echo 3 > /proc/sys/vm/drop_caches ,
使用swap会增加io,导致性能下降

不用cache性能掉得更快。

cache里有一部分是脏数据,可以定期清除,并不是不用

swap里大部分都是长期不用的数据,比起cache来说更没用…

swap和cache不是一会事,swap是物理内存不够挪过去的进程数据,是不能直接清的,而cache是文件读写缓存,可以随时清且不影响系统正常运行

我说的没用,是说就算放在swap里也不会影响性能的意思。我没说他们是一回事…
倒是缓存,本来就是提高性能的技术,清掉了当然会影响性能了。

“swap是物理内存不够挪过去的进程数据”,实际上即使在内存充足时,默认的内存配置还是会把冷数据迁移到swap的。
http://askubuntu.com/questions/157793/why-is-swap-being-used-even-though-i-have-plenty-of-free-ram

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服