10. 服务器性能优化方案- IndexServer
引入内存Cache:选择半小时76%命中率方案
改变存储结构:散列文件=>桶文件
10,000连续UIN划分一个用户组。One Group One Lock
数据分配以块为单位。每用户组有15个桶文件,分别用于
分配1K/2K/4K/…/16M的数据块(2倍递增)。
使用桶文件头部的BITMAP管理数据块。
11. 服务器性能优化-桶文件结构
C i ent
l
1.
D a Bl ock I ndex
at 读 5. 返回
用
Bl ock 户
UN
I Type
Si ze
Pos 邮
件
1234
M l
ai
2K 25 索
I ndex 引
2. 查到文件
5678 Fol der 1K 311 与 偏移
…… …… …… …… I ndexSer ver
指向
3. 读磁盘
4. 获得数据
1K桶文件 BI TMAP ……
2K桶文件 BI TMAP ……
2^nK桶文件 ……… Bar r el <N>
12. 服务器性能优化-桶文件结构-可扩展结构
Physical
Field1 Field2
Record
全局字段配置表2
全局字段配置表1 Field1=STR
Field1=STR Interpretor Field2=LONG
Field2=LONG Field3=BIT
通过字段配置表动态
Record Data Object 1 Record Data Object 2
解释存储数据,扩展
字段时无须割接 Value1 Value2 Value1 Value2 Value3
13. 服务器性能优化-效果
单机性能:IndexServer提升4.1倍,峰值压力下保持平稳。
整体性能:NewMailSvr使整体再度提升20%。
数据扩展:无代码修改及割接条件下,目前数据类型已从6种扩
展到20种,原类型的字段扩展超过30个。
文件数缩减:9亿号段下最大135万文件,约为改造前的1/300。
备份:文件数缩减及组锁定策略使备份易于实施。
在线性能对比 新旧IdxSvr性能
90 曲线(纵轴为毫
80 秒,横轴为小时)
70
60
50 Od U
l D
40 New UD
30
20
10
0
103
109
115
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97
1
7