liujcd 发表于 2005-7-17 12:00:22

linux的虚拟内存问题

小弟是linux新手,有个问题请教大侠们: :)
我装了linux之后发现自己没有设置swap分区,但系统确实可以用了。使用free命令发现swap的各项都是0.
听说没有swap分区表示没有使用虚拟内存,不知道这样会影响系统的性能吗?如果要重新设置swap分区,我应该怎么做?我的硬盘现在有4个分区,三个windows分区和一个linux ext2分区,没有空余的空间了。

Miliardo 发表于 2005-7-17 13:12:06

传说也可以像Windows一样用文件SWAP,不过似乎性能不如分区Swap
还有……楼上的怎么用Ext2……万一有点意外哭都来不及(偶因为一次意外断电,结果ext2分区以及grub的配置文件全部毁掉了……害偶重装,从此不用ext2)……
试试ext3或者reiserfs,比较安全。reiserfs也快得多。

liujcd 发表于 2005-7-17 15:16:05

哦...以前只知道ext2,看来这个时代不加强学习就要很快落伍了。呵呵。
我想用软件重新设置swap分区,不知道有没有什么比较安全的方法,帮忙建议一下。解决了功劳是大家的,出了问题是我自己的事了,呵呵。

liujcd 发表于 2005-7-17 15:22:00

另:谢谢Miliardo老兄的提醒
我会看看这方面的资料,然后想法升级一下,免得重演Miliardo老兄出现过的悲剧。

zhy2111314 发表于 2005-7-18 09:47:39

在windows下用pqmagic之类的你用过比较熟悉的分区软件分一个swap分区,一般要求内存的两倍,但通常300M左右就差不多了,自己根据自己的情况选择,分区时设为linux swap格式,然后进入linux用root输入:
#swapon就可以了!

liujcd 发表于 2005-7-18 20:17:46

哦,原来还得用pqmagic进行分区。
看来这个工作不太容易。
我看我还是下次重装系统的时候,再设定swap分区吧。呵呵。
谢谢各位帮忙了:)

hew 发表于 2005-7-18 23:26:16

新增swap分区

根据Redhat公司的建议,swap分区最适合的大小是物理内存的1-2倍.不过Linux上有些软件对swap分区得需求较大,例如要顺利执行Oracle数据库软件,swap分区至少需要400MB或者物理内存2倍以上的空间.当然我们在安装Linux的时候,就能直接讲swap分区设置到足够的大小,但如果已经安装好Linux了,之后又想再安装类似Oracle的软件,却发现swap分区空间不够,该如何处理?

针对此种情况,有两种解决方法:一是创建新的swap分区;另一则是创建swap文件.
(这里暂时对创建swap文件做说明)

创建swap文件

如果你的硬盘空间已经全部分配给其他分区,也没有多余的预算新添购硬盘,我们可以利用swap文件的方式增加虚拟的swap空间,不过执行性能会较实际的swap分区差.

产生swap文件
要创建swap文件,执行dd命令,新增一个256MB的swap文件:
# dd if=/dev/zero of=/tmp/myswap bs=32k count=8192

(bs=32k指定每个扇区占用32kb,读入了8192+0个区段,输出了8192+0个区段)
注意:bs参数的目的在于指定每次读取及输入多少个bytes;由于磁盘存取的最小单位为扇区,因此设置bs也等于设置每个扇区的大小;而count的目的则在指定可以使用多少个扇区.因此,可以使用的硬盘空间就等于bs*count.以上范例为例,可以使用的硬盘空间等于32*8192=262144(KB),亦等于256MB.

执行上述命令后,会在/tmp目录中创建一个256MB的myswap文件

格式华及启动swap文件
接下来执行mkswap命令,将myswap文件格式化成s文件系统,系统才能使用,切换到/tmp目录,并执行以下命令:
# mkswap myswap (#将文件格式化为s文件格式)
setting up swapspace version 1 , size = 262140 KB

# swapon /tmp/myswap (#启动swap分区)

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

开机时自动启动新添加的swap分区
如果每次开机后都要执行swapon命令启动swap分区或者文件,这太麻烦了.这时可以利用文字编辑器在/etc/fstab文件加一行,好让开机时自动启动swap分区及文件:

/dec/hdb5 swap swap defaults 0 0 (开机时启动此swap分区)
/tmp/myswap swap swap defaults 0 0 (开机时启动此swap文件)

zhy2111314 发表于 2005-7-19 10:56:40

学习了!

liujcd 发表于 2005-7-19 13:14:28

:mrgreen: 回去马上试
老实说挺怕用分区软件的,呵呵。

liujcd 发表于 2005-7-19 21:10:55

已按大虾的指导做了,结果十分顺利(以下是gnome控制台下的输出)
#dd if=/dev/zero of=/tmp/myswap bs=32k count=8192
读入了 8192+0 个块
输出了 8192+0 个块
268435456 bytes transferred in 26.816938 seconds (10009922 bytes/sec)
# cd /tmp
# mkswap myswap
Setting up swapspace version 1, size = 268431 kB
no label, UUID=a608e790-86eb-4d95-b0c7-e382888699b0
# swapon /tmp/myswap
# free
             total       used       free   shared    buffers   cached
Mem:      224432   211580      12852          0       3116      78700
-/+ buffers/cache:   129764      94668
Swap:       262136      10584   251552

然后试了一下打开txt、pdf、png之类的文档,感觉速度均有所提高.
打开文件夹的速度也显著提高了。
没有来及试移动硬盘上的文件(没带身上),以前打开总是较慢的,相信设置虚拟内存文件后也会提速不少。

非常感谢!

liujcd 发表于 2005-7-19 21:16:03

另:终于敢在linux下看DVD了!效果还不错(Athlon XP 1800+,256M)。

goshawk168 发表于 2005-7-20 00:00:45

学习中

BOoRFGOnZ 发表于 2005-7-20 13:02:35

不看电影
不看大图片
不做大计算题。
不.....
我的swap似乎一直在空闲
页: [1]
查看完整版本: linux的虚拟内存问题