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

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

交换文件

查看内存:free -m , -m是显示单位为MB,-g单位GB

1.创建一个文件:

touch /root/swapfile

2.使用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大小。

格式化交换文件:

mkswap /root/swapfile

启用交换文件:

swapon /root/swapfile

开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令:

/root/swapfile swap swap defaults 0 0

重启后生效reboot

如果要删除交换分区和交换文件,逆着上面的顺序操作:
先删除/etc/fstab文件中添加的交换文件行
停用交换文件

swapoff /root/swapfile

删除交换文件

rm -fr /root/swapfile

交换分区

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

在shell下以root身份创建分区 hdb1fdisk /dev/hdb1 然后 w 保存退出
设置交换分区,大小视情况自己设置。

mkswap /dev/hdb1

启用交换分区

swapon /dev/hdb1

开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令:

/dev/hdb1 swap swap defaults 0 0
Last modification:August 2, 2019
如果觉得我的文章对你有用,请随意赞赏