Information Technology Reference
In-Depth Information
The single-machine web server is a very common configuration for web sites and ap-
plications. Itissufficient formanysmall applications, butitdoeshavelimits. Forexample,
it cannot store or access more data than can fit on a single machine. The number of simul-
taneous users it can service is limited by the capacity of the machine's CPU, memory, and
I/O capacity.
The system is also only as reliable as one machine can be. If the machine crashes or
dies, web service stops until the machine is repaired. Doing maintenance on the machine
is also difficult. Software upgrades, content changes, and so on all are disruptions that may
require downtime.
As the amount of traffic received by the machine grows, the single-machine web server
may become overloaded. We can add more memory, more disk, and more CPUs, but even-
tually we will hit the limits of the machine. These might be design limits that dictate the
hardware'sphysicalconnections(numberofphysicalslotsandports)orinternallimitssuch
as the amount of bandwidth on the internal interconnections between disk and memory.
Wecan purchase alarger,more powerful machine, butwewill eventually reach limits with
that, too. As traffic grows, the system will inevitably reach a limit and the only solution
will be to implement a different architecture.
Anotherproblemhastodowithbufferthrashing.Modernoperatingsystemsusealloth-
erwise unused memory as a disk cache. This improves disk I/O performance. An operating
system can use many different algorithms to tune the disk cache, all having to do with de-
ciding which blocks to discard when memory is needed for other processes or newer disk
blocks. For example, if a machine is running a web server, the OS will self-tune for the
memory footprint of the web server. If a machine is running a database server, the OS will
tune itself differently, possibly even selecting an entirely different block replacement al-
gorithm.
The problem is that if a machine is running a web server and a database server, the
memory footprint may be complex enough that the operating system cannot self-tune for
the situation. It may pick an algorithm that is optimal for only one application, or it may
simplygiveupandpickadefaultschemethatisnon-optimalforall.Attemptsatimproving
this include Linux “containers” systems like LXC and Lmctfy.
Search WWH ::




Custom Search