Linux交换分区的创建和调整

概述

本文对swap进行简要介绍,以及系统安装后(在运行中)如何建立或调整swap分区。

文中演示环境为:

Linux交换分区的创建和调整


什么是swap space?

交换分区,即swap space。它将某段磁盘空间独立划分出来,当物理内存不够的情况下,系统先把物理内存中暂时不用的数据,暂存到交换空间,腾出内存空间来,以保证程序的运行;当swap中存储的页面被访问到时,系统会将其重新载入到物理内存中去运行。在Windows、Unix、Linux系统中都有交换分区的概念。


怎么分配swap space?

作为系统物理内存的补充,交换分区的操作即是磁盘I/O的操作,我们应当尽可能地利用更高I/O的硬盘划分交互分区。优先考虑的是固态硬盘,而对于机械硬盘来说,前面的磁盘要比后面的快,因此优先使用靠前的扇区划分swap。

另外,Swap分区的数量对性能也有很大的影响。如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于所有的Swap,这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。


分配多少swap space?

分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错误。如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请求数量衍
生出多个服务进程(或线程),如果Swap空间用完,则服务进程无法启动,通常会出现“application is out of
memory”的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。

通过翻查《 Red Hat Enterprise Linux 7 Installation Guide 》,看到红帽官方推荐的分配方案:

Linux交换分区的创建和调整

生产环境中不应开启休眠(hibernation),所以不需要考虑第三列,即:

  •             内存小于 2GB时,推荐swap大小为内存2倍;

  •             内存 2 ~ 8GB时,推荐swap大小等于内存大小;

  •             内存 8 ~64GB时,推荐swap大小为内存的0.5;

  •             内存大于64GB时,则视服务器的工作负载配置。

如果您的系统资源允许的话,增加交换空间可能会导致更好的性能。


如何查看swap space?

Linux中,系统提供了三种方法可以查看系统的swap的分区情况:

      • cat /proc/swaps

      • swapon -s

      • free

Linux交换分区的创建和调整


如何划分和增加swap space?

我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢?

在装完Linux系统之后,建立Swap分区基本设置包括:

  •         创建交换分区或者文件

  •         使用mkswap写入特殊签名

  •         在/etc/fstab文件中添加适当的条目

  •         使用swapon -a 激活交换空间

swap分区的操作必须用root权限,操作过程应该小心谨慎。

为了避免不必要的问题,我们先停止所有的swap分区

[root@IP70-CentOS7 ~]# >>swapoff -a         #停止所有的swap分区

Linux交换分区的创建和调整

1. 创建交换分区或者文件

建立swap有两种方法:a.新建磁盘分区;b.用文件作为swap分区。

a.新建磁盘分区:

用fdisk命令(例:# fdisk /dev/sdb),新建大小2GB分区,在fdisk中用“t”命令调整分区类型为82(Linux swap类型),最后w保存fdisk操作。

1472531988614299.png

b.用文件作为swap分区:

用dd命令创建分区文件,文件大小可以通过指定选项进行设置。(bs*count=文件大小)

[root@IP70-CentOS7 ~]# >> dd if=/dev/zero of=/root/swap bs=1M count=2048

Linux交换分区的创建和调整

2. 使用mkswap写入特殊签名(格式化swap分区)

mkswap是专门用于设置Linux swap分区的命令,命令格式是mkswap [options] device [size]

Linux交换分区的创建和调整

3. 在/etc/fstab文件中添加适当的条目

Linux交换分区的创建和调整

4. 使用swapon -a 激活交换空间

Linux交换分区的创建和调整

多个swap分区是有优先级(Priority)的,数值大,则优先使用。我们可以通过swapon的-p选项调整swap的优先级,优化swap性能:分布存放,高性能磁盘存放。

需要注意的是:修改后,需要swapoff禁用,再swapon进行重新挂载。



结束语

虽然swap分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于swap,最好的办法仍然是加大物理内存。swap分区只是临时的解决办法.

原创文章,作者:昭其,如若转载,请注明出处:http://www.178linux.com/42130

(3)
上一篇 2016-08-30 13:55
下一篇 2016-08-30 13:55

相关推荐

  • shell编程之数组及环境变量

    数组 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的 集合 索引:编号从0 声明数组: declare -a ARRAY_NAME declare -A ARRAY_NAME:关联数组 1.declare  -a menu  menu[0]=beef  menu[1]=chicken menu…

    Linux干货 2016-08-29
  • 文本处理工具之sed

    一.介绍 sed是一个流编辑工具,可以用来实现对文本的过滤与替换,而Linux的哲学思想之一就是一切皆文件,因此对文本的操作至关重要。sed的基本工作原理是通过每次读取一行文本来来对默写符合条件的文本进行处理。要注意的是sed默认并不直接修改源文件,而是将读取到的内容复制到缓冲区在中,这个缓冲区也叫做模式空间,然后在模式空间中对文本进行处理,处理完成后将结果…

    Linux干货 2017-01-05
  • 2016-08-12博客作业

    德摩根定理       在命题逻辑和逻辑代数中,德摩根定律(或称德摩根定理)是关于命题逻辑规律的一对法则。奥古斯塔斯·德摩根首先发现了在命题逻辑中存在着下面这些关系: 非(P 且 Q)=(非 P)或(非 Q) 非(P 或 Q)=(非 P)且(非 Q)     …

    Linux干货 2016-08-15
  • Linux内核编译过程详解

    前言 Linux内核是Linux操作系统的核心,也是整个Linux功能体现的核心,就如同发动机在汽车中的重要性。内核主要功能包括进程管理、内存管理、文件管理、设备管理、网络管理等。Linux内核是单内核设计,但却采用了微内核的模块化设计,支持内核线程以及动态装载内核模块的能力。 Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订…

    Linux干货 2015-04-01
  • N23-第一周博客作业

    一、计算机组成 由五大基本部件【运算器 + 控制器 + 储存器 + 输入设备 + 输出设备】组成且遵循冯诺依曼体系,CPU包含运算器和控制器两大部件。 CPU: 核心部件:运算器、控制器 其他部件:寄存器、缓存、等等 存储器:内存,RAM(Random Access Memory)随机访问存储器。 Input(输入设备):下指令,提供数据等,如:硬盘、键盘、…

    Linux干货 2016-09-15
  • 第五周作业

    1、显示当前系统上root,fedora或user1用户的默认shell。 [root@hostname ~]# grep -E ‘^(root|fedora|user1)’ /etc/passwd | cut -d: -f1,7 root:/bin/bash 2、找出/etc/rc.d/init.d/functions文件中某词后面跟一组小括号的行,形如:…

    Linux干货 2017-08-04