导航:首页 > 文件教程 > 创建swap文件

创建swap文件

发布时间:2024-09-19 05:16:07

『壹』 linux Swap 绌洪棿绠$悊涓庝紭鍖栨寚鍗楋細浠庡熀纭浣跨敤鍒拌繃楂樺勭悊

Linux Swap绌洪棿绠$悊涓庝紭鍖栵細娣卞叆鐞嗚В涓庡疄鐢ㄧ瓥鐣


鍦↙inux鐨勪笘鐣岄噷锛孲wap绌洪棿鏄鍐呭瓨绠$悊鐨勭寷闂峰叧閿缁勪欢锛屽畠宸у欏湴鎵婕旂潃铏氭嫙鍐呭瓨鐨勮掕壊锛屽挨鍏跺湪鍐呭瓨绱у紶鏃讹紝鑳芥彁鍗囩郴缁熻祫婧愮殑鍒╃敤鐜囥傜劧鑰岋紝Swap绌洪棿骞堕潪鏃犻檺鍒剁殑榄旀硶锛屽叾浣跨敤涓嶅綋鍙鑳戒細瀵圭郴缁熸ц兘閫犳垚璐熼潰褰卞搷銆傛湰鏂囧皢甯︿綘鎺㈢储Swap绌洪棿鐨勫熀纭鍘熺悊锛屾暀浣犲備綍鐩戞帶銆佽剧疆鍜屼紭鍖栵紝浠ュ簲瀵筍wap浣跨敤杩囬珮鏃剁殑鎸戞垬銆


1. Swap绌洪棿鐨勫熀纭


Swap绌洪棿鐨勪綔鐢ㄥ湪浜庯紝褰撶墿鐞哛AM锛圧AM锛変笉鍫閲嶈礋鏃讹紝浼氬皢鏆傛椂涓嶆椿璺冪殑鏁版嵁绉诲姩鑷崇‖鐩樹笂鐨勯勭暀绌洪棿銆傝繖鐪嬩技绠鍗曪紝瀹炲垯鍏充箮绯荤粺鐨勭伒娲绘т笌绋冲畾鎬с備笉杩囷紝纭鐩樿诲啓閫熷害杩滀綆浜嶳AM锛岄戠箒鐨凷wap鎿嶄綔鍙鑳藉艰嚧鎬ц兘涓嬮檷锛屽洜姝わ紝鍚堢悊閰嶇疆Swap绌洪棿鑷冲叧閲嶈併


2. 瀹炴垬鎿嶄綔涓庣$悊


2.1 鐩戞帶Swap浣跨敤鎯呭喌

棣栧厛锛屼娇鐢╢ree -m鍛戒护锛屼綘鍙浠ョ洿瑙傚湴鐪嬪埌鍐呭瓨鍜孲wap鐨勪娇閫楀巻鐢ㄦ儏鍐点傞氳繃swapon --show鍛戒护锛屽彲浠ヨ︾粏浜嗚ВSwap鐨勫垎鍖烘垨鏂囦欢鐘舵併


2.2 鎵╁睍Swap绌洪棿

锛1锛夊垱寤篠wap鏂囦欢锛氫娇鐢╯udo fallocate鍒涘缓锛屼緥濡傚垱寤4GB鐨勬枃浠秙udo fallocate -l 4G /swapfile銆


锛2锛夋潈闄愯剧疆锛氱‘淇濆彧鏈塺oot鏉冮檺鍙璁块棶锛屽俿udo chmod 600 /swapfile銆


锛3锛夋牸寮忓寲涓篠wap锛氱敤mkswap鍛戒护鏍煎紡鍖栵紝濡俿udo mkswap /swapfile銆


锛4锛夊惎鐢ㄥ苟鎸佷箙鍖栵細涓存椂鍚鐢╯wapon锛屾案涔呯敓鏁堝垯闇娣诲姞鍒/etc/fstab銆


2.3 璋冩暣Swappiness鍊

Swappiness鍙傛暟褰卞搷鍐呭瓨鍒癝wap鐨勫垏鎹锛岃皟鏁村畠鑳戒紭鍖栧唴瀛樹娇鐢ㄣ傚厛鏌ョ湅褰撳墠鍊硷紝涓存椂鏀硅撅紝鐒跺悗姘镐箙淇鏀归厤缃銆


3. 绯荤粺浼樺寲涓庢敞鎰忎簨椤


3.1 鎬ц兘涓庣‖鐩樼被鍨

灏界Swap鍙浠ヨˉ鍏匯AM锛屼絾纭鐩樻ц兘褰卞搷鏄捐憲銆傚敖閲忎娇鐢⊿SD浠ユ彁鍗嘢wap鎿嶄綔閫熷害锛岄伩鍏嶆ц兘鐡堕堛


3.2 瀹夊叏鎬

Swap绌洪棿鍙鑳藉寘鍚鏁忔劅鏁版嵁锛岃板緱鍦ㄤ笉闇瑕佹椂浣跨敤swapoff鍛戒护鍏抽棴锛屽苟娓呴櫎swap鏂囦欢浠ヤ繚瀹夊叏銆


4. 瀹炵敤鎶宸т笌鎬荤粨


閫氳繃涓婅堪姝ラわ紝鎴戜滑鎴愬北鐭ユ悳鍔熸墿灞曚簡Linux绯荤粺Swap绌洪棿锛岃В鍐充簡鍙鑳界殑涓嶈冻銆傜悊瑙e苟绠$悊濂絊wap锛屽氨鍍忕粰绯荤粺鍔犺呬簡鍐呭瓨鎵╁睍鍣锛岀‘淇濆湪鍐呭瓨鍘嬪姏涓嬶紝绯荤粺浠嶈兘淇濇寔骞崇ǔ杩愯屻傝繖鏄涓涓鎻愬崌绯荤粺鎬ц兘鍜岀ǔ瀹氭х殑瀹炵敤宸ュ叿锛屽煎緱姣忎釜Linux鐢ㄦ埛鎺屾彙銆


璁颁綇锛孲wap绌洪棿鐨勭$悊骞堕潪涓鍔虫案閫革紝鍔ㄦ佽皟鏁村拰鐩戞帶Swappiness鍊硷紝閫夋嫨鍚堥傜殑纭鐩樼被鍨嬶紝閮芥槸纭淇濈郴缁熼珮鏁堣繍琛岀殑鍏抽敭銆傜幇鍦锛屼綘宸茬粡鍑嗗囧ソ鍦↙inux涓栫晫涓锛岀伒娲昏屾湁鏁堝湴绠$悊浣犵殑Swap绌洪棿浜嗐

『贰』 CentOS下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**把新的分区做成swap

7.swapon /dev/hd**打开swap

8.修改/etc/fstab

操作实例:

1.查看系统Swap空间使用

# free

total used free shared buffers cached

Mem: 513980 493640 20340 0 143808 271780

-/+ buffers/cache: 78052 435928

Swap: 1052248 21256 1030992

2.在空间合适处创建swap文件

# mkdir swap

# cd swap

# dd if=/dev/zero of=swapfile bs=1024 count=10000

10000+0 records in

10000+0 records out

# ls -al

total 10024

drwxr-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 swapfile

Setting up swapspace version 1, size = 9996 KiB

3.激活swap文件

# swapon swapfile

# ls -l

total 10016

-rw-r--r-- 1 root root 10240000 7月 28 14:58 swapfile

# free

total used free shared buffers cached

Mem: 513980 505052 8928 0 143900 282288

-/+ buffers/cache: 78864 435116

Swap: 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 -sFilenameTypeSizeUsedPriority/dev/sda3 partition10201161728-1/state/partition1/swap/swapfile file307199920-2

加到fstab文件中让系统引导时自动启动

#vi /etc/fstab

/state/partition1/swap/swapfil swap swap defaults 0 0

完毕。

二,LINUX释放内存

细心的朋友会注意到,当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法.那么我来谈谈这个问题.

先来说说free命令

[root@cluster /]# free -m

total used free shared buffers cached

Mem: 31730 31590 139 0 37 27537

-/+ buffers/cache: 4015 27714

Swap: 30996 1 30994

其中:

total 内存总数

used 已经使用的内存数

free 空闲的内存数

shared 多个进程共享的内存总额

buffers Buffer Cache和cached Page Cache 磁盘缓存的大小

-buffers/cache 的内存数:used - buffers - cached

+buffers/cache 的内存数:free + buffers + cached

可用的memory=free memory+buffers+cached

有了这个基础后,可以得知,我现在used为163MB,free为86,buffer和cached分别为10,94

那么我们来看看,如果我执行复制文件,内存会发生什么变化.

[root@cluster /]# cp -r /etc ~/test/

[root@cluster /]# free -m

total used free shared buffers cached

Mem: 31730 31590 139 0 37 27537

-/+ buffers/cache: 4015 27714

Swap: 30996 1 30994

在我命令执行结束后,used为244MB,free为4MB,buffers为8MB,cached为174MB,天呐都被cached吃掉了.别紧张,这是为了提高文件读取效率的做法.

引用[url]http://www.2qyou.com/thread-591-1-1.html[/url] 为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。

那么有人说过段时间,linux会自动释放掉所用的内存,我们使用free再来试试,看看是否有释放?

[root@cluster /]# free -m

total used free shared buffers cached

Mem: 31730 31590 139 0 37 27537

-/+ buffers/cache: 4015 27714

Swap: 30996 1 30994

MS没有任何变化,那么我能否手动释放掉这些内存呢???回答是可以的!

/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段.也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整.那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存.操作如下:

[root@cluster /]# cat /proc/sys/vm/drop_caches

0

首先,/proc/sys/vm/drop_caches的值,默认为0

[root@cluster /]# sync

手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)

[root@server test]# echo 3 /proc/sys/vm/drop_caches

[root@server test]# cat /proc/sys/vm/drop_caches

3

将/proc/sys/vm/drop_caches值设为3

[root@server test]# free -m

total used free shared buffers cached

Mem: 249 66 182 0 0 11

-/+ buffers/cache: 55 194

Swap: 511 0 511

再来运行free命令,发现现在的used为66MB,free为182MB,buffers为0MB,cached为11MB.那么有效的释放了buffer和cache.

有关/proc/sys/vm/drop_caches的用法在下面进行了说明

/proc/sys/vm/drop_caches (since Linux 2.6.16)

Writing to this file causes the kernel to drop clean caches,

dentries and inodes from memory, causing that memory to become free.

To free pagecache, use echo 1 /proc/sys/vm/drop_caches;

to free dentries and inodes, use echo 2 /proc/sys/vm/drop_caches;

to free pagecache, dentries and inodes, use echo 3 /proc/sys/vm/drop_caches.

Because this is a non-destructive operation and dirty objects

这几天发现linux系统内存一直涨,即使把apache和mysql关闭了,内存也不释放,可以使用以下脚本来释放内存:

脚本内容:

#!/bin/sh

# cache释放:

# To free pagecache:

/bin/sync

/bin/sync

#echo 1 /proc/sys/vm/drop_caches

# To free dentries and inodes:

#echo 2 /proc/sys/vm/drop_caches

# To free pagecache, dentries and inodes:

echo 3 /proc/sys/vm/drop_caches

利用系统crontab实现每天自动运行:

crontab -e

输入以下内容:

00 00 * * * /root/Cached.sh

每天0点释放一次内存,这个时间可以根据自己需要修改设置

在运行./Cached.sh时如果提示错误:Permission denied 权限的问题,可以运行

『叁』 如何在Ubuntu中创建swap分区文件

备注:
1)Ubuntu版本:14.04
2)Linux用户:root

通常,Linux系统中swap分区可以通过两种方式指定,分别为:一、在磁盘分区的时候格式化一个swap分区;二、在文件系统中创建一个swap文件作为swap分区。此文主要介绍第二种方式。步骤如下:

1. 创建文件
fallocate -l 8G /swapfile
说明:8G 表示swap文件大小,/swapfile为swap文件路径和名称,可以任意指定。

2. 修改文件权限
chmod 600 /swapfile

3. 将 swapfile 初始化为交换文件
mkswap /swapfile

4. 启用交换文件
swapon /swapfile

5. 至此,linux系统已经将swapfile作为交换文件使用,但是重启之后是不会自动挂在刚才创建的文件的,因此需要手动修改 /etc/fstab 配置文件:
gedit /etc/fstab
在文件中添加如下内容:
/swapfile none swap sw 0 0

6. 完成,测试下:
swapon -s

提示:
如果需要卸载swap分区文件,可以使用命令:swapoff /swapfile

阅读全文

与创建swap文件相关的资料

热点内容
js静态文件 浏览:846
javaredis存储对象 浏览:906
如何下载php文件 浏览:946
视频怎么变成mp3格式文件怎么打开 浏览:869
pe下找桌面文件win10 浏览:686
电脑微信复制文件还原 浏览:319
lol文件损坏修复 浏览:37
生活安卓 浏览:844
获取路由宽带账号密码错误 浏览:465
如何找到未保存的文件夹 浏览:252
xp系统怎么共享网络 浏览:663
苹果手机怎么打开pdf文件 浏览:392
win8拷文件很慢 浏览:337
linux建立textc文件 浏览:800
雕刻v型槽编程怎么计算 浏览:322
js怎么设置盒子循环播放 浏览:616
linux命令怎么打开 浏览:208
文件病毒是什么类型 浏览:522
iphone5c彩信设置 浏览:729
mide215字幕文件下载 浏览:565

友情链接