Linux添加SWAP 交换内存虚拟内存

一、前情

阿里云2G内存不够用,启动几个项目就全占满了
另外服务器没有swap虚拟内存
在这里插入图片描述

什么是SWAP?

Linux的内存分为 物理内存 和 虚拟内存,虚拟内存(SWAP)也叫交换区、交换分区等。当运行程序,产生进程时。系统会判断当前物理内存是否还有空闲内存 以允许进程调入内存运行,如果有那么 则直接调入内存进行运行;如果没有,那么会根据优先级选择一个进程挂起,把该进程交换到SWAP中等待,然后把新的进程调入到内存中运行。根据这种换入和换出,实现了内存的循环利用,让用户感觉不到内存的限制。从这也可以看出SWAP扮演了一个非常重要的角色,就是暂存被换出的进程。当物理内存使用完或者达到一定比例之后,系统会自动使用SWAP做临时的内存使用。当物理内存和SWAP都被使用完那么就会出错:out of memory

对于使用多大比例物理内存之后开始使用SWAP,在系统的配置文件中可以通过调整参数进行修改。

cat /proc/sys/vm/swappiness

默认是 60 ,一般不需要更改,当数值为 0 的时候,就会尽量使用物理内存直到用完才会使用SWAP,当数值为100 的时候,就会尽量使用SWAP。SWAP是从硬盘中虚拟出来的,所以速度由硬盘的读写速度决定,如果你的Linux服务器IO很低,硬盘是 HDD或者石头盘钻石盘,那么效果会很差。如果你的VPS没有SWAP,那么添加一些可能会提高性能,但不建议添加太多,否则也是浪费,而且SWAP始终是硬盘虚拟的,比不上物理内存。

二、操作

  1. 使用root用户登陆linux
  2. 先分出一个1G的硬盘
[root@iZ2ze77erlloowxo7d3ydrZ var]# dd if=/dev/zero of=/var/swapfile bs=1024 count=1024000
1024000+0 records in
1024000+0 records out
[root@iZ2ze77erlloowxo7d3ydrZ var]# du -ah /var|grep "swapfile"
1000M	/var/swapfile
  1. 初始化硬盘为swap格式
[root@iZ2ze77erlloowxo7d3ydrZ var]# mkswap /var/swapfile
mkswap: /var/swapfile: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 1000 MiB (1048571904 bytes)
no label, UUID=3542eeae-bb25-4668-96c3-448d68b32215
[root@iZ2ze77erlloowxo7d3ydrZ var]# swapon /var/swapfile
swapon: /var/swapfile: insecure permissions 0644, 0600 suggested.
#开机启动
[root@iZ2ze77erlloowxo7d3ydrZ var]# echo "/var/swapfile swap swapdefaults 0 0" >> /etc/fstab

  1. 查看下
[root@iZ2ze77erlloowxo7d3ydrZ var]# free -h
              total        used        free      shared  buff/cache   available
Mem:          1.8Gi       1.4Gi        67Mi       2.0Mi       322Mi       243Mi
Swap:         999Mi          0B       999Mi
  1. 删除swap
[root@iZ2ze77erlloowxo7d3ydrZ var]# swapoff /var/swapfile
#取消开机启动加载
sed -i "/var/swapfile" /etc/fstab
#解除占用空间
rm -rf /var/swapfile
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值