- 论坛徽章:
- 0
|
本帖最后由 aaaaaa 于 2013-02-05 18:33 编辑
我们已经将内存优化的代码提交到社区的master分支,即这个优化将会出现在下次发布的开发版本里:3.3.1里。这个改进主要目的是解决内存分配中的不释放问题,使用的是一个内存回收功能,相关的参数有:
* proxy.config.allocator.enable_reclaim
是否启用内存回收功能。这个参数的主要目的是让内存回收成为可以配置的功能,主要为让社区的老人们觉得新功能不是推翻重来的。代码默认目前是1,即启用回收。配置文件默认是0,即关闭回收。如是用git/master里的代码新装的配置文件会生效,即不启用。如果是从其他版本升级上来,由于records.config升级安装不会覆盖,代码默认配置会生效,即启用。这个一定要理解哦,我有可能后面再改这些默认值的。
* proxy.config.allocator.reclaim_factor
是控制回收的阈值的,0.0-1.0的浮点数,默认0.3。越高越主动回收。
* proxy.config.allocator.max_overage
定义超过阈值几次才回收,也是一个用来控制收缩算法启动的一个小开关,代码默认10。实测3效果比较好,新配置默认是3。
还有一个参数是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
如果要启用内存回收,请使用最新的git版本,从官方clone出来,带--enable-reclaimable-freelist编译,请设置proxy.config.allocator.enable_reclaim为1,并调节reclaim_facotr和max_overage到符合你的业务场景的数值。当然默认的参数也是能行的,是一个比较中庸的值。
|
|