« 上一篇下一篇 »

CentOS7/Linux系统可使用运行内存不足的解决方法,设置虚拟扩展内存

  有些朋友因为资金问题,在选用云服务器时选择了最低内存配置的,在后面的使用过程过经常出现内存长期处于满负荷状态,影响的服务器的响应速度。比如说最近一个新人朋友买了一个CentOS的云主机,只有500M内存,所以导致物理内存经常处于饱和状态,经常反映服务器卡,理论上讲虚拟内存应该要有物理内存的2倍也就是1G大小才够用!那么除了加钱来升级购买物理内存外,有没有其他可以缓解内存不足的情况呢,下面看下实际案例

  由于他安装比较多的其他工具,提示内存不足,所以想用提高虚拟内存的方法去安装这个软件,本来都已经安装完了,今天手贱把Linux重启了一下,没看仔细,不过也不是坏事情,正好记录下设置过程,以便下次再重启的时候方便设置!

1.打开终端,切换到root用户,输入:free -m查看内存状态
[maker@LLM ~]$ free -m
              total        used        free      shared  buff/cache  available
Mem:            992        189          79          13        722        614
Swap:            0          0          0
Swap也就是虚拟内存为0

2.选择一个较大的分区,建立分区文件
[root@LLM ~]# dd if=/dev/zero of=/opt/swap bs=1024 count=1024000
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 16.6877 s, 62.8 MB/s
[root@LLM ~]#

该命令表示在opt分区建立名为swap,大小为1G的虚拟内存文件

3.将swap文件设置为swap分区文件
chmod 600 /opt/swap    //注意更改swap文件的权限
[root@LLM ~]# mkswap /opt/swap
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=fc47f29e-31af-401e-856d-0fec5262179e

4.激活swap,启用分区交换文件
swapon /opt/swap

5.现在看下结果
[root@LLM ~]# free -m
              total        used        free      shared  buff/cache  available
Mem:            992        191          63          13        737        625
Swap:          999          0        999

虚拟内存的设置部分就完成了,接下来讲一下卸载虚拟内存,这个需求也是存在的,比如你走上人生巅峰了,不屑于使用虚拟内存,就需要卸载掉了,就是任性!

1.首先停止swap分区
[root@LLM ~]# swapoff /opt/swap
[root@LLM ~]# free -m
              total        used        free      shared  buff/cache  available
Mem:            992        191          63          13        738        626
Swap:            0          0          0

2.其次删除掉swap文件即可
首先看一下磁盘大小
[root@LLM ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  3.9G  34G  11% /
devtmpfs        487M    0  487M  0% /dev
tmpfs          497M  4.0K  497M  1% /dev/shm
tmpfs          497M  420K  496M  1% /run
tmpfs          497M    0  497M  0% /sys/fs/cgroup
tmpfs          100M    0  100M  0% /run/user/0
tmpfs          100M    0  100M  0% /run/user/1001
[root@LLM ~]# rm -rf /opt/swap
[root@LLM ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  3.0G  35G  8% /
devtmpfs        487M    0  487M  0% /dev
tmpfs          497M  4.0K  497M  1% /dev/shm
tmpfs          497M  420K  496M  1% /run
tmpfs          497M    0  497M  0% /sys/fs/cgroup
tmpfs          100M    0  100M  0% /run/user/0
tmpfs          100M    0  100M  0% /run/user/1001

可以看出删除后多了1G的空间。

 小结:

在linux磁盘刚分区的时候,我们会划分一个swap分区,这块分区作为一块虚拟内存,承担着扩充内存的作用。然而在工作中我们会遇到虚拟内存也不够用的情况,这个时候我们也不能重新给磁盘进行分区,只能通过增加一个swap文件,来扩充我们的虚拟内存。如果设置了虚拟内存也还是解决不了的话,建议朋友们还是增加物理内存,毕竟数据吧的云服务器配置增加内存弹性度比较高。