当前遇到的问题

         修改linux下的swap分区尺寸

解决方法

Linux操作系统安装以后,swap分区太小,两种解决方法:增加swap分区、重新建立swap分区;首先要有root权限,其次在操作过程中一定要很小心,一不小心可能就破坏了整个硬盘的数据,一定要三思而行。

一、增加swap分区(推荐)

1.      检查内存和swap大小

这里有2种方法查看

(1)      free –m

[root@linux ~]# free -m

total      used       free     shared   buffers     cached

Mem:      1010        247     762       0         14       145

-/+buffers/cache:         87        922

Swap:      2201        0      2201

当前系统的swap分区尺寸是物理内存的2

(2)      cat  /proc/meminfo | grep SwapTotal

cat  /proc/meminfo | grep MemTotal

                   [root@linux~]# cat /proc/meminfo | grep SwapTotal

SwapTotal:     2254084 kB

[root@linux ~]# cat /proc/meminfo | grep MemTotal

MemTotal:      1034564 kB

[root@linux ~]# cat /proc/meminfo        --查看所有内存有关信息

MemTotal:      1034564 kB

MemFree:        780616 kB

Buffers:         15060 kB

Cached:         149520 kB

SwapCached:          0 kB

Active:         113076 kB

Inactive:       109956 kB

HighTotal:      131008 kB

HighFree:          252 kB

LowTotal:       903556 kB

LowFree:        780364 kB

SwapTotal:     2254084 kB

SwapFree:      2254084 kB

Dirty:               0 kB

Writeback:           0 kB

Mapped:          83892 kB

Slab:            15256 kB

CommitLimit:   2771364 kB

Committed_AS:   193680 kB

PageTables:       2456 kB

VmallocTotal:   106488 kB

VmallocUsed:      3288 kB

VmallocChunk:   103056 kB

HugePages_Total:     0

HugePages_Free:      0

Hugepagesize:     2048 kB

注意:此处需要说明一下,下表显示了swapram之间的大小关系

RAM

Swap Space

Between 1024 MB and 2048 MB

1.5 times the size of RAM

Between 2049 MB and 8192 MB

Equal to the size of RAM

More than 8192 MB

0.75 times the size of RAM

2.      决定修改swap分区大小,在空间合适处创建用于分区的swap文件

(注意,此处是添加swap分区,swap尺寸=原有swap+新添加swap

[root@linux ~]# dd if=/dev/zero of=/tmp/tempswapbs=1k count=5000

5000+0 records in

5000+0 records out

(注意,if表示infileof表示outfilebs=1k表示每个写入的块的大小为1k

3.      查看创建的文件大小是否符合要求

[root@linux ~]# du -h/tmp/tempswap

4.9M    /tmp/tempswap

4.      格式化目标文件

[root@linux ~]# mke2fs/tmp/tempswap

mke2fs 1.35 (28-Feb-2004)

/tmp/tempswap is not a block special device.

Proceed anyway? (y,n) y

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

1256 inodes, 5000 blocks

250 blocks (5.00%) reserved for the super user

First data block=1

Maximum filesystem blocks=5242880

1 block group

8192 blocks per group, 8192 fragments per group

1256 inodes per group

 

Writing inode tables: done                           

Writing superblocks and filesystem accounting information: done

 

This filesystem will be automatically checked every 24 mounts or

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

5.      将目标文件设置为swap分区文件

[root@linux~]# mkswap /tmp/tempswap

Setting up swapspace version 1, size= 5115 kB

6.      激活swap,立即启用该swap分区文件

[root@linux ~]# swapon /tmp/tempswap

 

7.      再次验证内存和swap分区

[root@linux~]# free  -m

           total       used       free    shared    buffers     cached

Mem:      1010      684        325    0        36        523

-/+buffers/cache:        123        886

Swap:      2206        0        2206

8.      设置新swap文件开机自动挂载

[root@linux ~]# vi/etc/fstab

LABEL=SWAP-hda2    swap                 swap   defaults        0 0

/tmp/tempswap       swap                 swap    defaults        0 0

 

二、重新建立swap分区

 

此实验因为当前系统磁盘没有空闲空间,所以就没有做,下面把主要操作步骤记录如下

 

1.      停止所有swap分区(root身份执行)

#swapoff –a              --停止所有swap分区

2.      修改swap分区

fdisk命令加swap分区的盘符,(例:#fdisk /dev/sdb)剔除swap分区,输入d删除swap分区,然后再n添加分区(添加时硬盘必须要有可用空间,然后再用t将新添的分区id改为82linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)

3.      格式化swap分区

#mkswap /dev/sdb2          --格式化swap分区,这里的sdb2要看你加完swap分区后p命令显示的实际分区设备名

4.      启动新的swap分区

#swapon /dev/sdb2

5.      设置开机启动该swap分区

#/dev/sdb2          swap  swap  defaults   0 0

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐