专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

mysql的数据量,满足1000用户需要多少设置并发连接数_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 19:50:16       共计:3634 浏览
mysql的数据量,满足1000用户需要多少设置并发连接数?

先不考虑服务器资源是否够,瓶颈会首先出现在数据库读写,假设现在有34W并发,而且根据访问性质来看应该是报名操作,而报名操作是带有数据库CRUD的,Mysql的最大连接数是2000(假设没做分库分表,5W rmb让开发商做分库分表显然是不可能的),一般用到80%就很不错了,所以连接数用1600来算。然后假设数据库能在100ms内返回(想必也不是什么好机器),那么一个连接1s能进行10次操作,那么1600连接用满,能进行1.6W次数据库操作。

但这个也只是理论上的峰值,在实际项目中,单库是绝达不到1.6W写入的,并且还是涉及到多表操作的情况下。

实际上根据《高性能MySQL》第三版 1.5小节,在如下的测试环境中

测试机器Cisco UCSC250

内存384GB

存储引擎是InnoDB

测试的数据集2.5GB

MySQL的buffer pool设置为4GB

所以在内存为384G的机器上,吞吐量不会超过8000。那么384G机器要多少钱呢?

这是64G机器的价格,因此384=64*6 6*1.8W=10.8W/年

因此,如果要并发支持到8000,光数据库就至少需要10W/Y。当然,这是假设请求在1s内返回的情况,假设我们允许服务能在5s内返回,那么此时并发能支持到4W。还是在不考虑服务器,网络损耗的情况下,实际上是远远达不到的。

所以,用5w来支持38w并发,是绝不可能的。

回到我们刚才的计算,假设数据库吞吐量到达理论峰值,能支持8000用户同时访问,如果每个客户能等待5s的化,能支持4w用户(前提是这些用户不可以同时访问,需要在5s内做到均匀分布,此时需要通过限流等手段来实现)

要支持8000用户同时访问,又需要多少个应用服务器呢?

假设我们使用tomcat服务,每个线程所占空间为8M,那么光tomcat线程就需要: 8000*8=64000=64G,当然还需要有主机内存,损耗啥的,按照一倍计算就是128G,那么需要是2*1.8W=3.6W

所以,如果需要支持4w个用户5s延时的访问,需要3.6+10.8= 14.4w rmb

这还只是服务器的钱,不算开发成本在内

那么,如果要支持38w的并发报名呢?这已经是一个相当大的并发量了,首先需要考虑的是抛弃掉一部分流量,可以在cdn就直接抛弃,或是nginx,或者直接在应用服务器上,比如在这种情况下就只能保持8000/380000 = 2%,只能有2%的请求允许进来。

可以通过nginx+redis的方式抛弃掉98%的请求,这样可以不用浪费应用服务器资源。或者直接在应用服务器上做操作,抛弃掉无法响应的请求,避免流量拖垮整个系统。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:mysql查询下周范围,大学里面需要最值得学习的软件是什么_数据库 | ·下一条:mysql查询补充字段,mysql数据库有超大的字符串字段吗_数据库

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有