摘要: 这篇文章将展示如何用RAMDISK来提高PostgreSQL数据库的访问速度。
一、介绍 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 with 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