美文网首页
主机内存过小导致安装 MySQL 失败

主机内存过小导致安装 MySQL 失败

作者: _已注销 | 来源:发表于2016-12-03 09:29 被阅读49次

    主机内存过小安装 MySQL 失败,这种情况在很多编译安装软件的时候都可能遇到,最经济的解决办法就是新增 SWAP 分区。
    (当然,如果不差钱,最省心的办法还是增加内存。)

    下面是最快速的创建 Swap 空间几个命令

    sudo fallocate -l 1G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    

    另一种增加 swap 空间的操作

    1. 创建一个文件
    sudo dd if=/dev/zero of=swap bs=1024 count=2000000
    

    count 表示文件大小,bs 即 block size,表示单位存储区块大小,单位是B。
    这里的文件大小 = count * bs = 2048000000B = 2048MB = 2G

    1. 将该文件转换成 Swap 文件
    sudo mkswap -f swap
    
    1. 加载
    sudo swapon swap 
    

    这时候再使用 free -h 命令就可以看到加载后的内存:

    tony@ubuntu:~$ free -h
                 total       used       free     shared    buffers     cached
    Mem:          992M       918M        73M        31M       110M       440M
    -/+ buffers/cache:       367M       625M
    
    Swap:         1.0G       5.9M       1.0G
    

    Swap 空间什么时候被使用

    系统在什么情况或条件下才会使用 Swap分区的空间呢? 其实是Linux通过一个参数 swappiness 来控制的。当然还涉及到复杂的算法。

    这个参数值可为 0-100,控制系统 swap 的使用程度。高数值可优先系统性能,在进程不活跃时主动将其转换出物理内存。低数值可优先互动性并尽量避免将进程转换处物理内存,并降低反应延迟。默认值为 60。注意:这个只是一个权值,不是一个百分比值,涉及到系统内核复杂的算法,在此不做过多赘述,有兴趣的可以自行搜索一下。下面是关于 swappiness 的操作:

    # 查看 swappiness 参数
    more /proc/sys/vm/swappiness
    
    # 两种临时修改 swappiness 参数的方法,系统重启后失效
    echo 10 > /proc/sys/vm/swappiness
    sysctl vm.swappiness=10
    
    # 永久修改 swappiness 参数的方法
    # 1. 在配置文件 /etc/sysctl.conf 里面修改 vm.swappiness 的值
    # 2. 重启系统
    echo 'vm.swappiness=10' >>/etc/sysctl.conf
    

    参考资料

    相关文章

      网友评论

          本文标题:主机内存过小导致安装 MySQL 失败

          本文链接:https://www.haomeiwen.com/subject/tbxcmttx.html