荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (New Century New Dream), 信区: Linux
标  题: 提高Linux上小型数据库的速度(转寄)
发信站: BBS 荔园晨风站 (Sat Jan  6 15:08:55 2001), 站内信件

【 以下文字转载自 georgehill 的信箱 】
【 原文由 georgehill.bbs@smth.org 所发表 】
发信人: tattoo (突突~发誓要专心自习了), 信区: Linux
标  题: 提高Linux上小型数据库的速度(转寄)
发信站: BBS 水木清华站 (Fri Dec 22 23:29:21 2000)

by Mark Nielsen
关于作者:
The Computer Underground, Inc. 作为linux的使用者从事简单的工作和制作简单的项
目。这只是因为计算机很有意思。Mark还在 ZING工作, 并作为志愿者在www.genericbo
oks.com
正文:
介绍
建立一个ramdisk /Test
为 PostgreSQL 建立一个ramdisk
关于速度Comments on the speed
注释
参考


提高Linux上小型数据库的速度
摘要:
这篇文章将展示如何用RAMDISK来提高PostgreSQL数据库的访问速度.
----------------------------------------------------------------------------
----
介绍
Okay, 什么是RAMDISK?我们如何用它来提高数据库server的响应速度?
Ramdisk就是说用作于硬盘空间的内存。无论什么时候你使用Ramdisk,实际上你是在使
用内存而不是硬盘。在这一点上既有优点又有缺点。最基本的,最大的优点是你是在使
用内存,你所做的一切都会快一些,因为硬盘的速度较内存慢。最大的缺点是如果你改
变了数据库服务器的内容并且重新启动机器时,所做的一切改动都将丢失。
对于数据库Server PostgreSQL来说, 如果你将所有的数据库调入内存将会大大提高它的
速度。
建立一个ramdisk /Test
将默认ramdisk中的一个指向目录/Test。
mkdir -p /Test
mkfs -t ext2 /dev/ram0
mount /dev/ram0 /Test
如果这一步失败的话,也许是因为你所编译的内核不支持ramdisk。你应该将内和配置选
项中的CONFIG_BLK_DEV_RAM 一向置为可用的状态。
以上的步骤只能给你提供一个4M大小的ramdisk。The above gives you a ramdisk wit
h available space of just under 4Mb. 请参看 Ramdisk Article 一文,看看如何将
其改变成50M大小。
为 PostgreSQL 建立一个ramdisk
理论上你应该优良两个数据库server。一个是你可以进行修改的,另一个是在ramdisk上
的拷贝。实现这一点你应该用到"pg_dump" 或是 "pg_dumpall"命令。
注意: 我们假定你已经在文件中进行过设置是你的ramdisk大于你的数据库的大小。如果
你想得到它的近似的大小可以用命令"cd /var/lib/pgsql; du ".
无论怎样,使你的postgresql安装在 "/var/lib/pgsql" 并且将他们放到内存中,这样
做:
        ### Stop the current postgresql server
/etc/rc.d/init.d/postgres stop
        ### rename the current directory
mv /var/lib/pgsql /var/lib/pgsql_main
        #### Create a directory to have our ramdisk on
mkdir -p /var/lib/pgsql_memory
  #### change the ownership of the new directory to postgres or whatever
 #### the actual owner is.
chown postgres /var/lib/pgsql_memory
 #### Make an alias or link to the original name, /var/lib/pgsql
ln -s /var/lib/pgsql_memory /var/lib/pgsql
 #### Format the ramdisk
mkfs -t ext2 /dev/ram0
 #### Mount the ramdisk to the postgresql directory
mount /dev/ram0 /var/lib/pgsql_memory
 #### Copy everything from the main directory into the ramdisk
tar -C /var/lib/pgsql_main -cp . | tar -C /var/lib/pgsql_memory -xp
        ### Start the current postgresql server
/etc/rc.d/init.d/postgres start
关于速度Comments on the speed
我已经把postgresql分别在ramdisk上和不在ramdisk上进行过速度方面性能的测试。有
些时候,在ramdisk上的postgresql的速度将会快出50%。当然有些时候不是这样的。
我注意到,当系统对数据设置缓冲时,系统性能的提高并不很大只有大约10%到20%。当
有大量新的数据被同时输入数据库时,系统的性能有着显著的提高。
在使用ramdisk中最大的好处就是你可以强制你的数据库留在内存中而避免使用硬盘。如
果你不使用ramdisk,你的数据库将可能被换出内存。当它被使用时再被从硬盘上调入内
存。
注释
对于linux操作系统,当一个文件被读取时,它将被保存在内存中直到内存空间被其他程
序要求使用。这样便是缓存。也许这是一个解决之道。如果不是这样,当我的机器有访
问的时候,会听见硬盘的声音。利用ramdisk时数据库放在内存中而不会被到处内存。如
果经常用数据库server的话,要是我就把它放在内存中。
在数据库上使用ramdisk的好处就是可以得到高速度,简单而明快。对于那些只读的数据
库来说,这可是一个非常棒的主意。
它的不足就是你必须知道如何管理,并且在你进行修改时,最好确信你已经做了修改的
备份。
参考
由 Mark Nielsen 写的《如何在linux下使用ramdisk》
PostgreSQL 的主页

--
        他拿着球和手套来到空无一人的球场,站在投手丘上,合手、举臂、抬腿、
        投球。球沿着他的目光飞越本垒板,在地上砸起了一些尘土,滚进挡网下面
        的枯叶里。
        “很好的投球呢!”
        他望着空中还透着一点暖意的太阳,似乎又听到了她的声音。
        这时候阳光刚好照着他的脸,他的眼睛好亮......


※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.160.22]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店