注意:我是一名自学成才的PHP开发人员,他几乎没有任何pipe理Web和数据库服务器的经验。
我即将为一个非常大的用户群编写一个基于Web的考勤系统。 我希望大约有1000到1500个用户同时login,每10秒钟至less发一个请求,每天3次,每次30分钟。 因此,每秒100个请求或者最差的1000个请求(每个请求的平均时间为16个并发请求),但是由于用户发出这些请求的时间很短,所以它可能会更高。 )。
我期望两种types的交易, local (不是指localnetworking)和foreign交易。 local交易基本上在本地下载用户数据并caching1到2周。 出席equests可能只有两个数字string: userid和eventid 。 foreign交易是为了不属于当地的人出席。 这将传递以下数据:( (numeric) locality_id , (string) full_name 。 这两个请求都是在Ajax中完成的,所以没有包含HTML数据,只有JSON。 这两种请求都至less需要来自服务器的单个数字响应。 我认为local和foreign交易的频率会有50-50倍的差距,但是这些交易的规模只有几个字节的差异。
截至此刻, userid只能达到6位数, eventid位也是4至5位整数。 我期望我的users表至less有400k行, event表有多达10k行,一个locality表至less有1500行,而我的主要出勤表增加了400k行(根据用户数量在users表中)每周3天一天(每周120万行)。
对我来说,这听起来很大。 但是这真的很大吗? 或者这可以由一个单一的服务器处理(不知道服务器的规格,因为我可能会利用VPS从ServInt或其他人)? 我试图读取多个服务器上的设置Heatbeat , DRBD ,主从设置。 但是我想知道他们是否真的有必要。 users表每周将增加约500个1k行。
如果这不能由一台服务器来处理,那么如果我select一个MySQL复制拓扑,那么这种情况下最好的设置是什么? 对不起,如果我听起来含糊或问题太广泛。 我只是不知道该问什么,或者你现在想知道什么。
我会从一些oracle / mysql白皮书开始。 他们通常会在从这个search开始的基准testing中得到相当深入的细节,您可以快速了解mysql服务器和与这种性能相关的硬件的function[前三个结果是不错的入门]。
我们有关于负载testing和容量规划的一些规范性问题
您如何为网站进行负载testing和容量规划?
你如何做数据库负载testing和容量规划?
你能帮我做一下容量规划吗?
基本上,你必须得到一些监测和应用科学的方法。