系统小窝欢迎您

电脑公司 深度技术
当前位置:系统小窝 > 系统教程 > Linux教程 >

Linux设置swap交换分区的步骤

时间:2021-04-10 来源:般砖的 人气:

很多人对Linux的swap交换分区不了解,不知道什么是swap交换分区,下面小编将针对什么是swap分区及swap分区的设置给大家做个简单的介绍,想要设置swap分区的朋友不妨来了解下。

一、什么是swap分区

交换区可是看作是内存的一部分,只是它是从硬盘中划分出来的,它像windows下的虚拟内存,它的作用是缓存数据,划分它时,大小设成你的物理内存的大小的两倍。

二、设置swap交换分区

交换分区的大小分配推荐法则

内存小于4GB时,推荐不少于2GB的swap空间;

内存4GB~16GB,推荐不少于4GB的swap空间;

内存16GB~64GB,推荐不少于8GB的swap空间;

内存64GB~256GB,推荐不少于16GB的swap空间。

1、以root权限登录SSH,键入如下命令创建512M的swap文件(1024 * 512MB = 524288)。

dd if=/dev/zero of=/swapfile1 bs=1024 count=524288

2、创建Linux交换文件

mkswap /swapfile1

3、立即激活 /swapfile1交换文件

swapon /swapfile1

4、设置系统自激活交换文件。编辑 /etc/fstab文件,并增加如下第二行代码。

vi /etc/fstab

/swapfile1 swap swap defaults 0 0

5、重启系统,使用free -m查看swap大小。

三、Linux中查看swap的命令

可以用;cat /proc/swaps;、;swapon -s;、;free;等命令查看Swap分区的情况。

[root@jay-linux ~]# swapon -s

Filename Type Size Used Priority

/dev/sda3 partition 2096120 840 -1

[root@jay-linux ~]# cat /proc/swaps

Filename Type Size Used Priority

/dev/sda3 partition 2096120 840 -1

[root@jay-linux ~]# free -m

total used free shared buffers cached

Mem: 7872 7280 592 0 429 5964

-/+ buffers/cache: 886 6986

Swap: 2046 0 2046

根据上面的例子,我其实该分配4GB的Swap空间,这里演示的是2GB(可能不太符合Redhat的推荐值,因为本机使用内存量并不会太大,几乎没有使用Swap的情况)。

四、重新划分Swap交换分区

先执行一下fdisk -l查看一下设备名称和分区状况

1、执行swapoff swap分区的设备名 关闭交换文件。

2、看到swap的设备名删除原来的swap分区,在新建一个swap分区。可以使用fdisk做此操作

如果对/dev/sda设备进行分区操作:

fdisk /dev/sda

屏幕提示:

Command (m for help):

键入p

屏幕会列出当前所有的分区设备号、大小、文件格式等参数;

下面进行删除分区的操作:

屏幕提示:

Command (m for help):

键入d

屏幕提示:

Partition number (1-x):

x是您现有的分区数量,有两个分区的话x就是2;删除分区时从最后一个分区开始,键入2:

屏幕提示:

Command (m for help):

键入p

列出当前分区情况,发现sda2被删除了;

继续键入d,然后是1,再键入p,发现sda的分区都被删除了;

屏幕提示:

Command (m for help):

键入w

保存当前删除的操作,回到主界面,如果/dev/sdb上也有分区,按照上面的方法删除。

下面进行创建分区的操作:

fdisk /dev/sda

屏幕提示:

Command (m for help):

键入p

此时硬盘上应该没有任何分区;

键入n

屏幕提示:

First cylinder (abcd-efgh, default abcd):

abcd和efgh都是数字,表示新分区起始的柱面数,直接键入回车即可;

屏幕提示:

Last cylinder or +size or +sizeM or +sizeK (abcd-ijkl, default ijkl):

abcd和 ijkl也都是数字,这里是要求定义分区的大小,如果要建立2G的空间,键入+2000M,如果要将后面所有空间都分出来,直接键入回车即可;注意分区大

小的单位M和K一定要大写!

屏幕提示:

Command (m for help):

键入p

发现已经建立了分区sda1,大小是2G

仿照上面的方法建立更多分区,可以用p查看,最后键入w保存操作。

3、这样重建swap之后,可以使用mkswap /dev/sda[x],其中的[x]代表的是你的第几个分区。

4、激活交换分区 swapon /dev/sda[x]

5、 想要在系统启动时自动激活此交换文件,应该在 /etc/fstab 中加入如下一行:

/dev/sda[x] swap swap defaults 0 0

添加交换文件并启用它后,用 cat /proc/swaps 或 free 命令查看交换文件是否

被成功启用。

五、没有swap交换分区分区的解决办法(用文件替代swap分区)

文件系统 类型 容量 已用 可用 已用% 挂载点

/dev/sdb2 ext3 7.6G 555M 6.7G 8% /

/dev/sda1 ext3 466G 453G 13G 98% /home1

/dev/sdb7 ext3 4.8G 149M 4.4G 4% /tmp

/dev/sdb6 ext3 4.8G 1.6G 3.0G 35% /var

/dev/sdb5 ext3 5.7G 140M 5.3G 3% /swap

/dev/sdb3 ext3 5.7G 2.1G 3.4G 39% /usr

/dev/sdb1 ext3 99M 18M 77M 19% /boot

/dev/sdb8 ext3 437G 175G 262G 41% /home2

tmpfs tmpfs 2.0G 2.2M 2.0G 1% /dev/shm

swap交换分区就根本用不了,由于此服务器已经在跑业务了,不能随便停机,更不能重装系统。

[root@localhost ~]# free -m

total used free shared buffers cached

Mem: 3910 3886 23 0 16 1652

-/ buffers/cache: 2217 1692

Swap: 0 0 0

解决方法:

#制作一个swapfile文件,需要root权限

su

dd if=/dev/zero of=/swap/swapfile bs=4096 count=1310720

#说明:其中bs参数制定每次读取及输入多少个字节。因为硬盘存取的最小单位为扇区,所以设置bs参数就相当于设置每个扇区的大小。我这里设置为4096即4k。参数count则主要是用来设置可以使用扇区的数量。所以这个文件所占用的空间就是以上连个参数的乘积。这里需要注意的是,如果要增加swap文件容量,一般是通过调整count参数来实现的,bs参数一般不动。看到我的/swap分区完全没被使用,有5.3G剩余空间,所有我建立了一个5G的swapfile文件。

#格式化swapfile,同样需要root权限

mkswap /swap/swapfile

#启用swap

swapon /swap/swapfile

#不想每次重启后手动启用swap就可以将挂载写入/etc/fstab中 (因为我这个分区比较特殊,分区名称相同,为保险起见,我没写入到fstab里面)

/swap/swapfile swap swap defaults 0 0

#用free -m查看一下,swap设定已经生效了:

[root@localhost ~]# free -m

total used free shared buffers cached

Mem: 3910 3885 25 0 21 1639

-/ buffers/cache: 2224 1686

Swap: 5119 0 5119

顺利完成。

当你实在不需要使用swap交换分区时可以释放掉swapfile

swapoff /swap/swapfile

rm -f /swap/swapfile

上面就是Linux设置swap交换分区的方法介绍了,本文对查看swap分区的命令及swap分区的重新划分也做了一定的讲解,即便你的系统没有swap分区也能通过文件来替代。

相关文章

  • 初学者如何查看Linux中的shell指南

    初学者如何查看Linux中的shell指南

    很多人都想知道自己电脑的Linux系统使用的是哪种shell,下面小编就教你如何查看Linux系统中使用的shell的方法,一起来了解下吧。...
    2014-12-02 05.12.44
  • 怎么查看Linux磁盘空间是否满了?

    怎么查看Linux磁盘空间是否满了?

    如果你在使用Linux过程中遇到无法读写磁盘,应用程序无法执行,请求响应不了等问题,那多半是Linux系统磁盘空间满了,那么怎么才能知道Linux磁盘空间满...
    2014-12-03 03.12.42
  • 怎么使用df命令查看Linux磁盘空间?

    怎么使用df命令查看Linux磁盘空间?

    查看Linux磁盘空间的工具有很多,那么怎么使用命令来查看磁盘空间呢?那就要用到df命令了,下面小编给大家介绍下使用df命令查看Linux磁盘空间的方法。...
    2014-12-03 03.12.39
  • Linux查看文件指定行的命令是什么?

    Linux查看文件指定行的命令是什么?

    在Linux操作的时候,有时需要查看文件指定行号的内容,这就需要用到命令来实现了,下面小编就给大家介绍下Linux下查看文件指定行的命令。...
    2014-12-05 02.12.07
  • Linux下如何嗅探HTTP流量

    Linux下如何嗅探HTTP流量

    出于某种需要有时会想要嗅探HTTP流量,那么Linux系统下要如何嗅探HTTP流量呢?下面小编就给大家介绍下Linux系统下嗅探HTTP流量的工具——httpry,一起来了解...
    2014-12-09 10.12.00

发表评论

验证码: 看不清?点击更换

注:网友评论仅供其表达个人看法,并不代表本站立场。