浏览 4866 次
锁定老帖子 主题:erts运行期内存使用情况查看
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-31
1。 Best fit 2 。 Address order best fit 3. Good fit 4. A fit 还要一个erl_mtrace 模块专门收集erts允许期间的内存使用情况 然后通过tcp socket发送到 emem 这个程序中打印到 tty让人观察系统的情况。 emem在lib/tools/目录下 make install的时候默认没有安装。 启动 ./lib/tools/bin/i686-pc-linux-gnu/emem -p 1234 然后用erl -sname foo +Mit ip:1234就可以观察erlang的内存运作了. 注意erts的文档里面写: +Mit X 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-07-31
这位老兄研究的不浅。
|
|
返回顶楼 | |
发表时间:2007-07-31
俺以前也是想法设法作memory allocator, 所以知道作这个的艰辛和对系统性能提高的影响。
|
|
返回顶楼 | |
发表时间:2007-08-02
user space的内存管理好像比kernel里的还头疼---我是说freebsd5.0以前的OS
我现在也有个mem allocator的问题 因为用的还是较老的系统 free 没办法把内存还给kernel app是个典型的proxy类的service 里面无数的malloc/free 跑久了之后active mem维持在95% 不知道mryufeng有无碰到此问题,是怎么解决的? (gnumalloc无效) |
|
返回顶楼 | |
发表时间:2007-08-02
这个是glibc实现的malloc free的问题 和erlang没有关系 不过erlang可以用自己的malloc实现 elib_malloc
|
|
返回顶楼 | |
发表时间:2007-08-02
对 我就是这个意思 绕过glibc
用什么库代替它 可以使得user space的内存管理有能力把内存还给kernel 当然 我自己做是做不出来的 这里必须考虑到mem/CPU使用的平衡 我说的上下文不是erlang |
|
返回顶楼 | |
发表时间:2007-08-02
我错了 gnumalloc行的通
ptmalloc3的效果则更好(不负责任的说,跟gnumalloc比,节省90%的内存) http://www.malloc.de/en/ 而ptmalloc3也早就在里面glibc了 只不过俺一直用freebsd4.x 不知道这个事实 |
|
返回顶楼 | |