系统小窝欢迎您

当前位置:系统小窝 > 系统教程 > 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系统swap和zram swap怎么使用?

    Linux系统swap和zram swap怎么使用?

    Linux系统下的swap和zram是两个扩大内存的技术,都可以在一定程度上提示系统的性能。当然swap和zram swap,一般情况下zram的使用比较多。下面就来介绍一下...
    2021-04-09 03.04.02
  • Linux查看系统已安装内核的操作方法

    Linux查看系统已安装内核的操作方法

    在Linux系统中,有些时候我们需要检查或查看下已经安装的内科列表,但是很多用户都不太清楚具体该怎么操作,那么,小编下面就给大家介绍下查看已安...
    2021-04-09 03.04.41
  • Linux df和du命令查出来的已使用空间不同如何解决?

    Linux df和du命令查出来的已使用空间不同如何解决?

    有用户登录到Linux系统服务器上去查看的时候,竟然发现df和du查出来的结果不一样,du查出来的“实际使用空间”明显比df查出来的已使用空间要小很多,这...
    2021-04-09 03.04.44
  • linux系统查看硬件信息的方法

    linux系统查看硬件信息的方法

    用过Linux系统的人都知道这么一个情况,那就是Linux大部分操作是通过命令实现的,并不像Windows那么直观。linux查看硬件信息也是需要通过命令查询才可以看...
    2021-04-09 03.04.46
  • Linux查看WiFi SSID密码的方法

    Linux查看WiFi SSID密码的方法

    无论在什么操作系统中,都可能会涉及到WiFi信号的接入,然后系统就会把用户输入的WiFi密码记录起来,在Linux查看WiFi SSID密码比起Windows系统中要方便很多...
    2021-04-09 03.04.06

发表评论

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

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