openfire 登陆 mysql转mongo性能测试及性能提升
2014-05-19 21:21
429 查看
登陆要修改的表:
OfPresence、OfRoster、OfRosterGroups、OfUserFlag、OfUserProp
Mysql迁移到mongo数据库功能已完成,为了进一步提高性能,考虑以下几个方面:
(1) 确认index是否添加
在多主键时使用如下方案,只对id做索引即可
@PrePersist
private
void changeMutiId()
{
this.id =username.concat(MongoConnectionProvider.mutiSplite).concat(remarkeduser);
}
其中少于3个字符串进行连接时使用String.concat ()(参考http://www.blogjava.net/javagrass/archive/2010/01/24/310650.html)
(2) 使用morphia @id标记id作为主键,替代mysql主键唯一功能
其他mongo常见问题处理见如下链接:
http://blog.chinaunix.net/uid-25046147-id-3307269.html
/article/6924475.html
http://www.csdn.net/article/2012-11-15/2811920-mongodb-quan-gong-lue
mongo监控详解见:
/article/5046151.html
——————————————————————————分割线————————————————————————————————————————
性能测试结果:(Intel(R) Xeon(R) CPU 2.13GHz ,内存:4139668 kB,64位)
OfPresence、OfRoster、OfRosterGroups、OfUserFlag、OfUserProp
Mysql迁移到mongo数据库功能已完成,为了进一步提高性能,考虑以下几个方面:
(1) 确认index是否添加
在多主键时使用如下方案,只对id做索引即可
@PrePersist
private
void changeMutiId()
{
this.id =username.concat(MongoConnectionProvider.mutiSplite).concat(remarkeduser);
}
其中少于3个字符串进行连接时使用String.concat ()(参考http://www.blogjava.net/javagrass/archive/2010/01/24/310650.html)
(2) 使用morphia @id标记id作为主键,替代mysql主键唯一功能
其他mongo常见问题处理见如下链接:
http://blog.chinaunix.net/uid-25046147-id-3307269.html
/article/6924475.html
http://www.csdn.net/article/2012-11-15/2811920-mongodb-quan-gong-lue
mongo监控详解见:
/article/5046151.html
——————————————————————————分割线————————————————————————————————————————
性能测试结果:(Intel(R) Xeon(R) CPU 2.13GHz ,内存:4139668 kB,64位)
数据库类型 | 方式 | 总发送请求数 | 失败数 | 请求完成时长 | 成功数 | 总实时长 | 每秒完成数 | 备注 |
mysql | 1w线程,每个线程发送一个请求 | 10000 | 30 | 438445 | 9970 | 2044085567 | 22.73945421 | |
mysql | 1w线程,每个线程发送一个请求 | 10000 | 2 | 477269 | 9998 | 2454643298 | 20.94835407 | |
mysql | 1w线程,每个线程发送一个请求 | 10000 | 0 | 474742 | 10000 | 2435421335 | 21.0640727 | |
mysql | 1w线程,每个线程发送一个请求 | 10000 | 1998 | 470127 | 8002 | 2464373239 | 17.02093264 | |
20.4432034 | 平均值 | |||||||
Mongo | 1w线程,每个线程发送一个请求 | 10000 | 0 | 38234 | 10000 | 197587486 | 261.5473139 | |
Mongo | 1w线程,每个线程发送一个请求 | 10000 | 0 | 36083 | 10000 | 189222119 | 277.1388188 | |
Mongo | 1w线程,每个线程发送一个请求 | 10000 | 0 | 35633 | 10000 | 188300176 | 280.6387338 | |
Mongo | 1w线程,每个线程发送一个请求 | 10000 | 0 | 36091 | 10000 | 186487906 | 277.0773877 | |
Mongo | 1.5W线程,每个线程发送一个请求 | 15000 | 0 | 52699 | 15000 | 408320029 | 284.6353821 | |
Mongo | 1.5W线程,每个线程发送一个请求 | 15000 | 0 | 55762 | 15000 | 434557476 | 269.0003945 | |
Mongo | 2W线程,每个线程发送一个请求 | 20000 | 0 | 72272 | 20000 | 748674330 | 276.7323445 | |
Mongo | 2W线程,每个线程发送一个请求 | 20000 | 0 | 71541 | 20000 | 752411949 | 279.5599726 | |
Mongo | 3W线程,每个线程发送一个请求 | 30000 | 0 | 105877 | 30000 | 1647957984 | 283.3476581 | |
Mongo | 3.8W线程,每个线程发送一个请求 | 38000 | 0 | 133790 | 38000 | 2649965141 | 284.0272068 | |
Mongo | 3.8W线程,每个线程发送一个请求 | 38000 | 0 | 131343 | 38000 | 2589511742 | 289.3188065 | |
Mongo | 3.85W线程,每个线程发送一个请求 | 38500 | 0 | 135422 | 38500 | 2722163808 | 284.2964954 | |
278.9433762 | 平均值 |
结论:登陆时,mongo比mysql快一个数量级 Mongo 并发线程峰值数由于数据准备不齐全导致还没有测到当前是38500,mysql基本稳定在10000 |
相关文章推荐
- openfire mysql 转mongo 注册行为性能测试及其他
- paip.提升性能---mysql 性能 测试以及 参数调整.txt
- paip.提升性能---mysql 性能 测试以及 参数调整.txt
- 通过分区(Partition)提升MySQL性能
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试
- [原创]MySQL中MyISAM引擎和Heap引擎执行速度性能测试
- 反驳"MySQL InnoDB (不行)的性能问题",千万级别记录来测试说明
- 通过分区(Partition)提升MySQL性能
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试
- [原创]MySQL中MyISAM引擎和Heap引擎执行速度性能测试
- mysql 优化系列(一) Mysql数据库引擎性能测试
- MySQL两种表存储结构MyISAM和InnoDB的性能比较测试
- [转]通过分区(Partition)提升MySQL性能
- [转]通过分区(Partition)提升MySQL性能
- 通过分区(Partition)提升MySQL性能
- MySQL5.1新特性翻译系列 - 通过分区(Partition)提升MySQL性能
- MySQL两种表存储结构MyISAM和InnoDB的性能比较测试
- 【原创】MySql的Query和Insert性能测试
- 通过分区(Partition)提升MySQL性能