linux只能用一半的内存,linux可用内存足够为什么还用swap

原标题:linux可用内存足够为什么还用swap

讨论这个问题前,我们先来看当前系统状态:

1

[root@localhost ~]# free -m

2

total used free shared buff/cache available

3

Mem: 31768 9809 363 9601 21595 11838

4

Swap: 8191 8191 0

为什么 buffer/cache 会占用这么多的内存?

buffer/cache使用过高通常是程序频繁存取文件后,物理内存会很快被用光。

当程序结束后,内存不会被正常释放,而是成为cache状态.

通常我们不需要手工释放swap,Linux会自动管理.

如果非要释放,请继续看.

如何释放占用的swap呢?

1

## 将内存缓冲区数据立刻同步到磁盘

2

[root@localhost ~]# sync

3

## 关闭所有的swap

4

[root@localhost ~]# swapoff -a

5

## 启用所有swap

6

[root@localhost ~]# swapon -a

7

[root@localhost ~]# free -m

8

total used free shared buff/cache available

9

Mem: 31768 10853 217 16740 20698 3658

10

Swap: 8191 0 8191

那么回到最初的问题:

linux可用内存足够为什么还用swap?

上面可以看到服务器共有32G内存,其中buff/cache占用了21G+.

明明还有可以将近12G的内存可以使用.但系统却偏偏占用完了swap的8G内存.

可知系统并没有自动释放buff/cache最大化利用内存.

原因:

内核参数 swappiness 的值的大小,决定着linux何时开始使用swap。

swappiness=0 时表示尽最大可能的使用物理内存以避免换入到swap.

swappiness=100 时候表示最大限度使用swap分区,并且把内存上的数据及时的换出到swap空间里面.

此值linux的基本默认设置为60,不同发行版可能略微不同.

查看命令具体如下:

1

[root@localhost ~]# cat /proc/sys/vm/swappiness

2

60

什么意思呢?

就是说,你的内存在使用率到40%(100%-60%)的时候,系统就会开始出现有交换分区的使用。

大家知道,内存的速度会比磁盘快很多,这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整。

调整值

1

[root@localhost ~]# sysctl vm.swappiness=10

2

vm.swappiness = 10

3

[root@localhost ~]# cat /proc/sys/vm/swappiness

4

10

重启依旧生效,需要在/etc/sysctl.conf修改:

1

[root@localhost ~]# cat /etc/sysctl.conf

2

vm.swappiness = 10

3

[root@localhost ~]# sysctl -p

题外话

通常我们还经常看到shared占用大量内存,shared表示共享内存的占用,

起决定参数的两个分别是:

1

# 定义单个共享内存段的最大值

2

3

4

# 定义共享内存页数

5

当前系统内存页大小查看:

1

[root@localhost ~]# getconf PAGESIZE

2

4096

当前系统共享内存段大小(bytes):

1

[root@localhost ~]# cat /proc/sys/kernel/shmmax

2

共享内存段个数查看:

1

[root@localhost ~]# ipcs -m

内存页和内存段是两种不同的内存管理方式,详细了解可以自行谷歌.

转载自:http://navo.top/neUb22返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值