Sri Harsha Vardhan Reddy
Chevuru
Student-Id: 010277104
Web Server Software Architectures
Daniel A. Menascé , George Mason University
menasce@cs.gmu.edu
One of the important
features affecting the website’s scalability is the Web server software architecture.
Software architecture schemes are broadly characterized in two dimensions: the
processing model and the pool size behavior.
Processing models generally
are generally characterized as
- Process-based model: It consists of multiple single-threaded processes
each handling one request at a time. It is stable i.e. crash of one
process doesn’t affect the other. In the event of crash a process needs to
be killed and restarted which leads to excess address space usage and also
the context switching overhead in case of high volume websites.
- Thread-based model: It consists of single multithreaded server in
which each thread handles one request at a time. As new threads doesn’t
need additional address space, spawning threads is much more efficient
than forking the process. A single malfunctioning thread can bring entire
web server down.
- Hybrid model: In this architecture, p processes exist where
each process handles n threads each. Incase of a thread failure the
process of that thread comes down whereas (p-1)*n threads perform usual
functions. This model overcomes the disadvantages of above processes.
Pool-Size behavior is again
characterized as static and dynamic.
- In static pooling,
the fixed number of processes or threads is created during the startup
time. As the arrival rate of requests increases the queue length also
increases and if the server load is low then the processes or threads will
be idle.
- In dynamic spooling,
the number of processes and threads varies as a result the pool size is
also varying in order to process more or less number of requests depending
on the server load. In order to reduce the amount of lost or unusable
memory that accumulates through memory leaks a process’s lifetime is
limited.
Performed of a Web server
can be monitored by using parameters like
- Service time: Total time which a request spends in a
physical resource level.
- Physical contention: Total time a request spends waiting to use web
server’s resources.
- Software contention: Total time a request spends in queue waiting for
a thread or process to free to handle the request.
In order to evaluate the
architecture’s performance characteristics, the results of a combined Markov
chain model and Queuing Network (QN). The QN model computes the web server’s
throughput and the Markhov chain model is used to represent the software
architecture.
The average number of idle
processes is directly a function of the average arrival rate of the requests.
Finally, it is said that
software contention and architectures plays an important roles in affecting the
Web server’s performance.
Strengths:
- The hybrid architectural
model discussed is a very practical architecture that has real time
applications.
- Importance given to
software contention in deciding web server’s performance.
- Memory leaks are also
stressed and looked upon.
Weakness:
- The steps in order to
minimize the software contention (which is also one of the main features
affecting Web server performance) are not discussed.
- Nothing is discussed about
the restoration of activities performed by the thread that crashes in the
Hybrid model.
- In dynamic spooling,
varying the number of processes is difficult certain times.
- The context switching
between processes in hybrid model is still not negligible.
Critical Questions:
- What is the installation
cost of a hybrid architecture mentioned above?
- What if the parent process
crashes in dynamic spooling?
- Does only software
contention affects the web server’s performance?