大家好,今天小编来为大家解答以下的问题,关于深入理解swap分区,这个很多人还不知道,现在让我们一起来看看吧!
理解:我们知道Linux内核在内存中缓存文件是为了提高读写效率和速度。这部分内存就是Cache Memory,常用的有buffercache和pagecache。即使程序结束后,Cache Memory 也不会自动释放。
这会让你发现当你的程序在Linux系统中频繁读写文件时,可用的物理内存变少了。当系统的物理内存不够时,需要释放物理内存中的一部分空间,以供当前运行的程序使用。释放的空间可能来自一些长时间未运行的程序。释放的空间暂时保存在Swap空间中。当这些程序即将运行时,保存的数据将从Swap分区恢复到内存中。这样,当物理内存不足时,系统总是会执行Swap。
2.交换文件创建规则
按照Oracle官方文档规定的标准,应该这样配置:
对于4G以内的物理内存,SWAP设置为内存的2倍。
4-8G物理内存,SWAP等于内存大小。
8-64G物理内存,SWAP设置为8G。
64-256G物理内存,SWAP设置为16G。
3.创建交换文件
1、安装操作系统分区时,需要创建交换分区。
2.交换分区在安装操作系统时不会创建,需要手动创建。
(1)检查内存状态
如果交换行为为0,则需要创建交换空间。
(2)创建交换分区
dd if=/dev/zero of=/tmp/swapfile bs=1024 count=8192000
if=/dev/zero:进入/dev/zero 文件。 /dev/zero的主要用途是创建一个指定长度的空文件用于初始化,就像临时交换文件一样。 of=/tmp/swapfile:输出到/tmp/swapfile文件bs=1024:定义块大小为1024bytes,默认单位为字节。 count=8192000:总大小为8192000 bs,即8192000kb。换算后就是8G。 (3)指定分区类型为swap
mkswap /tmp/交换文件
(4)设置swap分区有效
交换/tmp/交换文件
(5)设置扩展交换分区自动挂载
Vim /etc/fstab
添加自动分区命令
/tmp/swapfile 交换交换默认0 0
(6) 测试添加情况
自由-m
4. 展开交换文件
程序运行时经常因为内存太小问题而自杀。您可以手动扩大交换大小。扩容方法: 1、先关闭swap。交换-a
2.安装三步重新分配交换文件并重新加载交换分区。
5.交换参数
Swappiness 是一个关于交换使用情况的参数。 swappiness 的值越大,交换分区的使用越活跃。该值越小,物理内存的使用越活跃。默认值swappiness=60。
当swap使用率配置过高,影响磁盘使用时,可以适当减小该值,直至配置为0。当磁盘空间io空闲且物理内存负载较高时,可以逐渐增大该值,直至100。
1.临时调整Swapiness参数
sudo sysctl vm.swappiness=100
猫/proc/sys/vm/swappiness
2.永久调整Swapiness参数
sudo vim /etc/sysctl.conf
修订
vm.swappiness=10
原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/129215.html
用户评论
烬陌袅
swap空间就是用来当虚拟内存用的吧?这篇文章讲得挺清楚,我之前一直不太明白swap的工作原理和为什么要使用它,现在总算有点头了!
有15位网友表示赞同!
风中摇曳着长发
深度讲解,看得懂 banget! 终于知道为什么硬盘写满了就卡顿了,原來是数据都被 swap 给挤走了!不过我还是有点迷茫为啥不直接在内存里多放点东西?这个方面再详细一些就好了。
有9位网友表示赞同!
淡抹丶悲伤
我一直觉得 swap 其实就是个鸡肋功能,用起来也感觉没什么特殊的作用。这篇文章把它的机制描述得很清晰,让我意识到其实它对系统运行还是很有必要的,特别是当内存不足的时候…
有18位网友表示赞同!
墨城烟柳
我之前总是以为 swap 和缓存区是一回事儿,看完文章才发现两者作用不太一样呢!不过感觉这两种机制都挺重要的,需要好好理解!
有10位网友表示赞同!
灵魂摆渡人
这个 swap 交换分区 really 是个 magic weapon! 我电脑平时经常内存吃光,现在知道可以用 swap 来解决这个问题了,真是太棒了!
有13位网友表示赞同!
人心叵测i
对新手用户来说,这篇文章讲解得很有意思,图文并茂,理解起来容易。不过对我这种老用户来说可能有点板泛,没啥新的收获…
有5位网友表示赞同!
陌潇潇
看完文章之后终于明白,swap 交换分区不是个万能的解决方案,如果系统本身就内存不足,即使利用了 swap 也未必能解决问题! 还是要考虑扩展硬件啊!
有18位网友表示赞同!
微信名字
这篇文章虽然说得比较专业, 但是还是很好的介绍了 swap 的工作原理, 让我也对这个技术有了更深层的理解. 感谢作者的辛勤付出!
有19位网友表示赞同!
苏樱凉
感觉这篇博客写的太浅显了,对于我这种经验丰富的系统管理员来说,很多内容都太过简单。希望以后作者可以针对更高级的用户发布一些更深入的内容…
有11位网友表示赞同!
ゞ香草可樂ゞ草莓布丁
学习 Linux 进程管理的时候经常会遇到这个 swap 交换分区,这篇文章给我解释得很清楚,现在终于明白它在内存管理中的作用了!
有7位网友表示赞同!
陌颜
我现在用的笔记本电脑一直感觉运行有点慢,不知道是不是配置问题。看了文章之后怀疑是 swap 空间不足导致的,准备去配置一下看看效果…
有11位网友表示赞同!
十言i
我觉得这篇文章内容很实用,特别是关于如何调整 swap 空间大小的建议,很有帮助! 之前一直不知道怎么设置合适的 swap 尺寸,现在终于找到了答案了!
有5位网友表示赞同!
全网暗恋者
对于新手用户来说,这篇文章讲解得太过于专业,很多术语我都不太明白。希望作者能用更通俗易懂的语言来解释这些概念…
有5位网友表示赞同!
昂贵的背影
这个 swap 交换分区真是个让人头疼的东西!我经常会遇到因为 swap 空间不足而导致系统崩溃的情况,真是令人抓狂啊!
有8位网友表示赞同!
怀念·最初
虽然文章讲解得非常详细,但我还是觉得swap交换分区这个机制比较复杂。 以后有机会再深入研究一下…
有20位网友表示赞同!
伤离别
这篇文章让我对 Linux 系统的内存管理有了更深刻的理解,尤其是在 swap 交换分区方面。 希望能看到更多关于 Linux kernel 的优秀博客内容!
有12位网友表示赞同!
未来未必来
我之前一直以为 swap 就是一个虚拟内存的概念,没想到它背后竟然有这么复杂的机制。 本篇博文让我大开眼界!
有8位网友表示赞同!