为什么需要swap

根据Redhat公司的建议,Linux系统swap分区最适合的大小是物理内存的1-2倍.不过Linux上有些软件对swap分区得需求较大,例如要顺利执行Oracle数据库软件,swap分区至少需要400MB或者物理内存2倍以上的空间.当然我们在安装Linux的时候,就能直接讲swap分区设置到足够的大小,但如果已经安装好Linux了,之后又想再安装类似Oracle的软件,却发现swap分区空间不够,该如何处理? 针对此种情况,有两种解决方法:一是创建新的swap分区;另一则是创建swap文件. 这里暂时对创建swap文件做说明 创建swap文件如果你的硬盘空间已经全部分配给其他分区,也没有多余的预算新添购硬盘,我们可以利用swap文件的方式增加虚拟的swap空间,不过执行性能会较实际的swap分区差.

1.检查当前的swap分区情况

# free –mtotal       used       free     shared    buffers     cachedMem:          1006         84        922          0         11         38-/+ buffers/cache:         35        971Swap:            0          0          0

2.增加交换分区文件及大小

如上,当前swap分区的大小为0,假如需要增加1024M的大小。

判定新交换文件的大小,将大小乘以1024来判定块的大小。例如,大小为64MB的交换文件的块大小为65536,在 shell 提示下以根用户身份键入以下命令,其中的 count 等于想要的块大小。

# dd if=/dev/zero of=/home/swap bs=1M count=10241024000+0 records in1024000+0 records out

格式化交换文件,将swap文件格式化成s文件系统,系统才能使用

# mkswap  /home/swapSetting up swapspace version 1, size = 1023996 KiB

3.启动交换分区文件

假如想立即启用交换分区文件,请执行:

# swapon  /home/swap

要停止使用新创建的swap文件,只要执行 swapoff/home/swap命令即可.

检验增加后的swap分区大小

# free  -mtotal       used       free     shared    buffers     cachedMem:          1006        994         12          0          4        929-/+ buffers/cache:         60        946Swap:          999          0        999

4.如希望在系统再次启动时,自动启用刚增加的swap,可编辑/etc/fstab文件:

# vi  /etc/fstab,增加如下行
/home/swap             swap          swap    defaults        0 0  

5.修改linux swap空间的swappiness,降低对硬盘的缓存

linux 会使用硬盘的一部分做为SWAP分区,用来进行进程调度--进程是正在运行的程序--把当前不用的进程调成‘等待(standby)‘,甚至‘睡眠(sleep)’,一旦要用,再调成‘活动(active)’,睡眠的进程就躺到SWAP分区睡大觉,把内存空出来让给‘活动’的进程。
如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。在ubuntu 里面,默认设置swappiness这个值等于60。
  
!!!! 如果内存较小,而进程调度频繁,硬盘的响动就会大了 !!!!
  
现在一般1个G的内存可修改为10, 2个G的可改为5, 甚至是0。具体这样做:

1.查看你的系统里面的swappiness
$ cat /proc/sys/vm/swappiness
不出意外的话,你应该看到是 60

2.修改swappiness值为10
$ sudo sysctl vm.swappiness=10

但是这只是临时性的修改,在你重启系统后会恢复默认的60,为长治久安,还要更进一步:
$ sudo vi /etc/sysctl.conf
在这个文档的最后加上这样一行:
vm.swappiness=10
然后保存,重启。ok,你的设置就生效了。

linux 手动添加 swap 分区相关推荐

  1. linux mei swap,Linux | 手动扩展SWaP分区大小

    查看内存大小[root@localhost /]# grep MemTotal /proc/meminfo MemTotal:      1035292 kB 查看虚拟内存大小(交换分区) [root ...

  2. 在qemu中添加swap分区

    背景:想了解一下hibernate的机制的,但使用的时候报错 PM: Cannot find swap device, try swapon -a PM: Cannot get swap writer ...

  3. centos 手动增加swap分区

    SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的. 它类似于Windows中的虚拟内存.在Windows中,只可以使用文件来当作虚拟内存.而linux可以文件或者分区来当 ...

  4. linux下增加swap分区,LINUX新建和增加SWAP分区

    我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢? 在装完Linux系统之后,建立Swap分区有两种方法. 1.新建磁盘分区作为swa ...

  5. Linux 上扩展swap分区

    Linux 上扩展swap分区 想像一种情景,当我们的Linux系统用尽交换空间时,在这种情况下,我们想要使用swap分区扩展交换空间,但在某些情况下磁盘上已经没有可用的空闲分区了,致使我们不能把它扩 ...

  6. 阿里云云主机添加swap分区与swap性能优化

    swap的功能与相应内核参数 Linux 将物理内存分为内存段的部分被称作"页面".交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放用于页面的内存.物 ...

  7. Linux下增加swap分区

    Linux 下增加swap分区 环境:Linux EL4 +  Oracle 10g 1.检查当前的分区情况 (使用free -m或cat /proc/swaps ): [root@db2 root] ...

  8. Linux下察看swap分区大小及增加分区大小

    Linux下察看swap分区大小的命令 top 或者fdisk -l 或者free -m SWAP分区一般大小为物理内存的2倍,但最大不超过2G: 增加SWAP空间的方法有两个:增加另外一个SWAP分 ...

  9. linux如何挂载swap分区,Linux挂载新硬盘和创建Swap分区的方法

    Liunx添加新硬盘其实和Windows的操作一样,但一个是图形化操作,另一个是命令行操作,不过步骤是一样,下面就动手演示和讲解 Linux挂载新硬盘 1.查看硬盘信息 命令:fdisk -l [ro ...

最新文章

  1. 大流量网站的底层系统架构
  2. 深度解析神经网络中每个神经元的使命 | MIT朱俊彦港中文周博磊力作
  3. java圆角矩形_如何在java中使用普通矩形轮廓绘制圆角矩形
  4. js GB2312和unicode互转
  5. 多线程(二)线程控制
  6. python学习四(处理数据)
  7. Vallog可以识别的错误及错误提示
  8. 使用application log 分析navigation target解析错误
  9. python各种类型转换-int,str,char,float,ord,hex,oct等
  10. python 常用 time, datetime处理
  11. AppStore编年史 iOS游戏开发者的变迁路
  12. mysql连接操作_MySQL内连接操作
  13. 来自司徒正美的面试题
  14. [足式机器人]Part3机构运动微分几何学分析与综合Ch01-1 平面运动微分几何学——【读书笔记】
  15. Vonage与华尔街英语合作为其数字教室提供助力
  16. 【解决方案 二十三】带单位的数值转大写人民币金额
  17. [谨记]女人面前莫谈年龄
  18. 红米k30 允许调用gpu调试层_红米击败自家小米,夺得性能榜第四,红米K30 Pro究竟靠什么?...
  19. 【莹伙丛】我是如何设置 IDEA 以方便执行shell 脚本命令的?
  20. no free lunch

热门文章

  1. Android开发之详解五大布局
  2. 缓存服务器syns to listen sockets drop导致创建socket失败
  3. 按照重复的次数高到低进行排序
  4. ARP命令详解--网络命令详解二
  5. [推荐]在线测试你的网速
  6. PAT_A1148#Werewolf - Simple Version
  7. MySQL 中 6 个常见的日志问题
  8. input:file上传类型控制简单介绍
  9. oracle 存储过程定义及调试,并终于被C# 调用 代码
  10. 配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。锁定是默认设置的...