导航:首页 > 操作系统 > linuxswap空间

linuxswap空间

发布时间:2024-10-19 11:55:22

❶ redhat linux swap分区扩展的三种方法详解

redhat linux swap分区扩展的三种方法

swap 介绍:

当物理内存占用完了后,当系统还需要更多的物理内存时,物理内存中inactive pages ,就move到swap空间。swap 空间是在位于硬盘上的,因此访问速度较物理内存慢。

当机器的物理内存发生变化时,swap 分区也要做相应的扩展:

有三种方法可以对swap 分区进行扩展:

一、扩展正在使用的swap 分区的逻辑卷(推荐使用此种方式)

二、新建swap 分区,

三、新建swap file,

具体步骤如下:

一、扩展正在使用的swap 分区的逻辑卷

设定用作swap 分区的逻辑卷为:/dev/VolGroup00/LogVol01

Disable swapping for the associated logical volume:

# swapoff -v /dev/VolGroup00/LogVol01

Resize the LVM2 logical volume by 256 MB:

# lvm lvresize /dev/VolGroup00/LogVol01 -L +256M

Format the new swap space:

# mkswap /dev/VolGroup00/LogVol01

Enable the extended logical volume:

# swapon -va

Test that the logical volume has been extended properly:

# cat /proc/swaps 或者# free

二、新建swap 分区

设定新建的swap 分区的逻辑卷为:/dev/VolGroup00/LogVol02

Create the LVM2 logical volume of size 256 MB:

# lvm lvcreate VolGroup00 -n LogVol02 -L 256M

Format the new swap space:

# mkswap /dev/VolGroup00/LogVol02

Add the following entry to the /etc/fstab file:

/dev/VolGroup00/LogVol02 swap swap defaults 0 0

Enable the extended logical volume:

# swapon -va

Test that the logical volume has been extended properly:

# cat /proc/swaps 或者# free

三、新建swapfile

通过此种方式进行swap 的扩展,首先要计算出block的数目。具体为根据需要扩展的swapfile的大小,以M为单位。block=swap分区大小*1024, 例如,需要扩展64M的swapfile,则:block=64*1024=65536.

然后做如下步骤:

dd if=/dev/zero of=/swapfile bs=1024 count=65536

Setup the swap file with the command:

mkswap /swapfile

To enable the swap file immediately but not automatically at boot time:

swapon /swapfile

To enable it at boot time, edit /etc/fstab to include the following entry:

/swapfile swap swap defaults 0 0

After adding the new swap file and enabling it, verify it is enabled by viewing the output of the command cat /proc/swaps 或者 free.

总结:三种方法都能对swap 分区进行扩展,但是推荐使用第一种方法。

❷ Linux中swap交换分区的创建和容量调整的教程

我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢?
在装完Linux系统之后,建立Swap分区有两种方法。
1.新建磁盘分区作为swap分区;
2.用文件作为swap分区 (操作更简单,我更常用)。
下面介绍这两种方法:(都必须用root权限,操作过程应该小心谨慎。)

一、新建磁盘分区作为swap分区
1.以root身份进入控制台(登录系统),输入

复制代码

代码如下:

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

2. 用fdisk命令(例:# fdisk /dev/sdb)对磁盘进行分区,添加swap分区,新建分区,在fdisk中用t命令将新添的分区id改为82(Linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)。

3.
复制代码

代码如下:

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

4.
复制代码

代码如下:

# swapon /dev/sdb2 #启动新的swap分区

5. 为了让系统启动时能自动启用这个交换分区,可以编辑/etc/fstab,加入下面一行

复制代码

代码如下:

/dev/sdb2 swap swap defaults 0 0

二、调整swap分区大小
有的时候,我们要增加swap的大来,例如,安装oracle。下面说一下如何来增加交换分区的大小。

复制代码

代码如下:

root@ubuntu:/home/zhangying# free -m
total used free shared buffers cached
Mem: 3449 3256 193 0 723 1687
-/+ buffers/cache: 845 2604
Swap: 254 0 254

复制代码

代码如下:

root@ubuntu:/home/zhangying# mkdir swap
root@ubuntu:/home/zhangying# cd swap/
root@ubuntu:/home/zhangying/swap# dd if=/dev/zero of=swaptmp bs=9024 count=100000

记录了100000+0 的读入
记录了100000+0 的写出
902400000字节(902 MB)已复制,12.5008 秒,72.2 MB/秒

复制代码

代码如下:

root@ubuntu:/home/zhangying/swap# mkswap swaptmp
mkswap: swaptmp: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 881244 KiB
no label, UUID=ed24d0cc-3af5-4278-b41a-df1ab7433f83
root@ubuntu:/home/zhangying/swap# swapon swaptmp
root@ubuntu:/home/zhangying/swap# free -m
total used free shared buffers cached
Mem: 3449 3359 90 0 637 1930
-/+ buffers/cache: 791 2657
Swap: 1115 0 1115

这种只是临时的,如果重起电脑的话,交换分区的大小还是还原成原来的,如果不重起想还原成原来的,看下面的方法。

复制代码

代码如下:

root@ubuntu:/home/zhangying/swap# swapoff swaptmp
root@ubuntu:/home/zhangying/swap# rm swaptmp
root@ubuntu:/home/zhangying/swap# free -m
total used free shared buffers cached
Mem: 3449 3368 81 0 732 1895
-/+ buffers/cache: 739 2710
Swap: 254 6 248

还有一种情况是这种临时的swap,变成非临时的。

复制代码

代码如下:

nano /etc/fstab
/home/zhangying/swap/swaptmp swap swap defaults 0 0

注释:这种启动的时候自动加载,根加载windows下的硬盘是一样的,如果swaptmp文件丢失,也无法增加swap的大小。

三、用文件作为Swap分区
1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。

复制代码

代码如下:

# dd if=/dev/zero of=/root/swapfile bs=1M count=1024

2.格式化为交换分区文件:

复制代码

代码如下:

# mkswap /root/swapfile #建立swap的文件系统

3.启用交换分区文件:

复制代码

代码如下:

# swapon /root/swapfile #启用swap文件

4.使系统开机时自启用,在文件/etc/fstab中添加一行:

复制代码

代码如下:

/root/swapfile swap swap defaults 0 0

新建和增加交换分区用到的命令为:mkswap、swapon等,而想关闭掉某个交换分区则用swapon /dev/sdb2这样的命令即可。

下面的操作命令演示了用文件作为Swap的操作过程(包括前后的一些检查)。

复制代码

代码如下:

[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3179 800 0 266 1873
-/+ buffers/cache: 1039 2940
Swap: 4095 0 4095

复制代码

代码如下:

[root@jay-linux ~]# cat /etc/fstab
# 已省略与主题无关的部分输出
/dev/sda3 swap
swap defaults 0 0

复制代码

代码如下:

[root@jay-linux ~]# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.09017 s, 263 MB/s
[root@jay-linux ~]# mkswap /root/swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=48a7ffd5-392f-4963-904c-3e67f0e5dfbe

复制代码

代码如下:

[root@jay-linux ~]# swapon /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2628
-/+ buffers/cache: 1054 2924
Swap: 5119 0 5119

复制代码

代码如下:

[root@jay-linux ~]# swapoff /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2925
Swap: 1023 0 1023

复制代码

代码如下:

[root@jay-linux ~]# swapoff /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2926
Swap: 0 0 0

复制代码

代码如下:

[root@jay-linux ~]# swapon /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3946 33 0 261 2629
-/+ buffers/cache: 1054 2924
Swap: 4095 0 4095

复制代码

代码如下:

[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3179 800 0 266 1873
-/+ buffers/cache: 1039 2940
Swap: 4095 0 4095

复制代码

代码如下:

[root@jay-linux ~]# cat /etc/fstab
# 已省略与主题无关的部分输出
/dev/sda3 swap
swap defaults 0 0

复制代码

代码如下:

[root@jay-linux ~]# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 4.09017 s, 263 MB/s
[root@jay-linux ~]# mkswap /root/swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=48a7ffd5-392f-4963-904c-3e67f0e5dfbe

复制代码

代码如下:

[root@jay-linux ~]# swapon /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2628
-/+ buffers/cache: 1054 2924
Swap: 5119 0 5119

复制代码

代码如下:

[root@jay-linux ~]# swapoff /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2925
Swap: 1023 0 1023

复制代码

代码如下:

[root@jay-linux ~]# swapoff /root/swapfile
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3945 34 0 261 2629
-/+ buffers/cache: 1053 2926
Swap: 0 0 0

复制代码

代码如下:

[root@jay-linux ~]# swapon /dev/sda3
[root@jay-linux ~]# free -m
total used free shared buffers cached
Mem: 3979 3946 33 0 261 2629
-/+ buffers/cache: 1054 2924
Swap: 4095 0 4095

❸ Linux - Swap

首先,swap是硬盘上的一块空间。

其次,当内存没有多余空间的时候,可以将一部分数据交换到swap空间。也就是将内存中的一部分数据放到硬盘中,并释放内存空间。这样,释放出的内存空间就又可以被利用来存储其他数据了。

这样,本来只有4G的内存,如果swap有2G的话,可使用的内存可以认为是6G。

但是,硬盘的速度比内存慢太多太多了。因此swap只是对内存的一种补充,是在内存不足时对内存的扩充,但是不能代替内存使用。

内存不足时, 操作系统 会选择 最久没被使用的内存数据 ,交换到swap空间。

注意,交换操作是由操作系统来进行的。

系统在什么情况或条件下才会使用Swap分区的空间呢? 其实是Linux通过一个参数swappiness来控制的。当然还涉及到复杂的算法

这个参数值可为 0-100,控制系统 swap 的使用程度。

0告诉内核尽可能的不要将内存数据移到swap中,也即只有在迫不得已的情况下才这么做,而100告诉内核只要有可能,尽量的将内存中不常访问的数据移到swap中。默认值为 60。注意:这个只是一个权值,不是一个百分比值,涉及到系统内核复杂的算法

查看当前系统中swappiness的值

修改当前系统中swappiness的值

上面通过sysctl修改的swappiness值在系统重启后会失效,要想重启后继续生效,需要修改配置文件/etc/sysctl.conf,将下面这行修改成10,如果文件中找不到这行的话,在文件末位加上这行就可以了

既然配置swap对桌面系统有帮助,那么配置多少大小的swap比较合适呢?下面是ubuntu给出的建议:

Linux下有两种类型的swap空间,swap分区和swap文件,他们有各自的特点:

swap分区上面由于没有文件系统,所以相当于内核直接访问连续的磁盘空间,效率相对要高点,但由于swap分区一般安装系统时就分配好了了,后期要缩减空间和扩容都很不方便。

swap文件放在指定分区的文件系统里面,所以有可能受文件系统性能的影响,但据说2.6版本以后的内核可以直接访问swap文件对应的物理磁盘地址,相当于跳过了文件系统直接访问磁盘,不过如果swap文件在磁盘上的物理位置不连续时,还是会对性能产生不利影响,但其优点就是灵活,随时可以增加和移除swap文件。

如果配置有多个swap分区或者文件的话,这里将会有多行,每行代表一个正在被系统使用的swap分区或文件,下面是每个字段的意思:

并不是swap空间占用多就一定性能下降,真正影响性能是swap in和out的频率,频率越高,对系统的性能影响越大,我们可以通过vmstat命令来查看swap in/out的频率

在添加swap分区前,首先得有一个空闲的分区,如果是一块新的磁盘,可以用fdisk来创建一个新的分区用于swap。

添加swap文件就简单多了,也没有分区操作那么有风险。

通过如下命令,能查看所有进程的使用swap情况

查看某个进程swap占用内存大小脚本:

查看所有进程使用swap情况脚本:

阅读全文

与linuxswap空间相关的资料

热点内容
如何建立linux日志管理服务器 浏览:768
悟空头图标是什么APP 浏览:551
linuxandroid虚拟机 浏览:279
ps李涛pdf 浏览:636
linuxfork线程 浏览:95
易语言编译改名 浏览:721
阿里服务器都提供什么 浏览:754
cf打开服务器接不上怎么办 浏览:901
linux下more命令 浏览:402
des算法运算位数 浏览:375
珠海建行贷款解压 浏览:635
布谷源码iOS 浏览:66
云存储节点服务器是啥 浏览:784
压缩文件可以用pad解压么 浏览:609
我的世界服务器如何换 浏览:64
程序员要拒绝吗 浏览:124
下期视频怎么解压 浏览:383
方法命令函数指令 浏览:130
视频已加密请输入密码确认 浏览:362
香港中产程序员 浏览:917