- 論壇徽章:
- 0
|
本帖最后由 aaaaaa 于 2013-02-05 18:33 編輯
我們已經(jīng)將內(nèi)存優(yōu)化的代碼提交到社區(qū)的master分支,即這個優(yōu)化將會出現(xiàn)在下次發(fā)布的開發(fā)版本里:3.3.1里。這個改進主要目的是解決內(nèi)存分配中的不釋放問題,使用的是一個內(nèi)存回收功能,相關(guān)的參數(shù)有:
* proxy.config.allocator.enable_reclaim
是否啟用內(nèi)存回收功能。這個參數(shù)的主要目的是讓內(nèi)存回收成為可以配置的功能,主要為讓社區(qū)的老人們覺得新功能不是推翻重來的。代碼默認目前是1,即啟用回收。配置文件默認是0,即關(guān)閉回收。如是用git/master里的代碼新裝的配置文件會生效,即不啟用。如果是從其他版本升級上來,由于records.config升級安裝不會覆蓋,代碼默認配置會生效,即啟用。這個一定要理解哦,我有可能后面再改這些默認值的。
* proxy.config.allocator.reclaim_factor
是控制回收的閾值的,0.0-1.0的浮點數(shù),默認0.3。越高越主動回收。
* proxy.config.allocator.max_overage
定義超過閾值幾次才回收,也是一個用來控制收縮算法啟動的一個小開關(guān),代碼默認10。實測3效果比較好,新配置默認是3。
還有一個參數(shù)是debug用的,一般用不到
* proxy.config.allocator.debug_filter
Dump debug information according bit mask of debug_filter, if a bit is set
in the mask, then debug information of the corresponding action are dumped:
bit 0: reclaim memory in ink_freelist_new
bit 1: allocate memory from partial-free Chunks(if exist) or OS
如果要啟用內(nèi)存回收,請使用最新的git版本,從官方clone出來,帶--enable-reclaimable-freelist編譯,請設(shè)置proxy.config.allocator.enable_reclaim為1,并調(diào)節(jié)reclaim_facotr和max_overage到符合你的業(yè)務(wù)場景的數(shù)值。當(dāng)然默認的參數(shù)也是能行的,是一個比較中庸的值。
|
|