UnixLinux的swap区配置原理和原则【精华】

合集下载

linux swap使用机制

linux swap使用机制

linux swap使用机制英文回答:Linux swap is a mechanism used by the Linux operating system to manage memory. It serves as a form of virtual memory that allows the system to temporarily store datathat is not actively being used in RAM (Random Access Memory). When the RAM becomes full, the operating system can transfer some of the data from RAM to the swap space to free up memory for other processes.The swap space is typically a dedicated partition on the hard drive, although it can also be a swap file within the file system. It acts as an extension of the RAM and provides extra memory when needed. The data in the swap space is stored in blocks, which are divided into pages. When a process needs to access data that is in the swap space, the operating system retrieves the necessary pages and brings them back into RAM.One important aspect of the Linux swap mechanism is the swapping algorithm. This algorithm determines which pagesin RAM should be moved to the swap space when the system is running out of memory. The most commonly used algorithm is called "least recently used" (LRU), which selects the pages that have not been accessed for the longest time. By swapping out these less frequently used pages, the system can make room for more frequently accessed data in RAM.Another important feature of Linux swap is the swappiness parameter. This parameter controls the tendency of the system to swap out data to the swap space. A higher swappiness value means that the system is more likely to use swap space, while a lower value means that the system will try to avoid swapping data as much as possible. The default swappiness value is usually set to 60, but it can be adjusted according to the specific needs of the system.In addition to serving as an extension of the RAM, the swap space also plays a role in hibernation and suspend-to-disk operations. When the system is hibernated or put into suspend-to-disk mode, the contents of the RAM are saved tothe swap space. This allows the system to restore its state when it is powered back on.中文回答:Linux的swap机制是Linux操作系统用来管理内存的一种机制。

swap大小设置原则

swap大小设置原则

swap大小设置原则
Swap是指交换分区,用于操作系统在内存不足时将不常用的数据转移到硬盘上,以便腾出更多的内存。

在Linux系统中,swap大小的设置是一个比较复杂的问题,需要考虑多个因素。

1. 系统内存大小
一般来说,系统内存越大,swap大小就越小。

如果系统内存大于16GB,建议将swap设置为内存大小的一半。

2. 应用程序需求
如果运行的应用程序需要大量的内存,建议适当增加swap大小,以免影响系统运行稳定性。

3. 磁盘空间
swap分区是硬盘上的一个分区,需要占用一定的磁盘空间。

在设置swap大小时,需要考虑磁盘空间的限制。

4. 预留空间
建议在磁盘上预留一定的空间,以备不时之需。

综上所述,swap大小的设置应该根据系统内存大小、应用程序需求、磁盘空间和预留空间等因素综合考虑。

一般来说,swap大小应该设置为内存大小的一半。

但是具体情况需要根据实际情况进行调整。

- 1 -。

linux的交换分区swap

linux的交换分区swap

linux的交换分区swaplinux的交换分区相当于windows下的虚拟内存⼀样,都是在硬盘上开辟⼀⽚空间,当作内存使⽤,提⾼系统效率。

Linux内核为了提⾼读写效率与速度,会将⽂件在内存中进⾏缓存,这部分内存就是Cache Memory(缓存内存)。

即使你的程序运⾏结束后,Cache Memory也不会⾃动释放。

这就会导致你在Linux系统中程序频繁读写⽂件后,你会发现可⽤物理内存变少。

当系统的物理内存不够⽤的时候,就需要将物理内存中的⼀部分空间释放出来,以供当前运⾏的程序使⽤。

那些被释放的空间可能来⾃⼀些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运⾏时,再从Swap分区中恢复保存的数据到内存中。

这样,系统总是在物理内存不够时,才进⾏Swap交换。

⼀、查看swap分区1、因为swap当作内存使⽤,所以使⽤ free命令。

Linux free命令⽤于显⽰内存状态。

free指令会显⽰内存的使⽤情况,包括实体内存,虚拟的交换⽂件内存,共享内存区段,以及系统核⼼使⽤的缓冲区等。

free -m 以MB为单位显⽰内存使⽤情况。

可以查看系统的内存情况和交换分区 swap 的情况。

2、也可使⽤专门⽤来管理交换分区的命令 swapon 来查看。

Linux swapon命令⽤于激活Linux系统中交换空间,Linux系统的内存管理必须使⽤交换区来建⽴虚拟内存。

swapon -s 显⽰简短的装置讯息.。

该命令相当于 cat /proc/swaps .⼆、启⽤和关闭某⼀个交换分区1、启⽤交换分区:swapon /dev/sda* ; /dev/sda*为交换分区的挂载点。

使⽤fdisk -l 可以查看现有的swap分区。

使⽤swapon -s 查看现在启⽤的swap分区。

2、关闭交换分区:swapoff /dev/sda*;开启和关闭交换分区除了根据设备名称之外还可以根据 UUID LABLE FILE 等可以唯⼀确定位置的⼀些其他⽅法开启或者关闭。

linux swap分区

linux swap分区

最近看到有朋友在我的Blog中问关于Linux环境下swap分区设置的问题,问题如下:“需要设置一个10G的swap分区,是设置成单个10G的好呢,还是5个2G的,还是其他的方案,比如2个5G的分区?”看来有必要再写一篇Blog来阐述一下这个问题。

在网络上我经常看到这样的经典问答:问:我的内存大小是xxx,那么我建立的swap多少才合适?答:大概物理内存的1倍即可。

我认为这种回答是很不负责任的,所谓1倍内存大小或2倍内存大小的swap分区设置,是给那些对Linux系统不是很熟悉的用户的简单建议,这种设置在桌面Linux下是没有什么问题的,最多是占用一些硬盘空间而已。

但是在真正的生产环境下,这种设置是很不合理的一种设置。

一、swap分区大小是怎么确定的?其实swap分区的大小设置是很考验Linux系统管理员水平的一件事情,swap的大小是这样决定的:( 内存大小 Swap分区大小 ) * 80%或70% >= 程序需要占用总内存数如果系统内存大小已经大于系统中所有任务最大内存使用大小,那么就根本没有必要设置swap分区了,如果这个时候设置上,那么就是白白占用了那些硬盘空间(当然,如果硬盘足够富裕,可以忽略这些占用了)。

那么有的管理员就会说了:我不知道我系统中所有任务最大内存使用大小是多少啊!我在这里给你一个方法,可以找到这个大小是多少,下面跟着我一步一步来:1、用swapoff 关掉所有swap 然后正常运行任务,如果出现内存不足的提示,就需要逐步增加swap2、一般来讲,物理内存达到256m,在安装时即可不用划分交换分区.。

3、可以在安装后建立交换分区,或者建立交换文件。

BTW:swap还有一个用处,就是在机器lock,出现问题的时候内存的内容会自动copy 到swap上面,这样可以有效防止机器故障带来内存中的内容忽然丢失的情况。

二、为什么swap分区不宜过大?为什么 swap 分区不宜过大,这是由于 Linux 内存分配的特点——它会尽可能多地使用内存(包括swap 分区)。

linuxswap交换分区(详解)

linuxswap交换分区(详解)

linuxswap交换分区(详解)⽬录linux1.什么是SWAP2. swappiness调节什么3. 什么时候会进⾏swap操作?4. swap分区的优先级(priority)5. 启停swap6. 创建swap空间linux1.什么是SWAP$ swapon -sFilename 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/swappiness60$ sysctl -q vm.swappinessvm.swappiness = 60$ sysctl vm.swappiness=10$ sysctl -q vm.swappinessvm.swappiness = 10持久操作$ vim /etc/sysctl.confvm.swappiness=10 #到末⾏,需要重启⽣效定义内核使⽤swap的积极程度:值越⾼,内核就会越积极的使⽤swap;值越低,就会降低对swap的使⽤积极性。

如果这个值为0,那么内存在free和file-backed使⽤的页⾯总量⼩于⾼⽔位标记(high watermark)之前,不会发⽣交换。

调整为0意味着,尽量通过清缓存来回收内存。

设置为100表⽰内存发⽣回收时,从cache回收内存和swap交换的优先级⼀样。

就是说,如果⽬前需求100M内存,那么较⼤机率会从cache中清除50M内存,再将匿名页换出50M,把回收到的内存给应⽤程序使⽤。

Linux磁盘管理——swap分区

Linux磁盘管理——swap分区

Linux磁盘管理——swap分区转⾃:对swap分区的误解⼀种流⾏的、以讹传讹的说法是,安装Linux系统时,交换分区swap的⼤⼩应该是内存的两倍。

也就是说,如果内存是2G,那么就应该分出4G的硬盘空间作为交换空间。

其实这是严重的浪费。

真实的情况是:可以根据你系统内存的⼤⼩,以及所使⽤的程序,⾃⾏决定交换分区的⼤⼩,甚⾄可以完全不⽤交换分区!什么是swap分区swap分区功能是在内存不够的情况下,OS先把内存中暂时不⽤的数据,存到硬盘的交换空间,腾出内存来让别的程序运⾏,和Windows的虚拟内存(pagefile.sys)的作⽤是⼀样的。

⼀定要有swap分区吗?做⼀个假设:如果你的内存⾜够⼤,极少出现内存不⾜的情况,那么你就不需要swap分区。

事实上,这种可能性是完全存在的。

现在玩《绝地求⽣》电脑最少都是16G起步了。

⽇常使⽤的话,很少能⽤完全部的内存。

在⽤不完内存容量的情况下,还要划出它两倍的硬盘空间⽤于内存交换,这不是浪费吗?可以说,在你内存基本够⽤的情况下,完全可以不要交换空间。

在Windows下也是⼀样,在系统属性中,把虚拟内存设置为0,系统依然运⾏的很好。

当然,如果你⽤的是服务器,为了避免业务⾼峰带来的资源紧张,还是要有专门的虚拟内存,有备⽆患。

但是虚拟内存的⼤⼩不⼀定⾮要内存的两倍。

查看swap分区那么怎么知道你的系统有没有⽤到交换空间呢?只需要在root⽤户下,运⾏下⾯的命令就可以知道了。

free -m在⽇常应⽤中,通过上述命令看到交换空间的使⽤情况为0,那么你就不需要很⼤的虚拟内存,甚⾄可以完全不需要另辟硬盘空间作为虚拟内存。

那么,万⼀有⼀天你需要了呢,难道要重装系统?⼤可不必,在Linux下虚拟内存不单可以放在单独的交换分区,也可以是⼀个在正常分区下的交换⽂件。

查看swap 空间⼤⼩(总计):[root@localhost ~]# free -mtotal used free shared buff/cache availableMem: 1982141169481461668Swap: 204702047[root@localhost ~]# free -mhtotal used free shared buff/cache availableMem: 1.9G 141M 1.7G 8.5M 146M 1.6GSwap: 2.0G 0B 2.0GView Code-s显⽰简短的设备讯息[root@localhost ~]# swapon -sFilename Type Size Used Priority/dev/dm-1 partition 20971480 -1[root@localhost ~]# swapon --showNAME TYPE SIZE USED PRIO/dev/dm-1 partition 2G 0B -1View Code添加交换空间 两种选择:添加⼀个交换分区或添加⼀个交换⽂件。

Linux下管理磁盘存储区从原理到技巧Linux 电脑资料

Linux下管理磁盘存储区从原理到技巧Linux 电脑资料

Linux下管理磁盘存储区从原理到技巧Linux 电脑资料原理篇 1. 交换空间是什么 Linux 中的交换空间(Swap space)在物理内存(RAM)被充满时被使用,1. 交换空间是什么Linux 中的交换空间(Swap space)在物理内存(RAM)被充满时被使用。

如果系统需要更多的内存资源,而物理内存已经充满,内存中不活泼的页就会被移到交换空间去。

虽然交换空间可以为带有少量内存的机器提供帮助,但是这种方法不应该被当做是对内存的取代。

交换空间位于硬盘驱动器上,它比进入物理内存要慢。

交换空间可以是一个专用的交换分区(推荐的方法),交换文件,或两者的组合。

交换空间的总大小应该相当于你的计算机内存的两倍和32 MB这两个值中较大的一个,但是它不能超过 2048 MB(2 GB)。

2. 添加交换空间有时,你会有必要在安装后添加更多的交换空间。

例如,你把系统内存从 64 MB 升级到 128 MB,但是你只有 128 MB 的交换内存。

如果你执行的是大量使用内存的操作或运行需要大量内存的程序,把交换区增加到 256 MB 可能会对你有利。

你有两种选择:添加一个交换分区或添加一个交换文件。

推荐你添加一个交换分区,不过,假设你没有多少空闲空间可用,创立交换分区可能会不大容易。

要添加一个交换分区(假设 /dev/hdb2 是你想添加的交换分区):硬盘驱动器不能在被使用(分区不能被挂载,交换分区不能被启用)。

要到达这一目的的最简单方法是在救援模式下引导你的系统。

如果驱动器不包含任何被使用的分区,你还可以卸载这些分区,使用swapoff 命令来关闭硬盘驱动器上的所有交换空间。

技巧篇使用 parted 或 fdisk 来创立交换分区。

parted 比 fdisk 使用起来更方便,因此,只有 parted 在这里会被说明。

要使用 parted 来创立交换分区:在 shell 提示下以根用户身份键入命令: parted /dev/ hdb 。

Linux之内存交换分区(swap)

Linux之内存交换分区(swap)

Linux之内存交换分区(swap)1、什么是内存交换分区(swap)物理内存:计算机内存的⼤⼩,即内存条的⼤⼩;虚拟内存:计算机拿出⼀部分硬盘的空间来充当内存;交换分区(swap):当物理内存不够⽤时,可以拿这个部分来存放内存中较少被使⽤的数据。

2、使⽤物理分区创建内存交换分区2.1使⽤物理分区创建swap建⽴swap的步骤:1. 分区:先使⽤【gdisk】在你的磁盘中划分出⼀个分区给系统作为swap,由于Linux的【gdisk】默认会将分区的ID设置为Linux的⽂件系统,所以可能还得要设置【system ID】2. 格式化:利⽤建⽴swap格式的【mkswap 设备⽂件名】就能够格式化该分区成为swap格式3. 使⽤::启动swap设备,【swapon 设备⽂件名】4. 观察::通过【free】与【swapon -s】来观察内存的使⽤量(1)先进⾏分区操作[root@study ~] gdisk /dev/vdaCommand (? for help) : n #【n】 add a new partitionPartition number (6-128, default 6):First sector (34-83886046, default = 69220352) or {+-}size{KMGTP}:Last sector (69220352-83886046, default = 83886046) or {+-}size{KMGTP}: +512MCurrent type is 'Linux filesystem'Hex code or GUID (L to show codes, Enter = 8300): 8200 #在分区内的可能的⽂件系统类型Linux为8300,swap为8200Changed type of partition to 'Linux swap'Command (? for help) : p #【p】print the partition tableNumber Start (sector) End (sector) size Code Name6 69220352 70268927 512.0 MiB 8200 Linux swapCommand (? for help) : w #上述操作⽣效,write table to disk and exitDo you want to proceed? (Y/N) : y[root@study ~] partprobe #更新Linux内核的分区表信息[root@study ~] lsblk #列出系统上的所有磁盘列表NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda 252:0 0 40G 0 disk......-vda 252:6 0 512M 0 part#结果中有了⼀个 /dev/vda6 可以⽤于swap(2)开始创建swap格式[root@study ~] mkswap /dev/vda6 #将【/dev/vda6】这个⽂件格式化为内存交换⽂件的⽂件格式Setting up swapspace version 1, size = 524284 KiBno label, UUID=6b17e4ab-9bf9-43d6-88a0-73ab47855f9d[root@study ~] blkid /dev/vda6/dev/vda6: UUID="6b17e4ab-9bf9-43d6-88a0-73ab47855f9d" TYPE="swap" #格式化成功(3)观察与挂载[root@study ~] free #观察内存和硬盘的swaptotal used free shared buff/cache availableMem: 1275140 227244 330124 7804 717772 875536 #物理内存Swap: 1048572 101340 947232 #swap相关#1275140K的物理内存,使⽤227244K,剩余330124K,使⽤掉的内存有717772K被缓存使⽤#swap有1048572K[root@study ~] swapon /dev/vda6 #观察/dev/vda6容量[root@study ~] free #观察内存和硬盘的swaptotal used free shared buff/cache availableMem: 1275140 227244 330124 7804 717772 875536 #物理内存Swap: 1572856 101260 1471596 #这⾥total、free均有增加,used有减少[root@study ~] swapon -s #【-s】:显⽰交换区的使⽤状况Filename Type Size Used Priority/dev/dm-1 partition 1048572 101260 -1/dev/vda6 partition 524284 0 -2[root@study ~] nano /etc/fstab # 写⼊配置⽂件,启动时⾃动挂载UUID="6b17e4ab-9bf9-43d6-88a0-73ab47855f9d" swap swap defaults 0 0# 不是⽂件系统,所以没有挂载点,第⼆栏写⼊swap# [设备 / UUID等] [挂载点] [⽂件系统] [⽂件系统参数] [dump] [fsck]3、使⽤⽂件创建内存交换分区(1)使⽤【dd】命令在【/tmp】下新增⼀个 128MB的⽂件[root@study ~] dd if=/dev/zero of=/tmp/swap bs=1M count=128 #从/dev/zero中读⼊128M的0到/tmp/swap中128+0 records in #读⼊128条数据128+0 records out #输出128条数据134217728 Bytes (134 MB) copied, 1.7066 seconds, 78.6 MB/s[root@study ~] ll -h /tmp/swap-rw-r--r-- 1 root root 128M Jun 26 17:47 /tmp/swap# if : input file,输⼊⽂件,/dev/zero 是会⼀直输出 0 的设备# of : output file,将⼀堆 0 写⼊到后⾯的⽂件中(这⾥是/srv/loopdev)# bs : 是block的size,就像⽂件系统那样的block意义# count : 总共bs的个数,⽂件容量=bs*count(2)使⽤【mkswap】将【/tmp/swap】这个⽂件格式化为内存交换⽂件的⽂件格式[root@study ~] mkswap /tmp/swap #写此命令时注意不要写错字符,否则可能使⽂件系统挂掉Setting up swapspace version 1, size = 131068 KiBno label,UUID=4746c8ce-3f73-4f83-b883-33b12fa7337c(3)使⽤【swapon】来将【/tmp/swap】启动[root@study ~] swapon /tmp/swap #观察 /tmp/swap 的容量[root@study ~] swapon -s #【-s】:显⽰交换区的使⽤状况Filename Type Size Used Priority/dev/dm-1 partition 1048572 101260 -1/dev/vda6 partition 524284 0 -2/tmp/swap file 131068 0 -3(4)使⽤【swapoff】关闭swap file,并设置⾃动启⽤[root@study ~] nano /etc/fstab #nano⽂本编辑器来编辑启动时的配置⽂件【/etc/fstab】/tmp/swap swap swap defaults 0 0# [设备 / UUID等] [挂载点] [⽂件系统] [⽂件系统参数] [dump] [fsck]# 为什么这⾥第⼀栏不使⽤UUID,因为系统仅会查询区块设备(block device)不会查询⽂件[root@study ~] swapoff /tmp/swap /dev/vda6 #关闭swap file[root@study ~] swapon -s #【-s】:显⽰交换区的使⽤状况Filename Type Size Used Priority/dev/dm-1 partition 1048572 101260 -1[root@study ~] swapon -a #【-a】:将/etc/fstab⽂件中所有设置为swap的设备,启动为交换区本⽂学习内容来⾃:《鸟哥的Linux私房菜》2021-07-02 11:59:40。

linux设置开启swap交换分区基本命令(虚拟内存)

linux设置开启swap交换分区基本命令(虚拟内存)

linux设置开启swap交换分区基本命令(虚拟内存)linux设置开启swap交换分区基本命令(虚拟内存)在Linux系统下,我们要怎么开启swap交换分区,基本设置命令是什么呢?下面yjbys为大家带来最基本的配置命令,希望对大家有所帮助!1.验证不存在交换分区free-m输出如下:totalusedfreesharedbufferscachedMem:99594747046142-/+buffers/cache:758236Swap:000如果swap选项total是0则表示没有交换分区,开始下一步2.创建swap分区使用dd命令选择swap分区目录以及大小,在此我们给他放到根目录,创建的是2G的`虚拟内存,可以根据自己需要选择大小。

ddif=/dev/zeroof=/swapfilecount=2048bs=1M接下来验证根目录是否存在swapfilels/|grepswapfile不出意外的话你将会看到swapfile3.激活swap分区交换分区不会自动激活,你需要告诉服务器如何格式化文件,使它作为一个有效的交换分区。

出于安全考虑,交交换区权限设置成600chmod600/swapfile使用mkswap命令来设置交换文件:mkswap/swapfile4.开启swap分区swapon/swapfile再次使用free-m查看内存使用情况,输出如下:totalusedfreesharedbufferscachedMem:184017548616231519-/+buffers/cache:2101630Swap:2047020475.设置允许开机启用swap分区sudovi/etc/fstab在后面加上/swapfilenoneswapsw00【linux设置开启swap交换分区基本命令(虚拟内存)】。

linux中的交换分区(swap)及优化

linux中的交换分区(swap)及优化

linux中的交换分区(swap)及优化SWAP(交换内存)1、什么是交换内存?在硬盘上创建⼀块区域,当你的物理内存快要被⽤光的时候,内核临时的物理内存上的⽂件数据交换到硬盘上的这段区域上⾯,当物理内存有闲置的时候在把交换内存上的数据调回到物理内存上的。

可能在⼤多数时候,你会发现你的交换内存没有被⽤到,为什么我们的系统在安装的时候强制我们要建⽴交换内存?牺牲⼀定的硬盘空间,给操作系统买份保险!2、创建交换内存:创建的步骤:1、创建新分区,并且更改分区标识符号为82.或者在本机上使⽤dd命令创建⼀个虚拟⽂件。

2、使⽤mkswap对指定设备制作交换内存⽂件系统。

3、 swapon开启交换内存(但是⾮常遗憾,下次启动机器的时候仍然需要⼿动使⽤swapon⼿动开启)建议直接写⼊到/etc/fstab中4、查看free -m ,swapon -s进⾏查看分区类型交换内存:速度快、独⽴分区1、fdisk /dev/sdbn t 82#partprobe /dev/sdb //重新加载分区表2、制作swap# mkswap /dev/sdb7 //以sdb7为例3、写/etc/fstab/dev/sdb7 swap swap defaults 0 0 //永久挂载格式UUID=XXXXXX swap swap defaults 0 0 //⽣产环境blkid查看⽂件系统UUID# swapon -a4、查看:# free -m# swapon -s⽂件类型的交换内存:相对速度慢、⽐较灵活1、创建虚拟⽂件:# dd if=/dev/zero of=/tmp/swap-file1 bs=1M count=N //N为正整数2、制作swap⽂件系统# mkswap /tmp/swap-file13、挂载使⽤/etc/fstab/tmp/swap-file1 swap swap defaults 0 0# swapon -a4、查看:# free -m# swapon -s交换内存的优化及⼈为⼲预:交换内存的调优:可调参数:/proc/sys/vm/swappiness当系统⾮常需要使⽤内存时,内核会把匿名内存(Anonymous memory)和System V的共享内存(shared memory)交换到磁盘上去,⽽真正的⽂件不需要交换到交换内存上去,⽽是直接写会到磁盘⽂件系统上(清掉page cache)。

UNIX系统交换区的管理

UNIX系统交换区的管理
2.文件系统交换
文件系统交换是一种辅交换,仅在设备交换不敷使用时才被考虑以满足换页需求,特点是配置简单方便并可动态设置。因为文件系统交换只使用它需要的部分文件系统,所以使用空间的大小是变化的,同时该文件系统中还有许多应用程序和数据需要频繁存取,因而很大程度上降低了系统运行的效率。管理员可将文件系统交换限制在一个固定的范围内以防止它占用不必要的空间,并且最好建立在较少使用的文件系统上。
UNIX系统交换区的管理
杨跃峰
交换区(swap)是存在于高速存储设备上的一块区域,是虚拟内存系统重要的组成部分。通过交换区,我们不再局限于有限的物理内存空间,理论上可以无限地扩大虚拟内存系统,从而运行更多的程序,进行更多的业务交易,更充分地发挥硬件资源。交换区采用换入换出技术和存储器间互相交换进程或数据页面。根据一定的调度原则,内存中部分不常用的进程或数据页定期交换到交换区中,以便为需要运行的程序留出更多的可用空间。交换出去的进程或数据页根据需要时再交换进来,这样一来就实现了大量并发进程的管理。不适当的交换区设置不仅使换页守护进程忙于交换页面进出而消耗时间,而且使进程运行的速度、系统效率都大大降低,很大程度上影响了操作系统的性能。当前,应用程序的日益庞大,运行业务的急剧增加,高性能数据库如Informix Online Dynamic Server为响应对数据的快速存取而使用的共享内存技术等,都对有限的物理内存空间提出了更高的要求,因此实施对交换区的有效管理具有重要作用。
指主交换之外的其他交换。文件系统交换总是辅交换,如果使用设备交换作为辅交换,尽量设定在非root文件系统盘上以获得更好的性能。辅交换可以在UNIX启动时自动启用或在系统运行时动态增加。
交换区动态设置
现实情况中我们经常遇到因操作系统安装时交换区配置不当而无法满足随后日益增长的应用需要,重新安装操作系统不仅费时,还会造成一定程度的业务风险,所以并不可取。大多数UNIX系统都提供了通过命令行实现交换区动态设置的方法,管理员应熟知了解。HP-UX中使用的命令是swapon,SCO OpenServer中使用的命令是swap。以下举例说明:

Linux设置swap交换分区的步骤

Linux设置swap交换分区的步骤

Linux设置swap交换分区的步骤导读:很多人对Linux的swap交换分区不了解,不知道什么是swap交换分区,下面小编将针对什么是swap分区及swap分区的设置给大家做个简单的介绍,想要设置swap分区的朋友不妨来了解下。

一、什么是swap分区交换区可是看作是内存的一部分,只是它是从硬盘中划分出来的,它像windows下的虚拟内存,它的作用是缓存数据,划分它时,大小设成你的物理内存的大小的两倍。

二、设置swap交换分区交换分区的大小分配推荐法则内存小于4GB时,推荐不少于2GB的swap空间;内存4GB~16GB,推荐不少于4GB的swap空间;内存16GB~64GB,推荐不少于8GB的swap空间;内存64GB~256GB,推荐不少于16GB的swap空间。

1、以root权限登录SSH,键入如下命令创建512M的swap文件(1024 * 512MB = 524288)。

dd if=/dev/zero of=/swapfile1 bs=1024 count=5242882、创建Linux交换文件mkswap /swapfile13、立即激活/swapfile1交换文件swapon /swapfile14、设置系统自激活交换文件。

编辑/etc/fstab文件,并增加如下第二行代码。

vi /etc/fstab/swapfile1 swap swap defaults 0 05、重启系统,使用free -m查看swap大小。

三、Linux中查看swap的命令可以用“cat /proc/swaps”、“swapon -s”、“free”等命令查看Swap分区的情况。

[root@jay-linux ~]# swapon -sFilename Type Size Used Priority/dev/sda3 partition 2096120 840 -1[root@jay-linux ~]# cat /proc/swapsFilename Type Size Used Priority/dev/sda3 partition 2096120 840 -1[root@jay-linux ~]# free -mtotal used free shared buffers cachedMem:7872 7280 592 0 429 5964-/+ buffers/cache:886 6986Swap:2046 0 2046根据上面的例子,我其实该分配4GB的Swap空间,这里演示的是2GB(可能不太符合Redhat的推荐值,因为本机使用内存量并不会太大,几乎没有使用Swap的情况)。

详细解读linux下swap分区的作用

详细解读linux下swap分区的作用

详细解读linux下swap分区的作⽤本⽂研究的主要是linux下swap分区的相关内容,具体介绍如下。

swap分区介绍嵌⼊式Linux中⽂站消息,Linux系统的Swap分区,即交换区,Swap空间的作⽤可简单描述为:当系统的物理内存不够⽤的时候,就需要将物理内存中的⼀部分空间释放出来,以供当前运⾏的程序使⽤。

那些被释放的空间可能来⾃⼀些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运⾏时,再从Swap中恢复保存的数据到内存中。

这样,系统总是在物理内存不够时,才进⾏Swap交换。

其实,Swap的调整对Linux服务器,特别是Web服务器的性能⾄关重要。

通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费⽤。

如⼤家所知,现代操作系统都实现了“虚拟内存”这⼀技术,不但在功能上突破了物理内存的限制,使程序可以操纵⼤于实际物理内存的空间,更重要的是,“虚拟内存”是隔离每个进程的安全保护⽹,使每个进程都不受其它程序的⼲扰。

可能计算机⽤户会经常遇这种现象。

例如,在使⽤Windows系统时,可以同时运⾏多个程序,当你切换到⼀个很长时间没有理会的程序时,会听到硬盘“哗哗”直响。

这是因为这个程序的内存被那些频繁运⾏的程序给“偷⾛”了,放到了Swap区中。

因此,⼀旦此程序被放置到前端,它就会从Swap区取回⾃⼰的数据,将其放进内存,然后接着运⾏。

另外,并不是所有从物理内存中交换出来的数据都会被放到Swap中(如果这样的话,Swap就会不堪重负),有相当⼀部分数据被直接交换到⽂件系统。

例如,有的程序会打开⼀些⽂件,对⽂件进⾏读写(其实每个程序都⾄少要打开⼀个⽂件,那就是运⾏程序本⾝),当需要将这些程序的内存空间交换出去时,就没有必要将⽂件部分的数据放到Swap空间中了,⽽可以直接将其放到⽂件⾥去。

如果是读⽂件操作,那么内存数据被直接释放,不需要交换出来,因为下次需要时,可直接从⽂件系统恢复;如果是写⽂件,只需要将变化的数据保存到⽂件中,以便恢复。

Linux系统中swap分区的设置与增加删除

Linux系统中swap分区的设置与增加删除

Linux系统中swap分区的设置与增加删除1. 什么是swap分区Swap分区在系统的物理内存不够⽤的时候,把物理内存中的⼀部分空间释放出来,以供当前运⾏的程序使⽤。

那些被释放的空间可能来⾃⼀些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运⾏时,再从Swap分区中恢复保存的数据到内存中。

swap分区是从磁盘空间划分⽽来,有的是单独使⽤⼀个分区,有的是把⼀个⼤⽂件当做swap。

2. 官⽅关于swap设置Redhat6.4 官⽅推荐(我们使⽤CentOS 6.4)推荐的系统交换空间系统中的RAM数量建议交换空间如果允许休眠,建议使⽤交换空间⩽2GB RAM的2倍 RAM数量的3倍> 2GB - 8GB 等于RAM的数量 RAM的2倍> 8GB - 64GB ⾄少4 GB RAM的1.5倍> 64GB ⾄少4 GB 不建议休眠因为有些系统会允许休眠状态,如果不设置swap会⽆法启动,就像windows系统使⽤休眠设置虚拟内存⼀样。

Mysql 5.6 和5.7的建议mysql5.6是说在物理内存⾜够的情况下,可以删除swap,因为系统在有些情况下会及时内存够⽤使⽤swap,若使⽤会因为I/0变⾼导致mysql故障。

Mysql建议删除。

oracle建议另外在其它博客中看到下⾯⼀个推荐设置,当然我不清楚其怎么得到这个标准的。

是否合理也⽆从考证。

可以作为⼀个参考。

4G以内的物理内存,SWAP 设置为内存的2倍。

4-8G的物理内存,SWAP 等于内存⼤⼩。

8-64G 的物理内存,SWAP 设置为8G。

64-256G物理内存,SWAP 设置为16G。

当然这么多建议标准,很让⼈⽆所适从,不知道该怎么设置。

其实根据系统实际情况和内存的负荷综合考虑,但是实际情况⼜是什么样呢?个⼈建议从如下⼏个考虑:物理内存空间是否在峰值也可以满⾜要求,不满⾜建议设置swap防⽌内存溢出导致主机宕机,当然设置不宜过⼤,占⽤磁盘空间。

swap原理

swap原理

swap原理
swap(交换)原理是指在某个系统或者环境下,将两个或多
个元素的位置进行互换的操作过程。

这种操作可以应用于不同的场景和数据结构中,例如数组、链表、栈、队列等。

在计算机编程中,swap原理常常用于排序算法中,其中最经
典的就是冒泡排序和快速排序。

冒泡排序中,通过不断交换相邻元素的位置,将较大(或较小)的元素逐渐移到序列的末尾(或起始位置),从而实现排序的目的。

而快速排序则是通过选定一个基准元素,将其他元素分为两个子序列,比基准元素小的移动到左侧,比基准元素大的移动到右侧,然后分别对两个子序列进行递归排序。

在操作系统中,swap原理也被广泛应用于虚拟内存管理中。

为了解决物理内存不足的问题,操作系统会将一部分不常用的数据从内存写入到硬盘的交换空间(Swap Space)中,以释放
出物理内存供其他进程使用。

当需要访问被交换出去的数据时,操作系统会将其重新读取到内存中,而将另一部分不常用的数据进行写回到交换空间中,以实现数据的交换和管理。

总之,swap原理是一种常见的操作,通过交换元素的位置来
实现不同场景下的需求。

它能够应用于排序算法、内存管理、数据结构等多个领域,为系统和程序的性能优化提供了一种有效的手段。

Linux SWAP 分区建立及释放内存

Linux SWAP 分区建立及释放内存

一、查看系统当前的分区情况:>free -m二、创建用于交换分区的文件:>dd if=/dev/zero of=/whatever/swap bs=block_size (10M)count=number_of_block(3000)三、设置交换分区文件:>mkswap /export/swap/swapfile四、立即启用交换分区文件:>swapon /whateever/swap五、若要想使开机时自启用,则需修改文件/etc/fstab中的swap行:/whatever/swap swap swap defaults 0 0方法二增加交换分区空间的方法:1.查看一下/etc/fstab确定目前的分区2.swapoff /dev/hd**3.free 看一下是不是停了.4.fdisk 删了停掉的swap分区5.重新用FDISK建一个新的SWAP分区6.mkswap /dev/hd**把新的分区做成swap7.swapon /dev/hd**打开swap8.修改/etc/fstab操作实例:1.查看系统Swap空间使用# freetotal used free shared buffers cachedMem: 513980 493640 20340 0 143808 271780 -/+ buffers/cache: 78052 435928Swap: 1052248 21256 10309922.在空间合适处创建swap文件# mkdir swap# dd if=/dev/zero of=swapfile bs=1024 count=1000010000+0 records in10000+0 records out# ls -altotal 10024drwxr-xr-x 2 root root 4096 7月28 14:58 .drwxr-xr-x 19 root root 4096 7月28 14:57 ..-rw-r--r-- 1 root root 10240000 7月28 14:58 swapfile# mkswap swapfileSetting up swapspace version 1, size = 9996 KiB3.激活swap文件# swapon swapfile# ls -ltotal 10016-rw-r--r-- 1 root root 10240000 7月28 14:58 swapfile# freetotal used free shared buffers cachedMem: 513980 505052 8928 0 143900 282288-/+ buffers/cache: 78864 435116Swap: 1062240 21256 1040984生成1G的文件# dd if=/dev/zero of=swapfile bs=10M count=3000创建为swap文件#mkswap swapfile让swap生效#swapon swapfile查看一下swap#swapon -s[root@cluster /]# swapon-sFilename Type Size Used Priority/dev/sda3 partiti on 1020116 1728 -1/state/partition1/swap/swapfile file 30719992 0 -2 加到fstab文件中让系统引导时自动启动#vi /etc/fstab/state/partition1/swap/swapfil swap swap defaults 0 0完毕。

swap原理

swap原理

swap原理Swap原理——深入了解计算机内存交换机制计算机内存交换机制是指在计算机内存中,数据的交换、更改和调用的过程。

Swap是一种内存交换机制,可使计算机在有限内存的情况下缓解内存压力,提高计算机性能。

Swap原理的理解对于深入了解计算机内存交换机制有着十分重要的作用,对于计算机程序设计和性能优化有着至关重要的意义。

Swap的原理其实十分简单,就是将内存中空闲的部分与当前运行的程序所使用的内存进行交换。

当计算机检测到内存不足时,会将当前运行程序的部分内存及所需要的数据存入临时的Swap空间中,腾出空余的内存供其他程序使用。

当原程序所需数据再次被需要时,计算机会从Swap空间中将其调用回来。

例如,当我们运行一个大型的软件程序时,计算机会将程序未使用的数据暂时存入Swap空间中,以便更多的内存留给当前程序的使用。

而当我们退出程序时,计算机会将Swap空间中的数据交换回内存中,以便下次使用。

Swap原理在实际应用中有着广泛的使用。

举例来说,当我们在Linux操作系统中使用top命令查看系统性能时,可以看到有一个Swap交换区的选项。

这个选项就是用来显示Swap空间的使用情况。

当Swap空间使用过多时,会导致计算机性能下降,因此我们需要了解Swap原理,以优化系统性能。

Swap原理也与计算机硬件有着密切的联系。

在早期的计算机中,内存容量非常有限,因此Swap机制是必须的。

而随着技术的进步,现代计算机内存的容量已经足够大,Swap机制的作用已经不再像以前那样重要。

但是,在一些应用场景中,Swap机制仍然是不可或缺的,例如在虚拟化环境中,Swap机制可以让不同虚拟机之间共享内存,实现更高效的计算机资源利用。

另外,值得一提的是,在Swap机制中,对于硬盘的使用非常频繁,因此对硬盘的质量有着较高的要求。

在使用Swap机制时,硬盘的速度、容量和寿命都需要考虑,以免影响计算机整体性能。

因此,如何优化硬盘的性能和护理也是十分重要的。

Linux中swap分区设置

Linux中swap分区设置

Linux中swap分区设置
swap分区相当于Windows中虚拟内存的概念,也就是内存数据与硬盘的交换
关于swap分区的⼤⼩,有基本的⼀个原则是:如果内存较⼩(根据经验,物理内存⼩于4GB),⼀般设置swap分区设置为内存的2倍;如果物理内存⼤于4GB⼩于16GB,可以设置swap分区⼤⼩等于物理内存即可;如果内存⼤⼩在16GB以上,就可以设置swap分区为0。

swap分区可以设置为0,但是并不建议这么做,因为设置⼀定⼤⼩的swap分区还是有⼀定作⽤的。

虽然Linux默认只需要划分根分区和交换分区即可完成系统安装,但是不建议这么做,因为如果只划分了根分区,那么当根分区遭到破坏以后,系统可能⽆法启动,存储在根分区中的资料也可能丢失,这样很不安全。

因此,建议给独⽴的应⽤分配独⽴的分区,这样即使某个分区被破坏,也不影响其他分区的数据,能最⼩限度地减少系统崩溃造成的损失。

linuxswap分区的两种添加方法

linuxswap分区的两种添加方法

v1.0可编写可改正在装完 Li nux 系统以后自己去改正 Swap 分区的大小( 两种方法)在安装完Li nux 系统后,swap 分区太小怎么办,怎么能够扩大Swap 分区呢有两个方法,一个是重新成立swap 分区,一个是增添swap 分区。

下边介绍这两种方法:第一您一定有 r oot 权限,过程中必定要很当心,一不当心就损坏了整个硬盘的数据,履行下边的过程以前您需要深思熟虑,错误操作后的结果由履行者自己肩负。

新建 swap分区1.以 root 身份进入控制台,输入# swapoff -a#停止互换分区2.用fdisk命令加swap 分区的盘符,(例: # fdisk /dev/sdb)剔除swap 分区,输入 d 删除 swap 分区,而后再n 增添分区(增添时硬盘一定要有可用空间,而后再用t 将新添的分区 id 改为 82( linux swap种类),最后用w 将操作实质写入硬盘(没用w 以前的操作是无效的)。

3. # mkswap /dev/sdb2#格式化swap分区,这里的sdb2 要看您加完后p 命令显示的实质分区设施名4. # swapon /dev/sdb2#启动新的swap 分区5.为了让系统启动时能自动启用互换分区,能够编写/etc/fstab,加入下边一行v1.0可编写可改正/dev/sdb2swap swap defaults0 06.达成增添 Swap分区1. 创立互换分区的文件: 增添 1G大小的互换分区,则命令写法以下,此中的count等于想要的块大小。

#dd if=/dev/zero of=/home/swapfile bs=1M count=10242.设置互换分区文件 :# mkswap /home/swapfile #成立swap的文件系统3.立刻启用互换分区文件 :# swapon /home/swapfile #启用swap文件4. 使系统开机时自启用,在文件/etc/fstab中增添一行:/home/swapfile swap swap defaults 0 05.达成。

swap交换分区管理

swap交换分区管理

SWAP交换分区管理
【例】 在磁盘/dev/sdb上用一个新建的分区扩展swap交换分区。
▪ 步骤1:创建容量为256MB的主分区。 ▪ 步骤2:使用“t”指令转换分区类型,(如:/dev/sdb1)。如果需要可以使用“l”指令显示所有分
区类型的十六进制代码表。
▪ 步骤3:格式化交换分区。 ▪ 步骤4:手工临时启用新添加的交换分区。 ▪ 步骤5:在/etc/fstab文件中添加永久挂载并启用交换分区。
第4 页
序使用,以避免因为物理内存不足而造成的系统效能低的问题。如果系统没有swap
交换分区,或者现有交换分区的容量不够用时,可扩展swap交换分区。
▪ 扩展swap交换分区的方式有两种:
以磁盘分区的方式扩展swap交换分区。 以镜像文件的方式扩展swap交换分区。
命令
功能
mkswap 分区设备名
将指定的分区格式化为swap交换文件系统
Linux服务器配置与管理
第2 页
SWAP交换分区管理
1.SWAP分区
▪ 在Linux系统中,swap交换分区的作用类似于Windows系统中“虚拟内存”,当有程序
被调入内存后,但是该程序又不是常被CPU所取用时,那么这些不常被使用的程序将
会被放到硬盘的swap交换分区当中,而将速度较快的内存空间释放给真正需要的程
swapon 交换分区设备名|-a
启用(或激活)指定的交换分区或所有交换分区
swapoff 交换分区设备名|-a
禁用指定的交换分区或所有交换分区
swapon -s
பைடு நூலகம்
查看交换分区的使用情况
free -m 2022年2月21日星期一
以兆字节为单位显示物理内存、交换分区的使用情况
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

经验教训:
郑州电视台新闻项目的Oracle RAC系统(2008年),在要验收的关键时候,会在使用高峰期间,不定期重起,影响了项目的验收工作。

到现场检查,没有发现什么异常。

由于该系统不是由我自己亲自安装的,因此,决定由我自己到现场,重新安装一遍。

经过重新安装的系统,能够稳定长期运行。

项目也顺利验收了!
该项目之后,和整合实验室的刘钊一起测试PC Linux环境下,Oracle 10g RAC的极限性能,使用了Bench Mark工具,发现一个规律,在6GB内存的情况下,当会话数到达H1,系统会重新启动;增加内存,会话数增加了一些,到达H2;继续增加内存,会话数又增加了一些,到达H3;根据这个情况,我判断,重启的原因是因为内存不足!
在硬件内存无法增加的情况下,采用时间换空间的方法,增加交换区,是可以增加会话数的!由此,得出了郑州电视太新闻项目中,系统重启动的原因,是交换区设置太小!(内存是8GB,重装之后,交换区是32GB,问之前的安装工程师,说是只设置了8GB)
=================================================
说明:以下是我大概在2004年左右在某bbs上发的帖子,那时候的硬盘比较小,呵呵呵,现在先原文转贴于此。

许多问题都是由于分区不合理所致:
1、/或/usr等分区满
2、/var分区太小,造成需要经常维护
3、安装补丁时,没有空间,造成安装补丁失败
4、升级软件或软件安装后,磁盘空间不合理,为系统运行留下隐患
5、/home区问题
为了解决此问题,下面推荐几种分区大小,经过多年实践,能满足大部分系统的要求。

9GB 硬盘 HD
安装Solaris 7
/ 512m
swap 512m ----- 4096m
/var 512m
/usr 2048
/opt 剩余
(用户主目录和第三方软件均防在/opt下)
或者
/ 剩余
swap 1024m
18GB硬盘 HD
/ 1024m
swap 2048m ----- 4096m
/var 1024m
/usr 4096
/opt 剩余
(用户主目录和第三方软件均防在/opt下)
36GB硬盘 HD
/ 2048m
swap 4096----- 8192m
/var 2048m
/usr 6G---8G
/opt 剩余
(用户主目录和第三方软件均防在/opt下)
72GB硬盘 HD
/ 4096m
swap 4096 ----- 16384m
/var 4096m
/usr 6G---10G
/opt 剩余
(用户主目录和第三方软件均防在/opt下)
注意:如果是mail系统,大部分空间应该分给/var
采用这种分法,可以满足大部分系统的要求
例子
安装oracle
可以将Oracle 介质安装在/opt下
几点说明:
1、本分区方法可以针对目前大多数应用。

近五年的经验表明,用户没有发生报/var区或/根区满的问题!
2、需要进行特殊分区的情况:
a.Sun Disksuite需要300m的metadata DB空间,如果需要使用,可以从Swap区中挖取
b.如果安装Sun Cluster,而且要使用VxVM,请将/区和/usr区合并,保证系统盘有两个空闲未用的分区,这样Veritas VxVM在封装根盘的时候才不会出错!!!
3、关于交换区的大小:认为交换区是内存两倍的说法是错误的!!!在工程中你可以这样做,而且在大多数情况下,系统不会因为这种配置出错。

实际上,交换区的大小是系统各异的:如果你的内存足够大或者你只运行小程序,你甚至不需要交换区;但是如果系统要运行需要大虚拟地址空间的进程,交换区是需要特殊配置的。

下面举例说明:
Sun E450上有1G内存,18G硬盘两块
假设你为它设置交换区为2G,在下面的情况,系统会出错:
有一C程序,需要malloc(申请内存空间的函数)3G的动态内存,那么如果没有新的交换文件作交换区的话,程序会出错的!!!!
实际上,常规分为两倍的原因主要的假设是:将内存中所有的内容换到交换区上,又把先前的交换区中的内容换回来的空间。

由于32位地址总线的计算机的地址空间是4GB(2的32次方),所以例子例子中的配置情况甚至不能满足一个大进程的空间分配需求!!!
综合上述:交换区的分配原则是,随着硬盘容量的增长,尽量为其分配更大的空间!!!!
曾庆峰(版主)
文章:331篇
大洋币:1040枚
时间:2011-07-20 引用
目前的企业级的单硬盘,容量在146GB~600GB之间,根据我的经验,如果要有一个稳定的系统
对于系统硬盘是300GB,系统内存为16GB的服务器系统
swap的大小应该至少是32GB,考虑以后的内存升级,应当配置64GB
刘钊
文章:18篇
大洋币:48枚
时间:2011-07-22 引用
曾老师绝对是良师益友,在与他共事的时候总会有一些意想不到的收获,包括那次极限压力测试,他很敏锐地察觉到了问题的原因,我们一起排查,绝对是对自己技术实力的一次大大的提高.
其实,据我的个人经验,当内存开始于SWAP区进行置换的时候,系统地运行就已经开始变得非常缓慢了,这是由于查询内存页面以及进行内存数据访问量评估的工作一旦交给CPU处理,会对CPU的资源开销影响相当的大。

相关文档
最新文档