【2017年整理】LinuxSWAP分区建立及释放内存

上传人:豆浆 文档编号:11771734 上传时间:2017-10-15 格式:DOCX 页数:8 大小:17.31KB
返回 下载 相关 举报
【2017年整理】LinuxSWAP分区建立及释放内存_第1页
第1页 / 共8页
【2017年整理】LinuxSWAP分区建立及释放内存_第2页
第2页 / 共8页
【2017年整理】LinuxSWAP分区建立及释放内存_第3页
第3页 / 共8页
【2017年整理】LinuxSWAP分区建立及释放内存_第4页
第4页 / 共8页
【2017年整理】LinuxSWAP分区建立及释放内存_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《【2017年整理】LinuxSWAP分区建立及释放内存》由会员分享,可在线阅读,更多相关《【2017年整理】LinuxSWAP分区建立及释放内存(8页珍藏版)》请在金锄头文库上搜索。

1、方法一:一、查看系统当前的分区情况: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/fsta

2、b 确定目前的分区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: 10

3、52248 21256 10309922.在空间合适处创建 swap 文件# mkdir swap# cd 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#

4、 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 104098

5、4生成 1G 的文件# dd if=/dev/zero of=swapfile bs=10M count=3000创建为 swap 文件#mkswap swapfile让 swap 生效 #swapon swapfile查看一下 swap#swapon -srootcluster /# swapon -sFilename Type Size Used Priority/dev/sda3 partition 1020116 1728 -1/state/partition1/swap/swapfile file 30719992 0 -2加到 fstab 文件中让系统引导时自动启动#vi /etc

6、/fstab/state/partition1/swap/swapfil swap swap defaults 0 0完毕。二,Linux 释放内存细心的朋友会注意到,当你在 linux 下频繁存取文件后 ,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为 caching.这个问题, 貌似有不少人在问,不过都没有看到有什么很好解决的办法. 那么我来谈谈这个问题.先来说说 free 命令 rootcluster /# free -mtotal used free shared buffers cachedMem: 31730 31590 139 0 37 27537-/+ b

7、uffers/cache: 4015 27714Swap: 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,f

8、ree 为 86,buffer 和 cached 分别为 10,94那么我们来看看,如果我执行复制文件,内存会发生什么变化.rootcluster /# cp -r /etc /test/rootcluster /# free -mtotal used free shared buffers cachedMem: 31730 31590 139 0 37 27537-/+ buffers/cache: 4015 27714Swap: 30996 1 30994在我命令执行结束后,used 为 244MB,free 为 4MB,buffers 为 8MB,cached 为174MB,天呐都被 c

9、ached 吃掉了.别紧张, 这是为了提高文件读取效率的做法 .引 用urlhttp:/ 为了提高磁盘存取效率, Linux 做了一些精心的设计, 除了对 dentry 进行缓存(用于 VFS,加速文件路径名到 inode 的转换), 还采取了两种主要 Cache 方式: Buffer Cache 和 Page Cache。前者针对磁盘块的读写,后者针对文件 inode 的读写。这些 Cache 有效缩短了 I/O 系统调用 (比如 read,write,getdents)的时间。那么有人说过段时间,linux 会自动释放掉所用的内存 ,我们使用 free 再来试试, 看看是否有释放?root

10、cluster /# free -mtotal used free shared buffers cachedMem: 31730 31590 139 0 37 27537-/+ buffers/cache: 4015 27714Swap: 30996 1 30994MS 没有任何变化, 那么我能否手动释放掉这些内存呢?回答是可以的!/proc 是一个虚拟文件系统,我们可以通过对它的读写 操作做为与 kernel 实体间进行通信的一种手段.也就是说可以通过修改 /proc 中的文件, 来对当前 kernel 的行为做出调整.那么我们可以通过调整 /proc/sys/vm/drop_caches

11、 来释放内存.操作如下:rootcluster /# cat /proc/sys/vm/drop_caches0首先,/proc/sys/vm/drop_caches 的值,默认为 0rootcluster /# sync手动执行 sync 命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)rootserver test# echo 3 /proc/sys/vm/drop_cachesrootserver test# c

12、at /proc/sys/vm/drop_caches3将/proc/sys/vm/drop_caches 值设为 3rootserver test# free -mtotal used free shared buffers cachedMem: 249 66 182 0 0 11-/+ buffers/cache: 55 194Swap: 511 0 511再来运行 free 命令, 发现现在的 used 为 66MB,free 为 182MB,buffers 为0MB,cached 为 11MB.那么有效的释放了 buffer 和 cache.有关/proc/sys/vm/drop_ca

13、ches 的用法在下面进行了说明/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/dro

14、p_caches;to free pagecache, dentries and inodes, use echo 3 /proc/sys/vm/drop_caches.Because this is a non-destructive operation and dirty objectsLinux 调整 swap 大小和 swap 性能优化机器上的 swap 空间太大,但是由于硬盘 io 较慢,所以决定做一些优化:调小 swap,然后尽可能的禁用swap 。 1、先 “df -h”和“fdisk - l”命令查看一下当前分区情况/dev/mapper/vg_hostname-lv_swap 就是 swap 分区,为 2G。swap 分区亦可用 f

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 经济/贸易/财会 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号