- 论坛徽章:
- 0
|
本帖最后由 la19850302 于 2010-02-26 11:16 编辑
哇哈哈,号外,号外,突破性进展!突破性进展!突破性进展!两三个星期的困扰啊,
终于弄明白NDBD的内存分配机制了,总结:只有猪能想的到,实在太傻了.
结论是:datamemory+indexmemory和ndbd进程的初始内存使用没有关系,而是随数据的增长动态分配的.也就是说这个内存不是预分配的.
那么ndbd节点初始化的时候为哪些pool预分配了内存呢,主要是预分配给了元数据.可以根据下面系列参数算出预分配的内存使用大小:MaxNoOfAttributes,MaxNoOfTables,MaxNoOfOrderedIndexes...
Metadata objects. The next set of [ndbd] parameters defines pool sizes for metadata objects, used to define the maximum number of attributes, tables, indexes, and trigger objects
并非没有看到手册上这段话,后面也有具体的内存使用计算方法,实在是太不敢相信,哥好歹也有点智商吧,根据一个可能达到最大值预分配这么多内存,而不是根据实际元数据分配,这太脑残了吧,我分库分表256*16,这么分配,根本就用不上cluster了,那我还混个屁 |
|