linux swap交换分区(详解)

目录
  • linux
    • 1.什么是SWAP
    • 2. swappiness调节什么
    • 3. 什么时候会进行swap操作?
    • 4. swap分区的优先级(priority)
    • 5. 启停swap
    • 6. 创建swap空间

linux

1.什么是SWAP

$ swapon -s
Filename    Type  Size Used Priority
/swap.img                               file     2097148 0 -2

从功能上讲,交换分区主要是在内存不够用的时候,将部分内存上的数据交换到swap空间上,以便让系统不会因内存不够用而导致oom或者更致命的情况出现。所以,当内存使用存在压力,开始触发内存回收的行为时,就可能会使用swap空间。

2. swappiness调节什么

/proc/sys/vm/swappiness 这个文件,是个可以用来调整跟swap相关的参数。这个文件的默认值是60,可以的取值范围是0-100

$  cat /proc/sys/vm/swappiness
60
$ sysctl -q vm.swappiness
vm.swappiness = 60

$ sysctl vm.swappiness=10
$ sysctl -q vm.swappiness
vm.swappiness = 10

持久操作

$ vim /etc/sysctl.conf
vm.swappiness=10    #到末行,需要重启生效

定义内核使用swap的积极程度:

  • 值越高,内核就会越积极的使用swap;
  • 值越低,就会降低对swap的使用积极性。
  • 如果这个值为0,那么内存在free和file-backed使用的页面总量小于高水位标记(high water
  • mark)之前,不会发生交换。调整为0意味着,尽量通过清缓存来回收内存。
  • 设置为100表示内存发生回收时,从cache回收内存和swap交换的优先级一样。就是说,如果目前需求100M内存,那么较大机率会从cache中清除50M内存,再将匿名页换出50M,把回收到的内存给应用程序使用。但是这还要看cache中是否能有空间,以及swap是否可以交换50m。

file-backed:就是上文所说的文件映射页的大小

3. 什么时候会进行swap操作?

kswapd周期检查和直接内存回收的两种内存回收机制。当申请的内存大于剩余内存的时候,就会触发直接回收。那么kswapd进程在周期检查的时候触发回收的条件是什么呢?还是从设计角度来看,kswapd进程要周期对内存进行检测,达到一定阈值的时候开始进行内存回收。这个所谓的阈值可以理解为内存目前的使用压力,就是说,虽然我们还有剩余内存,但是当剩余内存比较小的时候,就是内存压力较大的时候,就应该开始试图回收些内存了,这样才能保证系统尽可能的有足够的内存给突发的内存申请所使用。

kswapd根据内存水位标记决定是否开始回收内存,如果标记达到low就开始回收,回收到剩余内存达到high标记为止。

查看当前系统的内存水位标记
$ cat /proc/zoneinfo

4. swap分区的优先级(priority)

可以使用-p参数指定相关swap空间的优先级, 值越大优先级越高 ,可以指定的数字范围是-1到32767.

$ swapoff /dev/sdc1; swapon -p 0 /dev/sdc1
$ swapon -s
Filename    Type  Size Used Priority
/dev/sdc1                             file     2097148 0 0

$ cat /proc/swaps
Filename    Type  Size Used Priority
/dev/sdc1                             file     2097148 0 0

/etc/ fstab放入一个条目,以使其在每次Linux重新启动时生效:

/dev/sdc1 swap swap pri=0 0 0

5. 启停swap

$ swapoff -a  停止
$ swapon -a  启动

6. 创建swap空间

制作swap文件
dd if=/dev/sda3 of=./swapfile bs=1M count=1G
mkswap ./swapfile

启用swap文件
$ swapon swapfile

$ swapon -s
Filename    Type  Size Used Priority
/swap.img                               file     2097148 3340 0
/mnt/swapfile            file     6388156 0 -2

关闭swap空间
$ swapoff swapfile
$ swapon -s
Filename    Type  Size Used Priority
/swap.img                               file     2097148 3156 0

以上就是linux swap交换分区(详解)的详细内容,更多关于linux swap交换分区的资料请关注我们其它相关文章!,希望大家以后多多支持我们!

(0)

相关推荐

  • 浅谈linux分区相关知识

    首先我们要对硬盘分区的基本概念进行一些初步的了解,硬盘的分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个.且基本分区可以马上被使用但不能再分区.扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区.那么由扩充分区再分下去的是什么呢?它就是逻辑分区(logical partion),况且逻辑分区没有数量上限制. 对习惯于使用dos或windows的用户来说,有几个分区就有几个驱动器,并且

  • 如何在windows9x下访问linux分区

    1. 简 介 Linux 内 核 支 持 众 多 的 文 件 系 统 类 型, 目 前 它 可 以 读 写( 至 少 是 读) 大 部 分 的 文 件 系 统.Linux 经 常 与Microsoft Windows 共 存 于 一 个 系 统 或 者 硬 盘 中.Linux 对windows9x/NT 的 文 件 系 统 支 持 的 很 好, 反 之 你 想 在windows 下 用Visual C++ 编 程 的 同 时 能 看 一 看Linux 的GCC-HOWTO 则 必 须 得 费 点

  • Linux分区格式化的命令

    当硬盘分区完成后,需要对分区进行格式化. 使用mkfs工具对硬盘分区进行格式化,支持MBR和GPT两种分区表. 命令1:格式化sdb1分区为ext3格式 mkfs.ext3 /dev/sdb1 mke2fs 1.41.12 (17-May-2010) 文件系统标签= 操作系统:Linux 块大小=4096 (log=2) 分块大小=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 131072 inodes, 524288 blocks 26

  • 关于linux分区,文件系统,目录结构的概述

    1.Linux中如何表示硬盘,分区 Linux内核读取光驱,硬盘等资源时均通过"设备文件"的形式进行,因此在linux系统中,将硬盘和分区表示为不同的文件.具体表述形式如下: 硬盘:对于IDE接口的硬盘设备,表示为"hdX"形式的文件名:而对于SCSI接口的硬盘设备,则表示为"sdX"形式的文件名,其中"X"可以为a,b,c,d等字母序号.例如,将系统中的第一个IDE设备(硬盘)表示为"hda",将第二个S

  • Linux分区工具的使用方法

    在学习Linux的过程中,安装Linux是每一个初学者的第一个门槛.在这个过程中间,最大的困惑 莫过于给硬盘进行分区.虽然,现在各种发行版本的Linux已经提供了友好的图形交互界面,但是很多的人还是感觉无从下手.这其中的原因主要是不清楚Linux的分区规定,以及它下面最有效的分区工具-Fdisk的使用方法.下面从这两个方面入手,来讲解这个困扰大家的问题. Linux的分区规定 1.设备管理 在Linux中,每一个硬件设备都映射到一个系统的文件,对于硬盘.光驱等IDE或SCSI设备也不例外. Li

  • 在Linux分区或逻辑卷中创建文件系统的方法

    前言 学习在你的系统中创建一个文件系统,并且长期或者非长期地挂载它. 在计算技术中,文件系统控制如何存储和检索数据,并且帮助组织存储媒介中的文件.如果没有文件系统,信息将被存储为一个大数据块,而且你无法知道一条信息在哪结束,下一条信息在哪开始.文件系统通过为存储数据的文件提供名称,并且在文件系统中的磁盘上维护文件和目录表以及它们的开始和结束位置.总的大小等来帮助管理所有的这些信息. 在 Linux 中,当你创建一个硬盘分区或者逻辑卷之后,接下来通常是通过格式化这个分区或逻辑卷来创建文件系统.这个

  • 解除使用Linux分区工具时给大家带来的困扰

    文/吴迪 在学习Linux的过程中,安装Linux是每一个初学者的第一个门槛.在这个过程中间,最大的困惑莫过于给硬盘进行分区.虽然,现在各种发行版本的Linux已经提供了友好的图形交互界面,但是很多的人还是感觉无从下手.这其中的原因主要是不清楚Linux的分区规定,以及它下面最有效的分区工具-Fdisk的使用方法.下面从这两个方面入手,来讲解这个困扰大家的问题. Linux的分区规定 1.设备管理 在Linux中,每一个硬件设备都映射到一个系统的文件,对于硬盘.光驱等IDE或SCSI设备也不例外

  • linux swap交换分区(详解)

    目录 linux 1.什么是SWAP 2. swappiness调节什么 3. 什么时候会进行swap操作? 4. swap分区的优先级(priority) 5. 启停swap 6. 创建swap空间 linux 1.什么是SWAP $ swapon -s Filename Type Size Used Priority /swap.img file 2097148 0 -2 从功能上讲,交换分区主要是在内存不够用的时候,将部分内存上的数据交换到swap空间上,以便让系统不会因内存不够用而导致o

  • linux 中ls命令详解

    ls命令用来显示目标列表,在Linux中是使用率较高的命令.ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件. 语法 ls(选项)(参数) 选项 -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出): -A:显示除影藏文件“.”和“..”以外的所有文件列表: -C:多列显示输出结果.这是默认选项: -l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列: -F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文

  • Centos7中添加、删除Swap交换分区的方法

    Swap介绍: Linux 将物理内存分为内存段,叫做页面.交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放对于页面的内存.物理内存和交换空间的总大小是可用的虚拟内存的总量. Swap即:交换分区,类似于Windows的虚拟内存,但物理内存不足时,把部分硬盘空间当成虚拟内存使用,从而解决了物理内存容量不足. 优点:节省成本. 缺点:性能不足. 此方法不局限于Centos 7,Linux系统均可使用. 操作用户:root. 1.添加swap交换分区空间 使用dd命令创

  • linux swap交换内存扩容的方法

    swap交换内存主要是指当物理内存不够用时,系统会启用硬盘的一部分空间来充当服务器内存,而默认情况下swap内存会有一些设置标准,它与物理内存的大小也是有关系的,具体标准如下: Ram大小 Swap大小 激活Swap后合计大小 256MB 256MB 512MB 512MB 512MB 1GB 1GB 1GB 2GB 3GB 2GB 5GB 4GB 2GB 6GB 6GB 2GB 8GB 8GB 3GB 11GB 12GB 3GB 15GB 16GB 4GB 20GB 32GB 6GB 38GB

  • Linux动态库函数的详解

    Linux动态库函数的详解 加载动态库 void *dlopen(const char *filename, int flag); flag的可能值: RTLD_LAZY RTLD_NOW RTLD_GLOBAL RTLD_LOCAL RTLD_NODELETE (since glibc 2.2) RTLD_NOLOAD (since glibc 2.2) RTLD_DEEPBIND 这些flag的具体含义可使用man查看 返回动态库中最近的一次错误 char *dlerror(void); 根

  • linux中 pmap 命令详解

    通过查看帮助,返回了如下信息: Usage: pmap [options] pid [pid ...] Options: -x, --extended show details -X show even more details WARNING: format changes according to /proc/PID/smaps -XX show everything the kernel provides -c, --read-rc read the default rc -C, --re

  • Linux 下xargs命令详解及xargs与管道的区别

    为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别.为什么要用xargs呢,我们知道,linux命令可以从两个地方读取要处理的内容,一个是通过命令行参数,一个是标准输入.例如cat.grep就是这样的命令,举个例子: echo 'main' | cat test.cpp 这种情况下cat会输出test.cpp的内容,而不是'main'

  • Linux 中的通配符详解及实例

    Linux 中的通配符详解及实例 一 通配符  二 实战 [root@localhost ~]# mkdir dy [root@localhost ~]# cd dy [root@localhost dy]# touch dzp dzp2 dzp3 dzp34 dzpcang dzpbols [root@localhost dy]# ls dzp dzp2 dzp3 dzp34 dzpbols dzpcang [root@localhost dy]# la dzp bash: la: comma

  • Linux性能测试 pmap命令详解

    名称: pmap - report memory map of a process(查看进程的内存映像信息) 用法 pmap [ -x | -d ] [ -q ] pids... pmap -V 选项含义 -x extended Show the extended format. 显示扩展格式 -d device Show the device format. 显示设备格式 -q quiet Do not display some header/footer lines. 不显示头尾行 -V s

  • linux touch,chattr指令详解及用法

     linux touch,chattr指令详解 man touch NAME touch - 更改文件的时间戳 SYNOPSIS touch [OPTION]... FILE... DESCRIPTION 更新文件的atime和mtime为现在的时间 -a 仅修文件被取用的时间 -c, --no-create 文件不存在是不建立新的档案 -d, --date=STRING 使用STRING的设定而不使用现在的时间 -m 仅修改文件内容变更的时间 -t STAMP 使用[[CC]YY]MMDDhh

随机推荐