首页 新闻 会员 周边 捐助

【Linux】swap空间使用求解

0
悬赏园豆:20 [已解决问题] 解决于 2017-10-09 20:21

大家好,请教一个Linux的问题,linux版本为redhat6.7。

在服务上使用top命令,结果如下:

1 top - 11:13:07 up 313 days, 19:54,  2 users,  load average: 17.95, 17.81, 17.37
2 Tasks: 1905 total,  30 running, 1874 sleeping,   0 stopped,   1 zombie
3 Cpu(s): 18.4%us, 18.3%sy,  0.0%ni, 63.2%id,  0.0%wa,  0.0%hi,  0.1%si,  0.0%st
4 Mem:  99014552k total, 88627940k used, 10386612k free,   841636k buffers
5 Swap: 32767996k total,   111728k used, 32656268k free, 30725500k cached

在free下执行结果如下:

1 [oracle@dfssrv2 ~]$ free -m
2              total       used       free     shared    buffers     cached
3 Mem:         96693      86919       9774          0        821      30044
4 -/+ buffers/cache:      56053      40640 
5 Swap:        31999        109      31890 

从2个结果上来看,内存一共有96GB,分配出去了86G(56GB已使用+30GB未使用),按照这个结果来看,实际上,可用内存应该大概还有40G。

我个人理解的swap区是:用来当内存使用的一块硬盘区,即在内存容量不够的时候,使用swap当内存使用。

那么问题来了,如果我服务器还有那么多的空闲内存(40GB),为什么还会使用到swap区?

是不是说,在某个时刻,我的内存使用量达到了100%, 然后去使用了109MB的swap分区?

 

gegeman的主页 gegeman | 初学一级 | 园豆:55
提问于:2017-10-09 11:30
< >
分享
最佳答案
1

会不会用到swap要看你的内核参数/proc/sys/vm/swappiness里的比例是多少,比如你有100g内存,但是你设置的参数是50,那么用到50g的时候就会开始使用swap了

收获园豆:20
北方姆Q | 小虾三级 |园豆:1120 | 2017-10-09 11:43

看了你的答案,有点明白了,我看了我的服务器的参数,设置为了60:

1 [oracle@dfssrv2 ~]$ cat /proc/sys/vm/swappiness 
2 60
gegeman | 园豆:55 (初学一级) | 2017-10-09 13:46

swappiness=0 的时候表示最大限度使用物理内存,然后才是swap空间;swappiness=100 的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面

nreg | 园豆:206 (菜鸟二级) | 2021-07-12 11:43

@nreg: ???

北方姆Q | 园豆:1120 (小虾三级) | 2021-07-12 14:11

@北方姆Q: 补充一下

nreg | 园豆:206 (菜鸟二级) | 2021-07-12 14:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册