如何增加 Linux 系统的 Swap 分区大小? (linux 加大swap)

Linux 是一种自由和开放源代码的 Unix-like 操作系统,具有高度的灵活性和可扩展性,已成为许多企业和机构的首选操作系统。然而,随着系统使用的不断增长,可能会发现 Linux 系统的 Swap 分区大小不足。Swap 分区是硬盘上留出的一块空间,用来扩展系统内存。因此,在设置 Swap 分区时,需要根据系统使用情况和硬件配置来确定其大小。如果 Swap 分区不足,可能会导致系统速度变慢,甚至出现崩溃。本文介绍如何增加 Linux 系统的 Swap 分区大小,以提高系统的性能和稳定性。

之一步:检查系统 Swap 分区

在增加 Swap 分区大小之前,首先需要检查当前系统的 Swap 分区情况。可以使用以下命令来检查:

“`

sudo swapon -s

“`

该命令将显示当前系统中所有的 Swap 分区信息。如果输出为空,则表示当前系统中没有 Swap 分区。否则,将显示每个 Swap 分区的名称、大小和使用情况。

第二步:创建新的 Swap 分区

如果系统中没有 Swap 分区,或者当前分区大小不足以满足需求,则需要创建一个新的 Swap 分区。可以通过以下步骤来创建:

1. 查看系统中可用的硬盘分区:

“`

sudo fdisk -l

“`

该命令将列出所有的磁盘分区信息。可以根据磁盘容量和可用空间来确定新的 Swap 分区的位置。

2. 创建一个新的分区:

“`

sudo fdisk /dev/sda

“`

“/dev/sda”是要创建新分区的硬盘设备名。可以根据实际情况进行更改。在 fdisk 命令行下,按照以下步骤创建新的分区:

– 输入 “n” 创建新的分区;

– 选择分区类型(Swap 分区);

– 设置分区大小;

– 保存更改并退出。

3. 格式化新分区:

“`

sudo mkswap /dev/sdaX

“`

其中,“/dev/sdaX”是新的 Swap 分区设备名。例如,如果新的 Swap 分区设备名为“/dev/sda3”,则命令应为“sudo mkswap /dev/sda3”。

第三步:将新 Swap 分区添加到系统中

在创建新的 Swap 分区后,需要将其添加到系统中。可以使用以下命令来执行此操作:

“`

sudo swapon /dev/sdaX

“`

其中,“/dev/sdaX”是新的 Swap 分区设备名。例如,如果新的 Swap 分区设备名为“/dev/sda3”,则命令应为“sudo swapon /dev/sda3”。

此时,新的 Swap 分区已成功添加到系统中。可以再次运行“sudo swapon -s”命令来检查。

第四步:将新 Swap 分区永久化

如果希望系统每次开机时都可以自动启用新的 Swap 分区,则需要将其永久化。可以通过以下步骤来完成:

1. 检查 fstab 文件:

“`

sudo nano /etc/fstab

“`

该命令将打开 fstab 文件,在其中可以查看系统当前的分区信息。

2. 添加新的 Swap 分区信息:

在 fstab 文件中添加以下行:

“`

/dev/sdaX none swap sw 0 0

“`

其中,“/dev/sdaX”是新的 Swap 分区设备名。例如,如果新的 Swap 分区设备名为“/dev/sda3”,则行应为:

“`

/dev/sda3 none swap sw 0 0

“`

3. 保存并退出 fstab 文件。

现在,新 Swap 分区已成功永久化并可以在每次系统启动时自动启用。

本文介绍了如何增加 Linux 系统的 Swap 分区大小,包括创建新的 Swap 分区、将新 Swap 分区添加到系统中以及永久化新 Swap 分区。通过增加 Swap 分区的大小,可以帮助系统扩展内存,从而提高系统的性能和稳定性。

相关问题拓展阅读:

linux 下如何更改swap的大小

swapoff 就关掉了swap 然后用fdisk删除swap分区, 然后用跟你磁盘格式孝绝困相对应的磁盘工具将重新得到的空间扩充到你的现有分区中即可

# swapoff

# cfdisk /dev/sda1

图形化的界面巧念 删除swap即可

如果你的系统是ext3格式的分区,那么可以将删除掉的swap占用的空间扩充到邻近的分区上,注意 这一步需要在livecd环境中进行

以livecd启动, 个人建议knoppix 比较好,注意 以下的是我在虚拟机种测试宏颂的输出, 请按照你的实际情况来操作, 千万不可完全的照搬,否则一定会损坏数据

P.S 这个建议现在虚拟机里面练习下,否则 以下操作对于新手来讲还是有一定难度的, 倒不如重新安装一遍来的快和安全,另外 不管内存多大, 适当预留一些swap谨防万一是个好的预防措施…

我个人是认为 没必要care这2g 除非你空间真的十分紧张

卸载sda1:

umount /dev/sda1

然后执行:

fsck -n /dev/sda1

输出:

fsck 1.38 (30-Jun-2023)

e2fsck 1.38 (30-Jun-2023)

/dev/sda1: clean,/files,/blocks

然后是:

tune2fs -O ^has_journal /dev/sda1

输出:

tune2fs 1.38 (30-Jun-2023)

接下来运行:

fdisk /dev/sda

输出:

(Yes, it’s /dev/sda, not /dev/sda1.)

The number of cylinders for this disk is set to 1305.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

Type m to get a list of all commands:

Command (m for help): m

Command action

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition

l list known partition types

m print this menu

n add a new partition

o create a new empty DOS partition table

p print the partition table

q quit without saving changes

s create a new empty Sun disklabel

t change a partition’s system id

u change display/entry units

v verify the partition table

w write table to disk and exit

x extra functionality (experts only

我们来打印分区表:

Command (m for help): p

Disk /dev/sda: 10.7 GB,bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of* 512 =bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 83 Linux

/dev/sdaExtended

/dev/sda5853+ 82 Linux swap / Solaris

现在,删除之一个分区:

Command (m for help): d

Partition number (1-5): 1

然后创建一个新的sda1分区,大体事项和缩小分区步骤一:

Command (m for help): n

Command action

l logical (5 or over)

p primary partition (1-4)

p

Partition number (1-4): 1

现在就该确定最开始和末尾的柱面号,首先输出起始柱面号:

First cylinder (1-1305, default 1):

然后fdisk会告述我们可能的更大柱面号,在这里是1247,然后我们直接输入就行了:

Last cylinder or +size or +sizeM or +sizeK (1-1247, default 1247): 1247

然后看一下新的分区表:

Command (m for help): p

Disk /dev/sda: 10.7 GB,bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of* 512 =bytes

Device Boot Start End Blocks Id System

/dev/sdaLinux

/dev/sdaExtended

/dev/sda5853+ 82 Linux swap / Solaris

别忘了,之前的分区是启动分区,所以还需要做:

Command (m for help): a

Partition number (1-5): 1

最后写入:

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table.

The new table will be used at the next reboot.

Syncing disks.

然后重新启动。还是启动到live-CD环境中(或者rescue模式),用su命令再次切换成root用户,然后运行:

fsck -n /dev/sda1

输出应该是这样的:

fsck 1.38 (30-Jun-2023)

e2fsck 1.38 (30-Jun-2023)

/dev/sda1: clean,/files,/blocks

接下来,在新的/dev/sda1上创建日志文件,转换回ext3文件系统:

tune2fs -j /dev/sda1

tune2fs 1.38 (30-Jun-2023)

Creating journal inode: done

This filesystem will be automatically checked every 30 mounts or

0 days, whichever comes first. Use tune2fs -c or -i to override.

好了,这下完成了。再次重启,启动到你原来的系统中,看看:

df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda% /

varrun48 1% /var/run

varlock 0% /var/lock

udev8 1% /dev

devshm 0% /dev/shm

lrm% /lib/modules/2.6.17-10-generic/volatile

df -B 4k

Filesystem 4K-blocks Used Available Use% Mounted on

/dev/sda% /

varrun7 1% /var/run

varlock 0% /var/lock

udev1% /dev

devshm 0% /dev/shm

lrm475 19% /lib/modules/2.6.17-10-generic/volatile

df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda1 9.5G 4.1G 5.0G 45% /

varrun 94M 132K 94M 1% /var/run

varlock 94M 0 94M 0% /var/lock

udev 10M 52K 10M 1% /dev

devshm 94M 0 94M 0% /dev/shm

lrm 94M 18M 77M 19% /lib/modules/2.6.17-10-generic/volatile

fdisk -l

Disk /dev/sda: 10.7 GB,bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of* 512 =bytes

Device Boot Start End Blocks Id System

/dev/sda1 *96 83 Linux

/dev/sdaExtended

/dev/sda5853+ 82 Linux swap / Solaris

fdisk -s /dev/sda1

linux下更改swap大小方法:

以下操作需要root权限,

#cd /usr/;mkdir swap

#dd if=/dev/zero of=swapfile bs=1G count=2

这条命令从硬盘里分出一胡没铅个 2×1G 大小的空间,挂在swapfile上。

#mkswap swapfile

构建swap格式于/usr/swap/swapfile 上

#swapon swapfile

激活swapfile ,加入到swap分区察塌中。

以上操作在重启系统后swap空间将会失去swapfile ,将swapfile 加入到/etc/fstab

条目将可以使得系统在init进程中调用swapon -a 来自动挂载swapfile ,这样每次机器重启后swapfile

都处于有效裤好的swap空间。

linux下更改swap大小方法:

以下操作需要root权限,

#cd /usr/;mkdir swap

#dd if=/dev/zero of=swapfile bs=1G count=2

这条命令从硬盘野租里分出一个 2×1G 大小的空间,挂在swapfile上。

#mkswap swapfile

构建swap格式于/usr/swap/颂漏兆swapfile 上

#swapon swapfile

激活搜念swapfile ,加入到swap分区中。

以上操作在重启系统后swap空间将会失去swapfile ,将swapfile 加入到/etc/fstab

条目将可以使得系统在init进程中调用swapon -a 来自动挂载swapfile ,这样每次机器重启后swapfile

都处于有效的swap空间。

在/etc/fstab文件中加入下面这样一行:

/usr/swap/swapfile swap swap defaults

这个dd命令很好用,可以用来把大文件分割成小的文件组,利用cat可以将那些小文件组重新组合成原来的大文件。

Linux系统怎么调整swap分区大小

方法/步骤

使用free命令带上m参数,查看swap文件大小,官方建议在RAM是2到4.5G时,swap是RAM的2倍;如果RAM大于等于4G则swap等于RAM即可

也可用罩敏弯cat 查看etc目录下的swaps文件,如下图

使用mkswap命令制作一个swap文件

使用swapon启动swap文件

使用dd命令增加1G内存

再次使用free查看,发现swap确实增加了1G

05但是这个只对当前有效,如果想下次重启系统后还继续物闷有效,需要将配置写入到etc/fstab文件中

所以,我们配置拿拿一下fstab文件中的内容。

swap文件增加后

Linux系统怎么调整swap分区大小

/根分区并不是越大越好,卜穗衡因为驱动程序也是安装在根分区的,所以尽量分配1g(不要低于1g)。然后就是/boot,此分区的空间只要有100m就足够了,多了是没有用的。而/usr分区要根据自己安装软件的族戚数量决定,一般15g已经非常充裕。接下来是/var,这个分区是用来存储安装软件的配置和数据文件用的,一般8-10g就可以了。而/tmp分区是用来存储系统中所有的型做临时文件用的,这个分区分配25g可以避免虚拟机或者系统中程序的下载临时文件过大,而造成的空间不够问题。而交换分区则是系统的交换文件所使用的独立分区,如果内存大于4g可以完全不使用,不分配。在这些分区全部分配完毕之后,把剩余空间全部分配给/home即可。

好像设置好了就调不了了。

不过一般没有必要调整的,基本不怎么用到昌禅的。

真要用到估计电脑配置太低了,要耐宴尘升级的祥告。

关于linux 加大swap的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何增加 Linux 系统的 Swap 分区大小? (linux 加大swap)