我有两个MySQL托管的具体案例。
1)我有一个例子,即我有2000多个并发用户使用单个MySQL数据库。他们不是简单的网络用户,而是实际的业务用户,他们需要连接、写入和阅读大约8-9个办公时间。MySQL服务器(处理器、内存、CPU数量等)的规格应该是什么?双四核Xeon 5500系列是否足够?或者我可以使用Xeon 3400系列吗?额外的记忆有帮助吗?有人建议聚在一起!有必要吗?
2)我必须为一个客户建立大约300个网站的托管服务。他们预计在300个MySQL数据库之间大约有3000到6000名并发用户。服务器的理想配置应该是什么,还是应该将负载分配给多个服务器?
3)增加更多的内核是否有助于MySQL,还是原始CPU的速度更重要?
欢迎咨询
发布于 2011-04-20 22:57:02
问题1-这取决于他们整天写和读什么,数据量,应用程序的性质(S),数据库等。
如果“业务用户”指的是支持2000用户使用的内部业务应用程序的数据库服务器(例如,呼叫中心CRM应用程序支持响应时间至关重要的2000座位),那么一台拥有尽可能多RAM和智能磁盘安排的相当强大的机器可能会完成这项工作,但没有人能够根据您提供的信息提供具体建议。
在您的业务应用程序中有几个写得不好的查询,或者缺少维护(索引、存储管理等)。没有多少服务器基础设施能够使系统运行良好。
与所有数据库支持的系统一样,一切都取决于所需的用例和最慢的响应时间,而不影响业务需求--以报告/读取为中心的操作的要求与OLTP环境有很大不同。在你开始买锡之前,你需要弄清楚压力首先会发生在哪里。集群很好,但是需要对您所服务的MySQL和应用程序环境有一个指数级的更好的理解。
问题2-单独的数据库可以放在不同的服务器上。我们在消费网络托管环境中,我们运行150到300个数据库每盒(标准双处理器if 380‘S,如果我记得的话。)这是几年前的事了。)根据负载要求,执行大容量的数据库被移动到不同的框中。与任何DB服务器一样,负载的RAM和智能磁盘管理是您的朋友。
问题3-多个核为并行查询提供了额外的速度,但我记得它的回报会很快减少。同样,它取决于查询的类型和DB的结构。简单地说,正常使用OLTP数据库绑定CPU的可能性很小--通常是IO绑定,这取决于缓存的效率、磁盘的结构(读写的独立通道)以及数据的存储和检索方式(有效的索引、查询等等)。如果给我一个更快的CPU和更多的内核之间的选择,我会买一桶RAM,花大部分时间在磁盘布局的问题上:)
编辑:除了大量的材料和案例研究的mysql性能在线提供,高性能MySQL书籍是一个很好的起点.
https://serverfault.com/questions/261895
复制相似问题