2013-03-18 84 views
1

我想在Windows 7機器的postgresql.conf文件中將shared_buffer從1GB增加到2 GB,因爲我擁有8 GB的RAM,但是當我進行更改並嘗試開始postgres服務它不會啓動,當我看着甚至查看器它給我下面的錯誤。如何增加postgres 8.4 shared_buffer在Windows 7

2013-03-18 16:07:41 ISTFATAL: could not create shared memory segment: 8 
2013-03-18 16:07:41 ISTDETAIL: Failed system call was MapViewOfFileEx. 

請幫我

回答

3

你幾乎肯定運行32位的PostgreSQL如果你使用8.4,所以共享內存的大小是由總的可用地址空間的進程的2GB的限制。 32位Windows(包括通過Wow64在64位Windows上運行的32位進程)使用2GB/2GB用戶/內核拆分。

錯誤消息意味着Pg試圖分配更多的共享內存,而不是系統可以映射的系統調用失敗。你無法真正解決這個問題,但你不需要。

即使1GB shared_buffers對於Windows上的32位Pg可能也是太多了,而且基準測試也傾向於支持這一點。幾乎可以肯定,保持shared_buffers相當低,並增加effective_cache_size告訴規劃者該操作系統有多少磁盤緩存可用。您應該計劃升級到PostgreSQL 9.2,以提高性能並延長維護週期per the version policy

請考慮向dba.stackexchange.com發佈另一個問題,詳細說明爲什麼要增加它。你想解決什麼問題?如果這是一個緩慢的查詢,請閱讀postgresql tag infopostgresql-performance tag info。如果您發佈新問題,請在此處添加一個鏈接,以便人們可以關注。

+0

'effective_cache_size'至少在8.0 – 2013-03-18 11:17:52

+0

@a_horse_with_no_name哎呀,教我檢查文檔而不依賴於我的記憶。謝謝。糾正。 – 2013-03-18 11:27:42