我有两个MySQL托pipe的具体情况。
1)我有一个情况,我有一个单一的MySQL数据库2000以上的并发用户。 他们不是简单的networking用户,而是真正的商业用户,他们需要连续8-9个工作时间连接写和读。 什么应该是MySQL服务器的规格,即处理器,内存,CPU数量等? 双核四核Xeon 5500系列能满足吗? 或者我可以使用至强3400系列? 多余的内存有帮助吗? 有人build议集群! 有必要吗?
2)我必须为一个客户端设置大约300个网站的托pipe服务。 他们预计在300个MySQL数据库之间大约有3000到6000个并发用户。 什么应该是服务器的理想configuration,或者我应该分担到多个服务器的负载?
3)添加更多的核心是否帮助MySQL或者是原始CPU的速度更重要?
build议欢迎
问题1 – 这取决于他们在一天中的写作和阅读,数据量,数据库所提供的应用程序的性质等。
如果是“商业用户”,则意味着这将是一个数据库服务器,支持2000个用户使用的内部业务应用程序(例如,支持响应时间至关重要的2000个座位的呼叫中心CRM应用程序),然后是具有尽可能多的RAM你可以塞进来,一个智能的磁盘安排可能会做的工作,但没有人能够提供具体的build议与上面给你的信息。
在您的业务应用程序或缺乏维护(索引,存储pipe理等),没有任何数量的服务器基础设施几个严重的书面查询将使系统运行良好。
与所有数据库支持的系统一样,一切都取决于所需的用例和最慢的响应时间,而不会影响业务需求 – 报告/读取中心操作的要求与OLTP环境有很大不同。 在开始购买锡之前,你需要弄清楚压力会在哪里发生。 集群是一切都很好,但需要对MySQL和您所服务的应用程序环境有一个指数级的更好的理解。
问题2 –单独的数据库可以在单独的服务器上。 我们在消费者的networking托pipe环境中使用了这个function,而且我们每盒运行150到300个数据库(标准的双处理器DL380,如果我回想起来,这是几年前的事情)。大数据量的数据库根据负载移动到不同的盒子要求。 与任何数据库服务器一样,RAM和智能磁盘pipe理负载是您的朋友。
问题3 –多核为并行查询提供额外的速度,但我记得它的回报速度很快。 再次,这取决于查询的types和数据库的结构。 简单地说,一个正常使用的OLTP数据库受到CPU限制的几率是相当渺茫的 – 通常是IO限制,这取决于caching的有效性,如何构build磁盘(单独的读写通道)以及数据被存储和检索(有效索引,查询等)。 如果我在更快的CPU和更多的内核之间进行select,我会购买大量的内存,并花费大部分时间在磁盘布局上苦苦挣扎。
编辑:除了大量的材料和MySQL在线性能的案例研究, 高性能MySQL书籍是一个很好的起点…