2013-07-01 83 views
0

我正在嘗試爲bdb文件設置千兆字節的緩存大小。我正在使用bdb的python接口。我看到bdb的底層'C'API有這個選項。如何增加berkeley db緩存大小

int DB->set_cachesize(DB *db, u_int32_t gbytes, u_int32_t bytes, int ncache); 

但我只能夠一個的cachesize參數傳遞給它被解釋爲以字節爲單位的CACHE_SIZE功能btopen。這限制了最大cache_size爲2GB。我希望能夠將緩存大小設置爲至少4GB。

任何幫助能夠設置/增加緩存大小將不勝感激,在此先感謝!

下面是我用來設置cache_size的python函數。

cache_size = (2*1024*1024*1024) - 1 

db = bsddb.btopen(self._bdbFileName, cachesize=cache_size, flag='n') 
+0

如果您運行的操作系統具有自己的緩衝區緩存,則可能不需要執行此操作。使用較小的緩存大小評估應用程序的性能,例如1 GiB與2 GiB相比較。如果您的操作系統已經在緩存數據庫文件,那麼您可能會發現,通過讓操作系統執行該操作,您的應用程序性能會比將內存專用於BDB時更好。 –

回答

0

我不熟悉BDB的python界面。當我使用c api時,我非常感謝用環境打開bdb,並在環境中設置了很多配置。

例如,打開一個帶有環境的bdb文件,環境設置爲〜/ env/。然後把一個名爲DB_CONFIG文件〜/ ENV/的內容:

set_cachesize 4 0 1 

使用cachesize將被設置爲4GB。無需代碼。

可以在DB_CONFIG檢查this所有可用的配置。