用最低配的阿里云服务器,遇到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