转载自http://blog.zol.com.cn/1194/article_1193462.html,#为命令提示符 虚拟内存 (swap)
虚拟内存就是将硬盘规划出一个区间,让内存的数据可以经由硬盘来读取。 建立和扩大swap:
l 建立虚拟内存设备
第一种正规的方法是『直接再加一硬盘,并且将其中某个分区规划
为 swap 的 filesystem 』:思路是:用fdisk建立后,再格式化为swap。再将 swap 启动,启动的指令为『 swapon /dev/hd[a-d][1-16] 』! 直接 swapoff 就能关掉。 l 建立虚拟内存文件
使用 swap file 的方式来新增硬盘! 以 dd 指令来建立 swapfile ;
# dd if=/dev/zero of=/tmp/swap bs=4k count=16382 16382+0 records in 16382+0 records out
# dd 这 个指令是用来转换文件并且 copy 用的;if 指的是要被转换的输入文件格
式 /dev/zero ,of 指的是输出的文件,输出到 /tmp /swap 这个文件;bs 指的是一个扇区占用几个 kb ;count 指的是要使用多少个 bs 。相乘就是容量。
# mkswap /tmp/swap (格式化,务必注意书写正确,否则后果很严重) Setting up swapspace version 1, size = 67096576 bytes
# swapon /tmp/swap (启动他)这样就已经将虚拟内存增加64 MB了 !如果每次都想启动该文件,那么将 swapon /tmp/swap 写入/etc/rc.d/rc.local 中。 # free (查看下swap) 。。。。中间省略
Swap: 192524 2620 189904 # swapoff /tmp/swap (关掉他)
此外,如果当初建系统的时候,没有完全划分硬盘空间,可以新建个分区,格式化为swap,然后挂载到/tmp/swap目录上,达到扩容目的。
swap工作原理是: 当物理内存不够时,则某些在内存当中所占的程序会暂时被移动
到 swap 中,让物理内存可以被更需要的程序来优先使用。因此,虚拟内存只是缓解作用,速 度肯定没法和物理内存比,优化的最好办法就是买内存。另外, 系统可以进入『休眠』模式,运作当中的程序状态会被纪录到swap去,以作为『唤醒』主机所 用!最后有某些程序在运行时,本来就会利用 swap 的特性来存放一些数据段,所以swap 是需要建立的!只是不需要太大。
swap 在被建立时,是有限制的:
· Swap有数量和大小限制,不过不同版本系统限制不一样。
· 目前 x86_64 (64位) 最大内存支持到 64GB, 因此swap总量最大也是仅能达 64GB!
Linux下怎样增加虚拟内存
分类: Linux 2009-11-18 14:40 543人阅读 评论(0) 收藏 举报
1、打开终端,切换到root用户,输入:free -m查看内存状态 [root@lxt lxt]# free -m
total used free shared buffers cached Mem: 498 357 141 0 27 162 -/+ buffers/cache: 167 331 Swap: 1023 0 1023
2、输入df -B M(或df -m)查看各分区当前使用情况 [root@lxt lxt]# df -B M
文件系统 1M-块 已用 可用 已用% 挂载点 /dev/mapper/vg_lxt-lv_root
12875M 4059M 8162M 34% / /dev/sda7 194M 14M 170M 8% /boot tmpfs 250M 1M 249M 1% /dev/shm (fdisk -l可查看磁盘分区情况)
3、选择一个较大的分区,建立分区文件:
[root@lxt lxt]# dd if=/dev/zero of=/swapadd bs=1024 count=524288 524288+0 records in 524288+0 records out
536870912 bytes (537 MB) copied,13.0709 秒,41.1 MB/秒 以上命令在根目录新建一个名为swapadd,大小为512M的虚拟内存文件
4、移动该文件到空间较大的其他分区: [root@lxt lxt]# mkdir /mnt/swap [root@lxt /]# mv swapadd /mnt/swap
5、执行以下命令启用虚拟内存并重启电脑 [root@lxt /]# mkswap /mnt/swap/swapadd
Setting up swapspace version 1, size = 524284 KiB no label, UUID=a5c8b651-6f64-4414-bb5f-580b742acfce
[root@lxt /]# swapon /mnt/swap/swapadd 查看内存:
[root@lxt /]# free -m
total used free shared buffers cached Mem: 498 492 6 0 15 302 -/+ buffers/cache: 174 323 Swap: 1535 0 1535
6、如果不需要使用新增的虚拟内存,则输入: swapoff -v /mnt/swap/swapadd
Linux下内存释放问题相关知识 分类: Linux 2009-11-18 14:41 37人阅读 评论(0) 收藏 举报 细心的朋友会注意到,当你在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法.那么我来谈谈这个问题. 先来说说free命令 [root@server ~]# free -m total used free shared buffers cached Mem: 249 163 86 0 10 94 -/+ buffers/cache: 58 191 Swap: 511 0 511 其中: 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@server ~]# cp -r /etc ~/test/ [root@server ~]# free -m
total used free shared buffers cached Mem: 249 244 4 0 8 174 -/+ buffers/cache: 62 187 Swap: 511 0 511
在我命令执行结束后,used为244MB,free为4MB,buffers为8MB,cached为174MB,天呐都被cached吃掉了.别紧张,这是为了提高文件读取效率的做法.
引用http://www.wujianrong.com/archives/2007/09/linux_free.html\"为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。\"
那么有人说过段时间,linux会自动释放掉所用的内存,我们使用free再来试试,看看是否有释放>?
[root@server test]# free -m
total used free shared buffers cached Mem: 249 244 5 0 8 174
-/+ buffers/cache: 61 188 Swap: 511 0 511
MS没有任何变化,那么我能否手动释放掉这些内存呢???回答是可以的!
/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段.也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整.那么我们可以通过调整/proc/sys/vm/drop_caches来释放内存.操作如下: [root@server test]# cat /proc/sys/vm/drop_caches 0
首先,/proc/sys/vm/drop_caches的值,默认为0 [root@server test]# 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 are not freeable, the user should run sync(8) first.
Unix下添加新硬盘方法
发布者:chinaitlab 日期: 2006-03-29 00:00:00 浏览次数:0 (共有_条评论) 查看评论 | 我要评论
添加步骤:
1. 将新加入的硬盘挂在第二个IDE口。如果挂在第一个IDE口,则需将硬盘跳线设为从盘。
2. 启动机器。
3. 查看分区信息。
divvy /dev/hd10 第二个控制器上第一块盘4.Enter your choice or Q to quit : n Which division ?(0 through 7)?: 2 (2为boot文件系统)
What do you want to call it ?: hn (hn 为文件系统名字,可以任取)
如果还有其它文件系统,如ilas98下的u3,则把2改成u3对应的序号,并重复以上步骤。
按q退出。
在按i 5.新建目录hn ,mkdir hn 6. Mount 第2块硬盘。scoadmin fi Mount—> Add mount
—>Local Device File: /dev/hn Mount point: /hn 7. 可以通过 View—> Disk Usage 查看文件系统使用情况。
注意:取下新添加的硬盘时先要卸载!!!
卸载步骤:#scoadmin fi Mount->delete
因篇幅问题不能全部显示,请点此查看更多更全内容