Linux设置虚拟内存

96
Jarhf
0.9 2018.03.30 18:24* 字数 563

用最低配的阿里云服务器,遇到mysqld服务老是挂掉的问题,启动也报错。查看日志/var/log/mysqld.log原来是无法分配足够的内存。没办法物理内存太小,那就弄虚拟内存吧。

Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件

交换文件

  1. 查看内存:free -m , -m是显示单位为MB,-g单位GB
  2. 创建一个文件:touch /root/swapfile
  3. 使用dd命令,来创建大小为2G的文件swapfile:
    dd if=/dev/zero of=/root/swapfile bs=1M count=2048 //命令执行完需要等待一段时间
    if表示input_file输入文件
    of表示output_file输出文件
    bs表示block_size块大小
    count表示计数。
    这里,我采用了数据块大小为1M,数据块数目为2048,这样分配的空间就是2G大小。
  4. 格式化交换文件:mkswap /root/swapfile
  5. 启用交换文件:swapon /root/swapfile
  6. 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令:
    /root/swapfile swap swap defaults 0 0
  7. 重启后生效reboot

如果要删除交换分区和交换文件,逆着上面的顺序操作:

  1. 先删除/etc/fstab文件中添加的交换文件行
  2. 停用交换文件swapoff /root/swapfile
  3. 删除交换文件rm -fr /root/swapfile

交换分区

采用交换分区的办法其实就是新建一个分区,然后将该分区挂载作为交换空间,方法步骤与传统的新建分区一样。只不过格式化分区和挂载分区分别采用mkswap和swapon命令。在创建分区之前,我们常常要用过fdisk -l和df -Th命令来查看硬盘信息和挂载信息,来确定分区的大小。


  1. 在shell下以root身份创建分区 hdb1fdisk /dev/hdb1 然后 w 保存退出
  2. 设置交换分区,大小视情况自己设置。mkswap /dev/hdb1
  3. 启用交换分区swapon /dev/hdb1
  4. 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令:
    /dev/hdb1 swap swap defaults 0 0
Linux
Web note ad 1