« 上一篇下一篇 »

Linux swap是干什么用的?linux 系统的swap虚拟内存不足时的扩容方法

   swap是干什么用的?
  在Linux下,SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。

  SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为SWAP OUT。当某进程又需要这些数据且OS发现还有空闲物理内存时,又会把SWAP分区中的数据交换回物理内存中,这个过程称为SWAP IN。

 swap的容量有多少

   当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存

    这篇文章主要介绍了linux swap交换内存扩容的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

   swap交换内存主要是指当物理内存不够用时,系统会启用硬盘的一部分空间来充当服务器内存,而默认情况下swap内存会有一些设置标准,它与物理内存的大小也是有关系的,具体标准如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
Ram大小   Swap大小  激活Swap后合计大小
256MB   256MB   512MB
512MB   512MB   1GB
1GB     1GB     2GB
3GB     2GB     5GB
4GB     2GB     6GB
6GB     2GB     8GB
8GB     3GB     11GB
12GB    3GB     15GB
16GB    4GB     20GB
32GB    6GB     38GB
64GB    8GB     72GB
128GB   11GB    139GB

查看内存空间

1
free -h

解决方法一:

通过swap分区文件增加swap空间

1. 创建swap分区的文件

1
dd if=/dev/zero of=/data2/swapfile bs=1M count=1024

其中bs是每块的大小,count是块的数量;bs*count,就是swap文件的大小:这里1M*1024=1G。可以根据需要自行调整。此外,swapfile是swap文件的路径,可以根据需求修改。

2. 格式化交换分区文件

1
mkswap swapfile

这里的路径和之前的路径要对应起来。

3. 启用swap分区文件

1
swapon swapfile

4. 添加开机启动

修改/etc/fstab这个文件,添加或者修改这一行:

1
swapfile swap swap defaults 0 0

注意,路径还是要对应,而且必须是全路径。最后两个是零,不是大写字母O。

此项不是必须的。如果不修改开机启动配置,重启之后的swap空间会重置,之前配置丢失。

   在使用java程序时,我们需要设置它的最大堆内存,这是对系统的一种保护。

到此这篇关于linux~swap交换内存的扩容的文章就介绍到这了,更多相关linux~swap交换内存的扩容内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持之家!

 解决方法二:
2.1 创建分区
以下的操作都要在root用户下进行,首先先建立一个分区,采用dd命令比如
dd if=/dev/zero of=/tmp/swapfile bs=1024 count=8192000
这样就会创建/tmp/swapfile这么一个分区文件。文件的大小是8192000个block,一般情况下1个block为1K,所以这里空间是7.8G。
2.2 指定分区类型为swap
把分区变成swap分区,使用mkswap命令如下
/sbin/mkswap /tmp/swapfile
再接着使用这个swap分区,使其成为有效状态。
/sbin/swapon /tmp/swapfile
现在再用free -m命令查看一下内存和swap分区大小,就发现增加了7.8G的空间了。
2.3 设置扩展的swap分区为自动挂载
不过当计算机重启了以后,发现swap还是原来那么大,新的swap没有自动启动,还要手动启动。
那我们需要修改/etc/fstab文件,增加如下一行如下自动挂载命令行
/tmp/swapfile swap swap defaults 0 0
就可以在机器启动以后swap空间也增大了