linux 创建 swap分区

CSDN博客 · · 257 次点击 · · 开始浏览    

swap是什么?

Swap:交换分区

类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

当用户提交程序,然后产生进程,在机器上运行。机器会判断当前物理内存是否还有空闲允许进程调入内存运行,如果有那么则直接调入内存进行运行;如果没有,那么会根据优先级选择一个进程挂起,把该进程交换到swap中等待,然后把新的进程调入到内存中运行。根据这种换入和换出,实现了内存的循环利用,让用户感觉不到内存的限制。从这也可以看出swap扮演了一个非常重要的角色,就是暂存被换出的进程。

1、首先扩展一个虚拟内存(交换分区)

1.1 查看swap分区是否启

cat /proc/swaps

没有启动swap时,是长这样的

1.2 创建8G大小的swap

dd if=/dev/zero of=/data/swap bs=1M count=8192

将/dev/zero内容写入/data/swap,读写块大小1024bytes ,块个数8192。

/dev/zero是个未使用的文件模版,可以用它来创建“干净”的文件。后两个参数可以控制文件大小。

如果根目录下没有data文件夹,则要先去创建,否则会提示:"dd: 打开'/data/swap' 失败: 没有那个文件或目录"

mkdir -p /data

 2、将上面新建出的文件做成swap分区

mkswap /data/swap

如果出现该提示:"mkswap: /data/swap:不安全的权限 0644,建议使用 0600",则设置该文件的权限为0600即可

chmod 0600 /data/swap

3、激活启用分区

swapon /data/swap

 4、查看状态

swapon -s

5、设置自动挂载交换分区

echo "/data/swap swap swap defaults 0 0" >> /etc/fstab

将 /data/swap swap swap defaults 0 0 写入文件 /etc/fstab

 6、启用系统交换分区的配置

swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。linux的基本默认设置为60。也就是说,你的内存在使用到100-60=40%的时候,就开始出现有交换分区的使用。大家知道,内存的速度会比磁盘快很多,这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整。

6.1 查看当前配置

cat /proc/sys/vm/swappiness

6.2 临时调整

sysctl vm.swappiness=60

6.3 若想永久修改,则编辑/etc/sysctl.conf文件,该文件中有vm.swappiness的变量配置,默认为0

6.31 编辑配置文件

vim /etc/sysctl.conf

6.32 追加或修改

vm.swappiness=60

6.33 启用配置

sysctl -p

7、查看swap分区是否启动

cat /proc/swaps

8、查看linux内存使用情况,会多显示一行Swap,可用内存8162M

free -m

 

拓展

删除交换分区

1、停止交换分区

swapoff /data/swap

2、删除/etc/fstab文件中的自动挂载

vim /etc/fstab

把这行删除 /data/swap swap swap defaults 0 0

3、删除分区文件

rm /data/swap

 

本文来自:CSDN博客

感谢作者:CSDN博客

查看原文:linux 创建 swap分区

257 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传