linux交换分区 mkswap 文件 4k,linux创建交换分区

以前的年代因为内存不足,因此那个可以暂时将内存的程序拿到硬盘中暂放的内存置换空间 (swap)

就显的非常的重要! 否则,如果突然间某支程序用掉你大部分的内存,那你的系统恐怕有损毁的情

况发生喔!所以,早期在安装 Linux 之前,大家常常会告诉你: 安装时一定需要的两个 partition ,

一个是根目录,另外一个就是 swap(内存置换空间)。关于内存置换空间的解释在第三章安装 Linux

内的磁盘分区时有约略提过,请你自行回头瞧瞧吧!

一般来说,如果硬件的配备资源足够的话,那么 swap 应该不会被我们的系统所使用到, swap 会

被利用到的时刻通常就是物理内存不足的情况了。从第零章的计算器概论当中,我们知道 CPU 所读

取的数据都来自于内存, 那当内存不足的时候,为了让后续的程序可以顺利的运作,因此在内存中

暂不使用的程序与数据就会被挪到 swap 中了。 此时内存就会空出来给需要执行的程序加载。由于

swap 是用磁盘来暂时放置内存中的信息,所以用到 swap 时,你的主机磁盘灯就会开始闪个不停啊!

虽然目前(2015)主机的内存都很大,至少都有 4GB 以上啰!因此在个人使用上,你不要设定 swap 在

你的 Linux 应该也没有什么太大的问题。 不过服务器可就不这么想了~由于你不会知道何时会有大

量来自网络的要求,因此最好还是能够预留一些 swap 来缓冲一下系统的内存用量! 至少达到『备

而不用』的地步啊!

现在想象一个情况,你已经将系统建立起来了,此时却才发现你没有建置 swap ~那该如何是好呢?

透过本章上面谈到的方法,你可以使用如下的方式来建立你的 swap 啰!

设定一个 swap partition

建立一个虚拟内存的文件

不啰唆,就立刻来处理处理吧!

使用实体分区构建swap

回到顶部

建立 swap 分区槽的方式也是非常的简单的!透过底下几个步骤就搞定啰:

1. 分区:先使用 gdisk 在你的磁盘中分区出一个分区槽给系统作为 swap 。由于 Linux 的 gdisk 预设会将分

区槽的 ID 设定为 Linux 的文件系统,所以你可能还得要设定一下 system ID 就是了。

2. 格式化:利用建立 swap 格式的『mkswap 装置文件名』就能够格式化该分区槽成为 swap 格式啰

3. 使用:最后将该 swap 装置启动,方法为:『swapon 装置文件名』。

4. 观察:最终透过 free 与 swapon -s 这个指令来观察一下内存的用量吧!不啰唆,立刻来实作看看!既然我们还有多余的磁盘容量可以分区,那么让我们继续分区出 512MB 的

磁盘分区槽吧! 然后将这个磁盘分区槽做成 swap 吧!

1. 先进行分区的行为啰!

[root@initroot ~]# gdisk /dev/vda

Command (? for help): n

Partition number (6-128, default 6):

First sector (34-83886046, default = 69220352) or {+-}size{KMGTP}:

Last sector (69220352-83886046, default = 83886046) or {+-}size{KMGTP}: +512M

Current type is 'Linux filesystem'

Hex code or GUID (L to show codes, Enter = 8300): 8200

Changed type of partition to 'Linux swap'

Command (? for help): p

Number

6

Start (sector)

End (sector)

69220352

70268927

Size

512.0 MiB

Code Name

8200 Linux swap

# 重点就是产生这东西!

Command (? for help): w

Do you want to proceed? (Y/N): y

[root@initroot ~]# partprobe

[root@initroot ~]# lsblk

NAME MAJ:MIN RM

vda 252:0

SIZE RO TYPE MOUNTPOINT

0 40G 0 disk

0 512M 0 part

.....(中间省略).....

`-vda6

252:6

# 确定这里是存在的才行!

# 有简化输出喔!结果可以看到我们多了一个 /dev/vda6 可以使用于 swap 喔!

2. 开始建置 swap 格式

[root@initroot ~]# mkswap /dev/vda6

Setting up swapspace version 1, size = 524284 KiB

no label, UUID=6b17e4ab-9bf9-43d6-88a0-73ab47855f9d

[root@initroot ~]# blkid /dev/vda6

/dev/vda6: UUID="6b17e4ab-9bf9-43d6-88a0-73ab47855f9d" TYPE="swap"

# 确定格式化成功!且使用 blkid 确实可以抓到这个装置了喔!

3. 开始观察与加载看看吧!

[root@initroot ~]# free

total

used

free

shared

buff/cache

availableMem: 1275140 227244 330124

Swap: 1048572 101340 947232

7804

717772

875536

# 物理内存

# swap 相关

# 我有 1275140K 的物理内存,使用 227244K 剩余 330124K ,使用掉的内存有

# 717772K 用在缓冲/快取的用途中。至于 swap 已经有 1048572K 啰!这样会看了吧?!

[root@initroot ~]# swapon /dev/vda6

[root@initroot ~]# free

total used free shared buff/cache available

Mem: 1275140 227940 329256 7804 717944 874752

Swap: 1572856 101260 1471596

#有看到增加了没?

[root@initroot ~]# swapon -s

Filename Type Size

Used

/dev/dm-1 partition 1048572 101260 -1

/dev/vda6 partition 524284 -2

0

Priority

# 上面列出目前使用的 swap 装置有哪些的意思!

[root@initroot ~]# nano /etc/fstab

UUID="6b17e4ab-9bf9-43d6-88a0-73ab47855f9d"

swap

swap

defaults

0

0

# 当然要写入配置文件,只不过不是文件系统,所以没有挂载点!第二个字段写入 swap 即可。

使用文件建置 swap

回到顶部

如果是在实体分区槽无法支持的环境下,此时前一小节提到的 loop 装置建置方法就派的上用场啦!

与实体分区槽不一样的,这个方法只是利用 dd 去建置一个大文件而已。多说无益,我们就再透过文

件建置的方法建立一个 128 MB 的内存置换空间吧!

1. 使用 dd 这个指令来新增一个 128MB 的文件在 /tmp 底下:

[root@initroot ~]# dd if=/dev/zero of=/tmp/swap bs=1M count=128

128+0 records in

128+0 records out

134217728 bytes (134 MB) copied, 1.7066 seconds, 78.6 MB/s

[root@initroot ~]# ll -h /tmp/swap

-rw-r--r--. 1 root root 128M Jun 26 17:47 /tmp/swap

这样一个 128MB 的文件就建置妥当。若忘记上述的各项参数的意义,请回前一小节查阅一下啰!

2. 使用 mkswap 将 /tmp/swap 这个文件格式化为 swap 的文件格式:

[root@initroot ~]# mkswap /tmp/swapSetting up swapspace version 1, size = 131068 KiB

no label, UUID=4746c8ce-3f73-4f83-b883-33b12fa7337c

# 这个指令下达时请『特别小心』,因为下错字元控制,将可能使您的文件系统挂掉!

3. 使用 swapon 来将 /tmp/swap 启动啰!

[root@initroot ~]# swapon /tmp/swap

[root@initroot ~]# swapon -s

o

Filename Type Size

Used

Priority

/dev/dm-1 partition 1048572 100380 -1

/dev/vda6 partition 524284 0 -2

/tmp/swap file 131068 0 -3

4. 使用 swapoff 关掉 swap file,并设定自动启用

[root@initroot ~]# nano /etc/fstab

/tmp/swap

swap

swap

defaults

0

0

# 为何这里不要使用 UUID 呢?这是因为系统仅会查询成组设备 (block device) 不会查询文件!

# 所以,这里千万不要使用 UUID,不然系统会查不到喔!

[root@initroot ~]# swapoff /tmp/swap /dev/vda6

[root@initroot ~]# swapon -s

Filename Type Size

Used

/dev/dm-1 partition 1048572 100380

Priority

-1

# 确定已经回复到原本的状态了!然后准备来测试!!

[root@initroot ~]# swapon -a

[root@initroot ~]# swapon -s

# 最终你又会看正确的三个 swap 出现啰!这也才确定你的 /etc/fstab 设定无误!

说实话,swap 在目前的桌面计算机来讲,存在的意义已经不大了!这是因为目前的 x86 主机所含的

内存实在都太大了 (一般入门级至少也都有 4GB 了),所以,我们的 Linux 系统大概都用不到 swap

这个玩意儿的。不过, 如果是针对服务器或者是工作站这些常年上线的系统来说的话,那么,无论

如何,swap 还是需要建立的。

因为 swap 主要的功能是当物理内存不够时,则某些在内存当中所占的程序会暂时被移动到 swap

当中,让物理内存可以被需要的程序来使用。另外,如果你的主机支持电源管理模式, 也就是说,

你的 Linux 主机系统可以进入『休眠』模式的话,那么, 运作当中的程序状态则会被纪录到 swap 去,

以作为『唤醒』主机的状态依据! 另外,有某些程序在运作时,本来就会利用 swap 的特性来存放

一些数据段, 所以, swap 来是需要建立的!只是不需要太大!

7.6 文件系统的特殊观察与操作

文件系统实在是非常有趣的东西,学了好几年还是很多东西不很懂呢!在学习的过程中很多朋友

在讨论区都有提供一些想法! 这些想法将他归纳起来有底下几点可以参考的数据呢!

7.6.1 磁盘空间之浪费问题

我们在前面的 EXT2 data block 介绍中谈到了一个 block 只能放置一个文件, 因此太多小文件将会

浪费非常多的磁盘容量。但你有没有注意到,整个文件系统中包括 superblock, inode table 与其他中

介数据等其实都会浪费磁盘容量喔!所以当我们在 /dev/vda4, /dev/vda5 建立起 xfs/ext4 文件系统时,

一挂载就立刻有很多容量被用掉了!

另外,不知道你有没有发现到,当你使用 ls -l 去查询某个目录下的数据时,第一行都会出现一个『total』

的字样! 那是啥东西?其实那就是该目录下的所有数据所耗用的实际 block 数量 * block 大小的值。

我们可以透过 ll -s 来观察看看上述的意义:

[root@initroot ~]# ll -sh

total 12K

4.0K -rw-------. 1 root root 1.8K May

4.0K -rw-r--r--. 2 root root

0 lrwxrwxrwx. 1 root root

4 17:57 anaconda-ks.cfg

451 Jun 10

2014 crontab

12 Jun 23 22:31 crontab2 -> /etc/crontab

4.0K -rw-r--r--. 1 root root 1.9K May

4 18:01 initial-setup-ks.cfg

0 -rw-r--r--. 1 root root 0 Jun 16 01:11 test1

0 drwxr-xr-x. 2 root root 6 Jun 16 01:11 test2

0 -rw-rw-r--. 1 root root 0 Jun 16 01:12 test3

0 drwxrwxr-x. 2 root root 6 Jun 16 01:12 test4

从上面的特殊字体部分,那就是每个文件所使用掉 block 的容量!举例来说,那个 crontab 虽然仅

有 451bytes , 不过他却占用了整个 block (每个 block 为 4K),所以将所有的文件的所有的 block

加总就得到 12Kbytes 那个数值了。 如果计算每个文件实际容量的加总结果,其实只有不到 5K 而

已~所以啰,这样就耗费掉好多容量了!未来大家在讨论小磁盘、 大磁盘,文件容量的损耗时,要

回想到这个区块喔! ^_^

initroot编辑整理,转载请注明www.initroot.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值