swap相关的概念和操作
来源:互联网 发布:淘宝智能机器人好用吗 编辑:程序博客网 时间:2024/06/14 03:34
首先声明,与swap相关的操作需要superuser身份。
1. 简单理解swap
简单的说,swap就是在磁盘上划定一块空间。当内存不够用时,系统会将一些不活跃的内存页调出并写入到到swap空间,这个过程称为swap out;之后如果需要这些内存页时,又会将其从swap空间调入内存,这个过程称为swap in。
2. 添加swap
a) 查看当前swap# swapon -sFilename Type Size Used Priority/dev/dm-1 partition 4095992 0 -1
可以看到:当前已有一个swap分区,大小为4095992B
b) 创建一个空文件
dd if=/dev/zeror of=/swapfile bs=1024 count=1048576 //文件大小1GB
c) 将文件用作swap:mkswap /swapfile
d) 开启文件swap:swapon /swapfile
e) 查看添加后的swap
# swapon -sFilename Type Size Used Priority/dev/dm-1 partition 4095992 0 -1/swapfilefile 1048568 0 -2
可以看到:已经添加了一个类型为文件的swap。
f) 查看文件swap的UUID
#blkid /swapfile/swapfile: UUID="261773a6-7217-4c5a-8245-d030eba56d13" TYPE="swap"
d) 让文件swap永久生效
修改/etc/fstab,添加新行:UUID=261773a6-7217-4c5a-8245-d030eba56d13 swap swap defaults 0 0记着将此处的UUID值改为你的呀......
如果缺失该步操作,重启机器后,文件swap不会被自动加载。
3. 禁用/关闭swap
swapoff /swapfile//禁用文件swapswapoff -a//禁用所有的swap,启用所有swap命令为:swapon -a
可以通过先禁用,再启动的方式,来擦除swap中已有的数据。
4. vm.swappiness与swap
vm.swappiness表示系统使用swap的可能性,取值为[0,100],值越大,可能性越高。值为0时,不是禁用swap,而是说尽可能的少swap out/in。从linux内核版本2.6.32-303.el6(对应到Centos release 6.4)开始,添加了一个patch,对swappiness为0的含义进行了更为严格的约束。下面为原文描述:
Author: Satoru Moriya <satoru.moriya@hds.com>
Date: Tue May 29 15:06:47 2012 -0700mm: avoid swapping out with swappiness==0
Sometimes we'd like to avoid swapping out anonymous memory. In particular, avoid swapping out pages of important process or process groups while there is a reasonable amount of pagecache on RAM so that we can satisfy our customers' requirements.
OTOH, we can control how aggressive the kernel will swap memory pages with /proc/sys/vm/swappiness for global and /sys/fs/cgroup/memory/memory.swappiness for each memcg. But with current reclaim implementation, the kernel may swap out even if
we set swappiness=0 and there is pagecache in RAM.
This patch changes the behavior with swappiness==0. If we set swappiness==0, the kernel does not swap out completely (for global reclaim until the amount of free pages and filebacked pages in a zone has been reduced to something very very small (nr_free + nr_filebacked < highwatermark)).
可见,在新的内核版本里,swappiness为0的话,swap交换的可能性更是大大降低了。这样的一个坏处就是增大了OOM的可能性,所以建议此时将swappiness稍设大一点。
与该参数相关的一些操作:#cat /proc/sys/vm/swappiness //查看参数值,默认为60#sysctl vm.swappiness=10//设置参数为10.如要设置永久有效,需添加行vm.swappiness=10到/etc/sysctl.conf,否则系统重启后设置失效。
5. swap和tmpfs
本来这两个没有多少相关性,只是看网上许多人将两者混在一起了,故在此做个说明。
tmpfs是一个基于内存的虚拟文件系统,也就是说本质上和ext4是一类概念,只不过tmpfs基于内存,ext4基于磁盘。tmpfs其实基于虚拟内存(物理内存+swap),如此来说,swap和tmpfs还真有点关系了,即tmpfs这个文件系统,可将其管理的文件存储在swap中。
tmpfs的主要用途是提供比磁盘超快的文件访问速度。例如:有些应用将频繁访问的小文件,放在tmpfs挂载的目录下,文件访问其实是直接的内存访问,速度提升非常明显。
也是因为这个主要用途,决定了它几乎不会和swap有交集。试想:tmpfs系统管理的文件,放在swap和物理内存上,那个访问速度更快?答案不言而喻。所以默认情况下,tmpfs只使用物理内存,并且容量为物理内存的一半。
- swap相关的概念和操作
- 栈的概念与相关操作
- 排序二叉树,平衡二叉树和红黑树的概念以及相关的操作讲解
- 排序二叉树,平衡二叉树和红黑树的概念以及相关的操作讲解
- GIT的概念和操作T的概念和操作
- 第二天 之数据结构、链表的相关概念和操作
- 软件架构的相关概念和实践
- 软件架构的相关概念和实践
- 软件架构的相关概念和实践
- 窗口位置相关的函数和概念
- 和GUI相关的几个概念
- OpenGL和X server相关的概念
- NP的一些相关概念和认识
- Dos 和 DDos 的相关概念问题
- 软件架构的相关概念和实践
- 树的定义和相关概念
- NP的一些相关概念和认识
- 委托和代理的相关概念
- 按产品经理能力划分,我们需要看哪些书?
- window.location.href兼容性
- 1044 拦截导弹
- Oracle EBS 基本业务流程图
- newlisp中string转换成list
- swap相关的概念和操作
- 两种防止头文件二次编译的方法
- CentOS配置域名转发服务器 FAQ
- 【故障处理】ORA-12162: TNS:net service name is incorrectly specified
- SQl server 备份远程共享目录
- 白话经典算法系列之七 堆与堆排序
- Hibernate的增删改查
- Java软件架构师所要需的东西(转)
- 【机房重构】DateTable与泛型