Linux 交换分区 swap 虚拟内存深入分析

SWAP 分区是 Linux 的交换分区。交换分区实际存在于磁盘中,不过 Linux 系统可以将它当作内存使用,当物理真实内存不足的时候交换分区就可以和真实内存进行数据交换。简单地说就是从磁盘里拿出一块空间当作内存的储备区。虽说磁盘被拿来当作内存使用,但是速度还是磁盘的速度。可以想象下面一种日常生活的场景:
当你工作的时候一定是把桌洞里的东西拿出来放到桌面上,并且手里拿着一部分东西在操作,然后桌面和桌洞里的东西在不断的交换你手里的东西和桌面上的东西也一直在交换。
可以这么想:你从桌洞里拿出来了一本《5 年高考 3 年模拟——理综》放到桌面上,然后拿起笔开始刷题。后来你又从桌洞里拿出来了一本《5 年高考 3 年模拟——数学》放到桌面上,准备两本一起写(就是这么?牛??匆惶饫碜坌匆惶馐?АT俸罄茨阌窒胪?毙从镂模??悄惴⑾帜愕淖烂嫔弦丫?挥辛四敲创蟮目占洌?椭荒馨延镂姆诺阶蓝蠢铮?看文贸隼从镂木鸵?咽?Щ蚴抢碜鄯诺阶蓝粗小?br />
计算机实际上是这样。从磁盘中打开了一个程序(一本书),操作系统就(另一个人)把这个程序运行起来放到内存中(放到桌面上),CPU 将(部分)程序加载到寄存器中(拿起笔开始做题)。然后又运行了一个程序,CPU 就在这两个程序之间切换(做完一题数学就换一题理综)。再运行一个程序,发现内存不足(桌面不够用了)就将内存和磁盘中的交换分区开始交换(把语文放到桌洞里,每次拿出来语文就要把数学或是理综放到桌洞中)

0X00 创建一个分区 || 创建一块文件

要想创建 swap 分区可以有两种分配空间的方式,一种是直接从磁盘中分出来一块用来当做 swap 分区,然后格式化为 swap 格式
# 对磁盘sdb进行分区
fdisk /dev/sdb
在提示符下输入 n 然后会提示 p 或 e 的选项,P 就是主分区,只能创建 4 个, e 就是逻辑分区,不限个数。
我们创建一个逻辑分区就行。然后会提示新分区的起始扇区,使用默认的就好,直接回车
接下来是终止扇区,这里支持直接输入扇区号和输入大小两种方式,我们普遍直接输入分区大小
输入 +512M 按下回车,就是创建一个 512M 的分区。现在 fdisk 又回到了开始的提示符,如果之前的操作有错误可以直接输入 q 退出,如果没有问题就可以输入 w 保存并退出。
根据你的命令,就创建了一个名为 sdb * 的文件,这个文件就是分区文件。
另一种方式就是创建一个文件,然后将这块文件格式化为 swap 格式
# 创建一个512M的数据类型文件
dd if=/dev/zero of=swapfile bs=1024 count=523288
# if -> input_file输入文件   of -> output_file输出文件   bs -> block_size块大小   count -> 计数
解释一下特殊文件 / dev/zero
/dev/zero 这个文件放在 Linux 存放设备的目录下,如果以他为输出源,输出的全部都是二进制 0
cat /dev/zero > test 这个命令会生成一个 test 文件并不断的向该文件中输入二进制 0

0X01 格式化 && 激活 && 挂载 swap 分区

# 格式化刚才的文件
# 根据创建的方式选择命令
mkswap /dev/sdb*
mkswap swapfile
# 激活swap分区 相等于挂载
# 根据创建的方式选择命令
swapon /dev/sdb*
swapon swapfile
0X02 设置自动挂载

大家都是懒人,谁想每次开机都手动挂载一次分区呢?所以我们可以一劳永逸,将挂载设为自动
# 打开配置文件
vim /etc/fstab
# 添加这样一行
# 根据创建的方式选择命令
/dev/sdb*          swap     swap     defaults     0     0
/home/swapfile     swap     swap     defaults     0     0
下面解释这个配置文件的每一列
第一列是数据块文件的位置
第二列是挂载点
第三列是分区类型
第四列是挂载参数 通常默认
第五列是备份选项 0 代表不备份 1 代表备份 通常为 0
第六列是自检顺序 0 代表不自检 1 和 2 代表自检 如果是根分区要设为 1,其他分区只能是 2 通常为 0

时间: 2024-07-30 09:59:29

Linux 交换分区 swap 虚拟内存深入分析的相关文章

linux系统添加swap虚拟内存与删除配置

  1.swap概述 Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中.这样,系统总是在物理内存不够时,才进行Swap交换. 其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要.通过调整Swap,有时可以越过系统性能瓶

ubuntu中系统交换分区swap增加与优化

ubuntu系统增加swap分区步骤: 加此分区一点好处:可加大32位系统对内存大小的识别(无此分区只识别3G,加了此分区可识别到4G) 1.查看一下当前swap分区的状态: cat /proc/meminfo SwapTotal:             0 kB SwapFree:              0 kB 如果上面二项目都为0,说明没有swap分区:如果不为0,则说明有此分区 2.查看一下/根目录还有多少空间可用: 系统->系统管理->系统监视器->文件系统 看一下可用空

linux磁盘分区、静态分区和LVM

1.虚拟内存技术,windows通过交换文件来实现,linux通过交换分区来实现.所以windows只有一个分区,而安装linux至少两个分区,其中一个就是交换分区,虚拟内存一定程度上可以解决内存不够的问题. 2.硬盘在使用之前必须分区,硬盘分区有主分区,扩展分区和逻辑分区之分,一块硬盘最多只能有四个主分区,其中一个主分区可以用一个扩展分区来代替,只能有一块扩展分区,这个扩展分区可以划分多个逻辑分区 3.linux磁盘设备和分区命名 第一块IDE硬盘叫做/dev/hda,第二块IDE叫做/dev

linux磁盘分区

  1.虚拟内存技术,windows通过交换文件来实现,linux通过交换分区来实现.所以windows只有一个分区,而安装linux至少两个分区,其中一个就是交换分区,虚拟内存一定程度上可以解决内存不够的问题. 2.硬盘在使用之前必须分区,硬盘分区有主分区,扩展分区和逻辑分区之分,一块硬盘最多只能有四个主分区,其中一个主分区可以用一个扩展分区来代替,只能有一块扩展分区,这个扩展分区可以划分多个逻辑分区 3.linux磁盘设备和分区命名 第一块IDE硬盘叫做/dev/hda,第二块IDE叫做/d

tomcat-Linux 交换分区jvm设置问题

问题描述 Linux 交换分区jvm设置问题 问大神个问题,机器4g内存,挂了一个10g的交换分区,设置tomcat 启动的jvm为-Xmx 5g,可是启动服务后,发现-Xmx2422m只能这么大.是不是jvm不可以走交换分区,或者是什么原因? (java linux系统均为64bit) 解决方案 Linux Swap交换分区设置Linux Swap交换分区设置Linux Swap交换分区设置

解决ubuntu开机出现/dev/mapper/cryptswap1和乱码 系交换分区错误

刚刚安装完Ubuntu 14.10(win7硬盘安装,是真机上的双系统)兴奋的准备开始进入它的神奇世界了,但是开机的时候却出现了一串乱码,觉得可能存在问题.乱码中有一串英文字符/dev/mapper/cryptswap1,从swap字样可以看出应该是交换分区出了问题.虽然界面正常启动了,但是还是有点感觉不够完美.因此打算把这个问题解决掉. 虽然电脑正常开机,但是这并不代表没有问题,交换分区类似于虚拟内存,对系统的稳定性有非常大的作用.我自己实践的结果是,使用ubuntukylin(麒麟)如果存在

如何管理配置Linux下的Swap交换分区

理解什么是swap分区 Swap是Linux下的虚拟内存分区,他的主要作用是在物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,让当前的程序来使用,这些内存释放出来的空间没有什么操作的程序,这些释放的内存将被保存到swap空间中,等到这写程序在运行的时候,再从swap虚拟空间来读取这些程序给内存来使用.这样中是在系统内存不够用的时候,进行交换.在针对Linux web服务器的时候,调整swap能提高系统很大的性能. 现在操作系统都突破了物理内存的限制,让程序可以操作大于物理内存的空间

Linux Swap交换分区介绍总结

Swap交换分区概念   什么是Linux swap space呢?我们先来看看下面两段关于Linux swap space的英文介绍资料:   Linux divides its physical RAM (random access memory) into chucks of memory called pages. Swapping is the process whereby a page of memory is copied to the preconfigured space o

linux中swap交换分区分区设置教程

什么是swap分区 交换区可是看作是内存的一部分,只是它是从硬盘中划分出来的,它像windows下的虚拟内存,它的作用是缓存数据,划分它时,大小设成你的物理内存的大小的两倍. 设置swap交换分区 交换分区的大小分配推荐法则 内存小于4GB时,推荐不少于2GB的swap空间: 内存4GB~16GB,推荐不少于4GB的swap空间: 内存16GB~64GB,推荐不少于8GB的swap空间: 内存64GB~256GB,推荐不少于16GB的swap空间. 1.以root权限登录SSH,键入如下命令创建