linux中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=524288
2、创建Linux交换文件
mkswap /swapfile1
3、立即激活 /swapfile1交换文件
swapon /swapfile1
4、设置系统自激活交换文件。编辑 /etc/fstab文件,并增加如下第二行代码。
vi /etc/fstab
/swapfile1 swap swap defaults 0 0
5、重启系统,使用free -m查看swap大小。

Linux中查看swap的命令

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

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

重新划分Swap交换分区 

先执行一下fdisk -l查看一下设备名称和分区状况

1、执行swapoff swap分区的设备名 关闭交换文件。
2、看到swap的设备名删除原来的swap分区,在新建一个swap分区。可以使用fdisk做此操作
如果对/dev/sda设备进行分区操作:
fdisk /dev/sda
屏幕提示:
Command (m for help):
键入p
屏幕会列出当前所有的分区设备号、大小、文件格式等参数;
下面进行删www.111cn.net除分区的操作:
屏幕提示:
Command (m for help):
键入d
屏幕提示:
Partition number (1-x):
x是您现有的分区数量,有两个分区的话x就是2;删除分区时从最后一个分区开始,键入2:
屏幕提示:
Command (m for help):
键入p
列出当前分区情况,发现sda2被删除了;
继续键入d,然后是1,再键入p,发现sda的分区都被删除了;
屏幕提示:
Command (m for help):
键入w
保存当前删除的操作,回到主界面,如果/dev/sdb上也有分区,按照上面的方法删除。
下面进行创建分区的操作:
fdisk /dev/sda
屏幕提示:
Command (m for help):
键入p
此时硬盘上应该没有任何分区;
键入n
屏幕提示:
First cylinder (abcd-efgh, default abcd):
abcd和efgh都是数字,表示新分区起始的柱面数,直接键入回车即可;
屏幕提示:
Last cylinder or +size or +sizeM or +sizeK (abcd-ijkl, default ijkl):
abcd和 ijkl也都是数字,这里是要求定义分区的大小,如果要建立2G的空间,键入+2000M,如果要将后面所有空间都分出来,直接键入回车即可;注意分区大
小的单位M和K一定要大写!
屏幕提示:
Command (m for help):
键入p
发现已经建立了分区sda1,大小是2G
仿照上面的方法建立更多分区,可以用p查看,最后键入w保存操作。
3、这样重建swap之后,可以使用mkswap /dev/sda[x],其中的[x]代表的是你的第几个分区。
4、激活交换分区 swapon /dev/sda[x]
5、 想要在系统启动时自动激活此交换文件,应该在 /etc/fstab 中加入如下一行:
/dev/sda[x] swap swap defaults 0 0
添加交换文件并启用它后,用 cat /proc/swaps 或 free 命令查看交换文件是否
被成功启用。

没有swap交换分区分区的解决办法(用文件替代swap分区)

文件系统      类型    容量  已用 可用 已用% 挂载点
/dev/sdb2     ext3    7.6G  555M  6.7G   8% /
/dev/sda1     ext3    466G  453G   13G  98% /home1
/dev/sdb7     ext3    4.8G  149M  4.4G   4% /tmp
/dev/sdb6     ext3    4.8G  1.6G  3.0G  35% /var
/dev/sdb5     ext3    5.7G  140M  5.3G   3% /swap
/dev/sdb3     ext3    5.7G  2.1G  3.4G  39% /usr
/dev/sdb1     ext3     99M   18M   77M  19% /boot
/dev/sdb8     ext3    437G  175G  262G  41% /home2
tmpfs        tmpfs    2.0G  2.2M  2.0G   1% /dev/shm

swap交换分区就根本用不了,由于此服务器已经在跑业务了,不能随便停机,更不能重装系统。

[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3910       3886         23          0         16       1652
-/ buffers/cache:       2217       1692
Swap:            0          0          0

解决方法:

#制作一个swapfile文件,需要root权限
su
dd if=/dev/zero of=/swap/swapfile bs=4096 count=1310720
#说明:其中bs参数制定每次读取及输入多少个字节。因为硬盘存取的最小单位为扇区,所以设置bs参数就相当于设置每个扇区的大小。我这里设置为4096即4k。参数count则主要是用来设置可以使用扇区的数量。所以这个文件所占用的空间就是以上连个参数的乘积。www.111cn.net这里需要注意的是,如果要增加swap文件容量,一般是通过调整count参数来实现的,bs参数一般不动。看到我的/swap分区完全没被使用,有5.3G剩余空间,所有我建立了一个5G的swapfile文件。

#格式化swapfile,同样需要root权限
mkswap /swap/swapfile

#启用swap
swapon /swap/swapfile

#不想每次重启后手动启用swap就可以将挂载写入/etc/fstab中 (因为我这个分区比较特殊,分区名称相同,为保险起见,我没写入到fstab里面)
/swap/swapfile swap swap defaults 0 0

#用free -m查看一下,swap设定已经生效了:
[root@localhost ~]# free -m             
             total       used       free     shared    buffers     cached
Mem:          3910       3885         25          0         21       1639
-/ buffers/cache:       2224       1686
Swap:         5119          0       5119

顺利搞定。

当你实在不需要使用swap交换分区时 可是释放掉swapfile
swapoff /swap/swapfile
rm -f /swap/swapfile

时间: 2025-01-20 16:59:05

linux中swap交换分区分区设置教程的相关文章

linux中centOS防火墙iptables的设置教程

  1.安装iptables防火墙 怎么知道系统是否安装了iptables?执行iptables -V,如果显示如: iptables v1.3.5 说明已经安装了iptables. 如果没有安装iptables需要先安装,执行: yum install iptables 在Linux中设置防火墙,以CentOS为例,打开iptables的配置文件: vi /etc/sysconfig/iptables   通过/etc/init.d/iptables status命令查询是否有打开80端口,如

Linux有问必答:如何在Linux中直接挂载LVM分区

提问: 我有一个USB盘包含了LVM分区. 我想要在Linux中访问这些LVM分区.我该如何在Linux中挂载LVM分区? LVM是逻辑卷管理工具,它允许你使用逻辑卷和卷组的概念来管理磁盘空间.使用LVM相比传统分区最大的好处是弹性地为用户和程序分配空间而不用考虑每个物理磁盘的大小. 在LVM中,那些创建了逻辑分区的物理存储是传统的分区(比如:/dev/sda2,/dev/sdb1).这些分区必须被初始化为"物理卷 PV"并加上卷标(如,"Linux LVM")来使

linux中安装Zend Optimizer与eAccelerator教程

eAccelerator与Zend Optimizer是一个加速软件了,我们可以利用它与php环境同步运行使用得php性能更好了,下面来一起看看linux中安装Zend Optimizer与eAccelerator教程 下载Zend Optimizer http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz tar -xzvf ZendOptimizer-3.3.9-linux

linux 中配置apache 网站 编码设置为gb2312 浏览乱码

问题描述 linux 中配置apache 网站 编码设置为gb2312 浏览乱码 httpd.conf 添加了 AddDefaultCharset GB2312? 网页添加了 浏览器浏览的时候默认编码格式还是utf-8 显示乱码 解决方案 将环境变量LANG设置LANG="zh_CN GBK"

linux 创建swap交换区

1.创建Swap分区步骤: 1)  用fdisk 创建分区,一会把此分区创建为Swap分区:  fdisk /dev/sda 2) 假设新创建的分区为sda3,用fdisk 子命令 t  更改分区类型: [root@lyg ~]# fdisk /dev/sda The number of cylinders for this disk is set to 32635. There is nothing wrong with that, but this is larger than 1024,

linux 增加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@ubun

linux中重新挂载var分区的例子

我们有时候有发现这样一个情况,var分区使用du和df看到的占用情况不一致,通常情况下,是由于删除了某些文件,但是文件还被程序占用导致空间未被释放.有时候,你知道是哪个程序占用的话,直接重启程序后,可直接释放:有时候,需要重新卸载var分区才能彻底将空间释放. 查看有哪些程序占用了var分区    代码如下 复制代码 # lsof |grep /var auditd     1182      root    5w      REG              252,1  3288401   

linux中inotify+rsync实时同步配置教程

背景 我们公司在用inotify+rsync做实时同步,来解决分布式集群文件一致性的问题.但当web文件越来越多(百万级数量html,jpg等小 文件),同步就越来越慢,根本做不到实时,按照网上的调优方法都尝试过,问题根本没有解决.经过我一翻细致研究,终于把慢的核心问题研究明白,先总结一句 inotifywait响应不会有延迟,rsync也很快.大家同样有慢的烦恼,那是因为网上的inotify+rsync的教程都是坑.下面我们来分 析. inotifywait 单独分析 /usr/local/b

Linux中开机自动启动oracle的配置教程

1.如何在Linux启动时自动启动Oracle监听和实例 修改/etc/oratab文件,命令如下: [oracle@oracle11g ~]$ vi /etc/oratab 找到:accp:/u01/oracle:N 修改为: accp:/u01/oracle:Y 第二步:把lsnrctl start和dbstart添加到rc.local文件中,命令如下: [oracle@oracle11g ~]$ vi /etc/rc.d/rc.local 添加: su oracle -lc "/u01/o