| 導購 | 订阅 | 在线投稿
分享
 
 
 

如何用RAMDISK來提高PostgreSQL訪問速度

來源:互聯網  2008-06-01 03:22:25  評論

這篇論壇文章(賽迪網)主要介紹了使用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

關于速度Comments on the speed

我已經把postgresql分別在RAMDISK上和不在RAMDISK上進行過速度方面性能的測試。有些時候,在RAMDISK上的postgresql的速度將會快出50%。當然有些時候不是這樣的。

我注意到,當系統對數據設置緩沖時,系統性能的提高並不很大只有大約10%到20%。當有大量新的數據被同時輸入數據庫時,系統的性能有著顯著的提高。

在使用RAMDISK中最大的好處就是你可以強制你的數據庫留在內存中而避免使用硬盤。如果你不使用RAMDISK,你的數據庫將可能被換出內存。當它被使用時再被從硬盤上調入內存。

結論:

對于linux環境下,當一個文件被讀取時,它將被保存在內存中直到內存空間被其他程序要求使用。這樣便是緩存。也許這是一個解決之道。如果不是這樣,當我的機器有訪問的時候,會聽見硬盤的聲音。利用RAMDISK時數據庫放在內存中而不會被到處內存。如果經常用數據庫server的話,要是我就把它放在內存中。

在數據庫上使用RAMDISK的好處就是可以得到高速度,簡單而明快。對于那些只讀的數據庫來說,這可是一個非常棒的主意。

它的不足就是你必須知道如何管理,並且在你進行修改時,最好確信你已經做了修改的備份。

這篇論壇文章(賽迪網)主要介紹了使用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   關于速度Comments on the speed   我已經把postgresql分別在RAMDISK上和不在RAMDISK上進行過速度方面性能的測試。有些時候,在RAMDISK上的postgresql的速度將會快出50%。當然有些時候不是這樣的。 我注意到,當系統對數據設置緩沖時,系統性能的提高並不很大只有大約10%到20%。當有大量新的數據被同時輸入數據庫時,系統的性能有著顯著的提高。 在使用RAMDISK中最大的好處就是你可以強制你的數據庫留在內存中而避免使用硬盤。如果你不使用RAMDISK,你的數據庫將可能被換出內存。當它被使用時再被從硬盤上調入內存。 結論: 對于linux環境下,當一個文件被讀取時,它將被保存在內存中直到內存空間被其他程序要求使用。這樣便是緩存。也許這是一個解決之道。如果不是這樣,當我的機器有訪問的時候,會聽見硬盤的聲音。利用RAMDISK時數據庫放在內存中而不會被到處內存。如果經常用數據庫server的話,要是我就把它放在內存中。 在數據庫上使用RAMDISK的好處就是可以得到高速度,簡單而明快。對于那些只讀的數據庫來說,這可是一個非常棒的主意。 它的不足就是你必須知道如何管理,並且在你進行修改時,最好確信你已經做了修改的備份。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有