分享

openfire 登陆 mysql转mongo性能测试及性能提升

 WindySky 2016-03-14

登陆要修改的表:

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./javagrass/archive/2010/01/24/310650.html)

(2)  使用morphia @id标记id作为主键,替代mysql主键唯一功能

 

其他mongo常见问题处理见如下链接:

http://blog./uid-25046147-id-3307269.html

http://opsmysql.blog.51cto.com/2238445/1083431

http://www.csdn.net/article/2012-11-15/2811920-mongodb-quan-gong-lue

mongo监控详解见:

http://www.cnblogs.com/zhuque/archive/2013/03/29/2988577.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


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多