Linux增加虚拟内存
Docker容器启动Mysql镜像报错,提示无法分配内存,报错信息如下:


由此我们看到Swap为0,考虑适当增加swap。
Linux开启swap空间有好几种方法,在这里只介绍比较常用的两种。
- 使用交换文件
这种方式适用于,已经装完系统但是没有多余分区可以用来做swap分区。 - 使用交换分区
这种方式适用于有多余的分区可以用来做swap分区。
使用交换文件开启Swap
a.创建交换文件
> fallocate -l 4G /swapfile
或
> dd if=/dev/zero of=/swapfile bs=1M count=4096
b.设置可访问权限
> chmod 600 /swapfile
c.格式化文件
> mkswap /swapfile
d.激活swap空间
> swapon /swapfile
f.开机自动启用swap空间
编辑/etc/fstab(或/etc.rc.local,推荐),在文件末尾添加:/swapfile none swap default 0 0
关闭 SWAP
当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。
如果要关闭 SWAP,可以采用如下方法。
1、free -m #查询SWAP分区设置
2、使用命令swapoff 关闭 SWAP,比如:
swapoff /mnt/swapfile
3、修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载:
4、 通过 free -m 确认 SWAP 已经关闭。
5、 swappiness 参数调整:
可以使用下述方法临时修改此参数,这里配置为 0%:
echo 0 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf文件,并增加以下内容:vm.swappiness=0
Linux增加虚拟内存的更多相关文章
- linux 增加虚拟内存swap(使用文件)
1.简介 如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存是一个不错的选择. 为了测试一些功能我在阿里云购买 ...
- Linux增加虚拟内存方法
例如增加2G虚拟内存,操作如下: [root@gamedb ~]# free -m[root@gamedb tmp]# dd if=/dev/zero of=/tmp/big_swap bs=1024 ...
- Linux 增加虚拟内存
1. 用 df -h 命令找一个比较大的磁盘空间 2.建立swap文件 大小为2G count= 3.启用虚拟内存 1. 将swap文件设置为swap分区文件 mkswap swapfile #(由于 ...
- linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解?
问: linux的虚拟内存是4G,而每个进程都有自己独立的4G内存空间,怎么理解? 每个进程所拥有的4G独立的虚拟内存空间是什么意思?linux系统的虚拟4G空间中,高位的1G是用于系统内核运行的,那 ...
- 【原创】Linux 增加系统调用
Linux 增加系统调用大致步骤: 1.下载好内核文件,在内核源文件中添加好自己的调用函数. 2.编译内核 3.验证. 一.在内核源文件中增加自己的函数 首先将内核文件移至/usr/src/下并解 ...
- VMware linux 增加根目录空间 (使用图形分区工具gparted LiveCd)
写这篇文章的原因: 最近要给服务器Centos上的ruby版本升级,由于是第一次升级,不敢直接在服务器上操作. 所以在我的winxp上装了Vmware ,又在Vmware中装了Centos5.2. 用 ...
- Linux增加LV(逻辑卷)容量
Linux增加LV(逻辑卷)容量 2017-09-29-17:34:13 个人原创博客,转载请注明出处. 查看逻辑卷的相关命令: lvs vgs 命令: [root@arch ~]# vgs VG # ...
- Linux增加开放端口号
Linux增加开放端口号 : 方法一:命令行方式 1. 开放端口命令: /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 2.保存:/etc/ ...
- 理解 Linux 的虚拟内存
前言 前不久组内又有一次我比较期待的分享:”Linux 的虚拟内存”.是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题(笑). 我之 ...
随机推荐
- ubuntu系统开机优化参数
date : 2019-06-20 14:34:48 author: headsen chen 临时设置: ulimit -n 1000000 永久设置: vim /etc/security/li ...
- Java并发包之线程池概述
前言 线程池的作用就是将线程的管理.创建.销毁等操作与线程需要执行的任务隔离开来,从而避免线程频繁的创建与销毁,以及大量的线程的上下文切换造成的资源损耗.关于Java并发包中的线程池部分,我把它们分为 ...
- 自己发挥的内容 有关ViewModel的一句翻译(难点expecting)
- mybatis的xml中也可以通过传入标记参数然后用 choose写选择语句【我】
mybatis的xml中也可以通过传入标记参数然后用 choose写选择语句
- osgGA::KeySwitchMatrixManipulator 跟随
#ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include <osg/Group> #include <os ...
- Flutter常用命令和mac电脑常用命令
0. flutter create example_demo 新建flutter项目 1.flutter packages get 安装新增的包 2.flutter run 运行flutter项 ...
- 使用Async-profiler 对程序性能优化实战
原文在简书上, https://www.jianshu.com/p/f8336b835978 1.背景 目前有一个kafka消费者工程,此工程会消费kafka中的消息,并通过fastjson解析该消息 ...
- 123457123456#0#-----com.threeapp.magicImageShow01----儿童宝宝魔法画笔
com.threeapp.magicImageShow01----儿童宝宝魔法画笔
- django模板--条件控制标签
条件控制标签 在django模板中可以通过条件控制标签进行逻辑控制,条件控制标签的语法如下: {% if condition1 %} ... {% elif condition2 %} ... {% ...
- DB2存储过程简单示例
在这个示例中,我们将在DB2中创建一个名为DEMO1201的存储过程. 该存储过程的输入参数IN_NAME和IN_CREDITCARD,表示用户的姓名和身份证号. 该存储过程的作用是根据身份证号来新建 ...