linux 增加虚拟内存swap(使用文件)
1、简介
如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存是一个不错的选择。
为了测试一些功能我在阿里云购买了1核1G的ECS服务器几台(最便宜的了,再贵舍不得啊),一台服务器就安装了LANMP,redis,memcache,elk等等耗内存较大的软件,内存各种不够用啊,这时候虚拟内存就派上用场了。
虚拟内存一般设置为物理内存的2倍即可,多了也是浪费硬盘。
2、新增swap分区
由于服务器已经安装了各种软件,懒得重新给硬盘分区,所以这里使用文件作为swap分区 ,下面操作需要在root用户下操作
使用 free -h 查看当前内存占用情况,可以看到物理内存所剩无几,下面的swap也是使用的文件作为虚拟内存使用的
创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小),如下面是2G
# dd if=/dev/zero of=/root/swapfile2 bs=1M count=2048
这里我使用的of为/root/swapfile2 ,可以看到该文件是新创建的,这时候这个文件还不能直接使用为swap文件
修改文件权限,如不修改,在启用swap文件的时候会提示下面信息(不影响使用,建议修改)
# chmod 0600 /root/swapfile2
格式化为交换分区文件,建立swap的文件系统,/root/swapfile2需要与上面的of的值一致,这个目录可以自定义
# mkswap /root/swapfile2
启用swap文件:
# swapon /root/swapfile2
可以看到未启用时虚拟内存为2G,启用后内存增加了2G
使系统开机时自启用
# vim /etc/fstab
在文件/etc/fstab中添加一行
/root/swapfile2 swap swap defaults 0 0
3、调整swap空间使用的优先级
如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
各个操作系统的优先级可能都不一样,如果不调整,你会发现添加的虚拟内存几乎没有用到
查看当前swappiness值
# cat /proc/sys/vm/swappiness
修改swappiness值为60(临时修改,重启后即还原为默认值)
# sudo sysctl vm.swappiness=60
永久修改swappiness默认值(重启生效)
# vim /etc/sysctl.conf
找到vm.swappiness ,如果没有则需要手动添加一行 vm.swappiness = 60 保存即可
linux 增加虚拟内存swap(使用文件)的更多相关文章
- Linux 增加虚拟内存
1. 用 df -h 命令找一个比较大的磁盘空间 2.建立swap文件 大小为2G count= 3.启用虚拟内存 1. 将swap文件设置为swap分区文件 mkswap swapfile #(由于 ...
- Linux增加虚拟内存
Docker容器启动Mysql镜像报错,提示无法分配内存,报错信息如下: 由此我们看到Swap为0,考虑适当增加swap. Linux开启swap空间有好几种方法,在这里只介绍比较常用的两种. 使用交 ...
- Linux增加虚拟内存方法
例如增加2G虚拟内存,操作如下: [root@gamedb ~]# free -m[root@gamedb tmp]# dd if=/dev/zero of=/tmp/big_swap bs=1024 ...
- linux中增加swap分区文件的步骤方法
一.swap交换分区 Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临 ...
- linux增加swap空间的方法小结
起因及背景 近期编译AOSP(android 10.0)是总是遇到内存溢出,查了半天,无果.猜测增加下swap空间大小是否能解决,随即尝试下,果然是如此. 当然,还有其他作法,比如直接增加主机的内存( ...
- LINUX增加SWAP分区---install_oracle
我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢?在装完Linux系统之后,建立Swap分区有两种方法.1.新建磁盘分区作为swap分 ...
- 给Linux增加swap内存
有时内存不足时, 编译xxx报错cc: 编译器内部错误:已杀死(程序 cc1) Please submit a full bug report, with preprocessed source if ...
- Linux增加Swap分区
Linux增加Swap分区 dd if=/dev/zero of=/data/swap/swapfile1 bs=4096 count=2097152 mkswap /data/swap/swapfi ...
- #内存不够,swap来凑# Linux上创建SWAP文件/分区
转自:https://www.vmvps.com/how-to-create-a-swap-file-on-the-linux-os.html 很久很久以前,电脑的内存是个珍贵东西,于是乎就有了swa ...
随机推荐
- shell 按行读取文件的内容
test.py: #coding=utf- import subprocess compilePopen = subprocess.Popen('gcc haha',shell=True,stderr ...
- leecode第五百五十七题(反转字符串中的单词 III)
class Solution { public: string reverseWords(string s) { string res; stack<char> sta; string:: ...
- 如何系统地自学 Python?
最近开始系统的学习Python,以及整理的一些资料.github记录着个人自学 Python 的过程,持续更新.欢迎大家一起来完善这个自学Python学习的项目,给后来者一个参考的学习过程.githu ...
- 2018-2019-2 网络对抗技术 20165303 Exp3 免杀原理与实践
实验内容 一. 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分) ...
- 配置ubuntu
2. 安装配置软件 创建服务器成功后,点击服务器列表页的Ubuntu轻量应用服务器卡片的远程连接按钮 连接成功后开始安装软件. VNC的安装与配置 安装之前先输入 apt-get update 获取最 ...
- maven install报错 Failed to execute goal on project my-manager-mapper: Could not resolve dependencies for project com.my:my-manager-mapper:jar:0.0.1-SNAPSHOT:
报错信息为: [ERROR] Failed to execute goal on project my-manager-mapper: Could not resolve dependencies f ...
- redist命令操作(一)--键key,字符串String
1.Redis 字符串(String) 参考菜鸟教程:http://www.runoob.com/redis/redis-strings.html 设置指定key的值,如果原来有,覆盖 127.0.0 ...
- angular配置路由/子页面+vue配置路由/子页面
1.在vue.js中组件可以复用,然后最近配置了几个子页面 在 这个文件中配置路由,子页面的配置跟其他一样,只不过path不同. routes: [ { path: '/', ...
- CouchDB客户端开发—Java版
在Fedora上安装CouchDB: yum update yum install couchdb 修改/etc/couchdb下local.ini文件: port = 5984bind_addres ...
- Lapack求解线性方程组
可参见这两个页面: 1. http://www.culatools.com/dense/lapack/ 2. http://www.netlib.org/lapack/lug/node1.html 根 ...