
18
第
1
章
扩展数据库驱动的网络应用在演变、成熟过程中可以选择不同的途径。一些方案
会选择联合横跨多个主数据库的数据,它们可能将数据库划分成集群,或者选择
用各种数据缓存的方式来降低数据库层的负载。而另外一些可能采用一种混合的
方式,使用所有这些扩容的方法。本书不打算成为一本关于数据库扩展的专著,
而是一个帮助你想出适合自己环境的规划和预测方法的指南。
用系统统计表呈现问题
服务器统计数据仅描述了你系统健康状态的一部分。就刻画使用情况方面来看,
服务器统计数字没有太大意义,除非它们能够联系实际的网站度量指标。这也使
你应当知道如何随时间变化跟踪容量。
例如,知道你的网站服务器每秒正处理
X
个请求是很容易的,但应了解这每秒的
X
个请求对用户意味着什么会更好。可能每秒
X
个请求代表着
Y
个用户正同时使
用该网站。
最好知道,哪些是
Y
个同时用户,
A
%
是现场直播的事件,
B
%
是上传照片
/
视频,
C
%
的人在激烈的论坛话题上发表评论,还有
D
%
的人在等待送披萨人到来的时候
随意地在网站
/
移动
App
周围乱点。随着时间的推移测量这些用户度量是第一步。
比较和绘制
Web
服务器每秒单击次数与这些用户交互度量之间的关系,最终会得
到给用户提供服务需要哪些成本。在前面的示例中,在应用程序中生成注释的能
力可能比浏览站点时消耗更多的资源,但比上传照片消耗要少。了解哪些功能比
其他功能更重要,这给了你决定规划过程中优先关注哪些方面的上下文。这些意
见也有助于推动任何技术采购的理由。一个经典的例子是在推特转发功能。某个
名人转发由于大扇出导致服务压力过大(相当于大量的追随者,截至 ...