Information Technology Reference
In-Depth Information
The best strategy for scaling a running system, then, is to predict problems far enough
in advance that there is enough time to engineer a proper solution. This means one should
alwaysbecollectingenoughmeasurementstobeawareofwherethebottlenecksare.These
measurements should be analyzed so that the point at which the bottleneck will become a
problem can be predicted. For example, simply measuring how much internet bandwidth
is being consumed and graphing it can make it easy to predict when the capacity of your
internet link will be exhausted. If it takes 6 weeks to order more bandwidth, then you need
to be able to order that bandwidth at least 6 weeks ahead of time, and preferably 12 weeks
ahead of time to permit one failed attempt and do-over.
Somesolutionscanbeimplementedquickly,byadjustingaconfigurationsetting.Others
require weeks or months of engineering effort to solve, often involving rewriting or repla-
cing major systems.
5.2 Scaling Up
Thesimplestmethodologyforscalingasystemistousebigger,fasterequipment.Asystem
thatrunstooslowlycanbemovedtoamachinewithafasterCPU,moreCPUs,moreRAM,
faster disks, faster network interfaces, and so on. Often an existing computer can have one
ofthoseattributesimprovedwithoutreplacingtheentiremachine.Thisiscalled scaling up
because the system is increasing in size.
Whenthissolutionworkswell,itisoftentheeasiestsolutionbecauseitdoesnotrequire
a redesign of the software. However, there are many problems with scaling this way.
First, there are limits to system size. The fastest, largest, most powerful computer avail-
ablemaynotbesufficient forthetaskathand.Noonecomputercanstoretheentire corpus
ofa web search engine orhas the CPU power to process petabyte-scale datasets orrespond
tomillionsofHTTPqueriespersecond.Therearelimitsastowhatisavailableonthemar-
ket today.
Second,thisapproachisnoteconomical.Amachinethatistwiceasfastcostsmorethan
twice as much. Such machines are not sold very often and, therefore, are not mass pro-
duced.YoupayapremiumwhenbuyingthelatestCPU,diskdrives,andothercomponents.
Finally, and most importantly, scaling up simply won't work in all situations. Buying
a faster, more powerful machine without changing the design of the software being used
usually won't result in proportionally faster throughput. Software that is single-threaded
willnotrunfasteronamachinewithmultipleprocessors.Softwarethatiswrittentospread
across all processors may not see much performance improvement beyond a certain num-
ber of CPUs due to bottlenecks such as lock contention.
Search WWH ::




Custom Search