Chinaunix首页 | 论坛 | 博客
  • 博客访问: 717189
  • 博文数量: 182
  • 博客积分: 2088
  • 博客等级: 大尉
  • 技术积分: 1698
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-16 15:09
个人简介

.

文章分类

全部博文(182)

文章存档

2016年(1)

2015年(18)

2014年(14)

2013年(20)

2012年(129)

分类:

2013-01-06 10:35:55

swap是针对物理内存不足的情况下,可以使用硬盘空间扩展内存的功能。

     CPU读取的数据都是来自内存,当内存不足时,会把暂时不使用的数据移动swap中,空出内存给需要执行的程序加载。

     swap有两种方式,一种是使用物理分区创建swap,本篇描述的是另外一种使用文件创建内存分区。因为我的内存8G通常情况下都没问题,只是偶尔编译些大型玩具才会使用到,使用文件创建的好处是临时使用,使用完我直接释放掉,以后想用在操作一次。


第一步:使用dd命令创建一个6G大文件

1.  创建文件, 最后一个参数是选择大小

  1. $ dd if=/dev/zero of=/tmp/swap bs=1G count=6    
  2. 记录了6+0 的读入    
  3. 记录了6+0 的写出    
  4. 6442450944字节(6.4 GB)已复制,18.1875 秒,354 MB/秒    


使用--help命令查看下dd命令如何使用的,以后就没必要记命令参数

  1. $ dd --help   
  2. 用法:dd [操作数] ...   
  3.  或:dd 选项   
  4. 复制文件,依照操作数转换并格式化。   
  5.   
  6.   bs=比特数    一次读写的比特数   
  7.   cbs=比特数   一次转换的比特数   
  8.   conv=CONVS    依照每个逗号分割的标志列表转换文件   
  9.   count=块数  只将指定个块数复制到块   
  10.   ibs=比特数   一次读取的比特数(默认:512)   
  11.   if=文件 从指定文件中读取   
  12.   iflag=符号  按照以逗号分隔的符号列表指定的方式读取   
  13.   obs=比特数   一次写入指定比特数(默认:512)   
  14.   of=文件 写入到指定文件   
  15.   oflag=符号  按照以逗号分隔的符号列表指定的方式写入   
  16.   seek=块数   在输出开始处跳过指定的块数   
  17.   skip=块数   在输入开始处跳过指定的块数   
  18.   status=noxfer 禁止传输统计   
  19.   
  20. 块和字节数后可能带有以下的一个或多个后缀:   
  21. c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M   
  22. GB =1000*1000*1000, G =1024*1024*1024, and so on for T, P, E, Z, Y.   

从输出可以看出,命令的参数解释:

if=文件从指定文件中读取

of=文件写入到指定文件

bs=比特数一次读写的比特数

count=块数只将指定个块数复制到块


2. 查看创建文件是否成功

  1. $ll -h /tmp/swap  
  2.   
  3. -rw-rw-r--1 test test 6.0G 10月 2708:06 /tmp/swap  

参数含义: 同样使用ll--help查看

-h,--human-readable-l一起,以易于阅读的格式输出文件大小

(例如1K234M 2G)


第二步 将文件格式化为swap的文件格式

执行之前一定要小心,因为之前创建的打文件如果弄错字节数,可能使文件系统挂掉

  1. #mkswap可将磁盘分区或者文件设置为linux交换区  
  2.   
  3. $mkswap /tmp/swap  
  4.   
  5. Settingup swapspace version 1, size = 6291452 KiB  


第三步 使用swapon/tmp/swap启动


  1. $free  
  2.   
  3. total used free shared buffers cached  
  4.   
  5. Mem: 2051688 1146912 904776 0 14620 643072  
  6.   
  7. -/+buffers/cache: 489220 1562468  
  8.   
  9. Swap: 2095100 340 2094760  



  1. #这一步需要root权限  
  2.   
  3. $sudo swapon /tmp/swap  

  1. $free  
  2.   
  3. total used free shared buffers cached  
  4.   
  5. Mem: 2051688 1153996 897692 0 14928 644964  
  6.   
  7. -/+buffers/cache: 494104 1557584  
  8.   
  9. Swap: 8386552 340 8386212  


  1. $swapon -s  
  2.   
  3. Filename Type Size Used Priority  
  4.   
  5. /dev/sda5 partition 2095100 340 -1  
  6.   
  7. /tmp/swap file 6291452 0 -2  


第四步 使用完后,关闭交换分区文件

我只使用这一次,使用完干脆释放掉硬盘空间

  1. $sudo swapoff /tmp/swap  



  1. $free  
  2.   
  3. total used free shared buffers cached  
  4.   
  5. Mem: 2051688 1132180 919508 0 15488 645360  
  6.   
  7. -/+buffers/cache: 471332 1580356  
  8.   
  9. Swap: 2095100 340 2094760  

阅读(835) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~