Short paper on your servers performance

Assignment Help Computer Engineering
Reference no: EM13320843

Web Server

Your server will have to do a few different things. First, it will need to bind to a port specified as a command line argument. After successfully doing this, it must listen for incoming client connections and accept them. (Hint: all of the highlighted words are the names of system calls used to do these things).

The server will need to fork() a new process for each connection that it is handling. It is not quite this simple though. If you simply keep forking new processes, when the client closes its connection, you will end up with a zombie process. These zombie processes will build up and slowly eat up your machine's resources. Obviously, this isn't good.

To remedy this, you should write a signal handler for the SIGCHLD signal to properly dispose of zombified children (hehe).

After the new process has been created, the server is responsible for reading data from the client (recv) and parsing it as an HTTP request. We are only concerned with GET requests. Remember that handy dictionary you wrote in A1? That'll be really useful here, since HTTP headers are a key/value data structure.

Now that the GET request has been parsed, you can look up the file that is being requested. If the server can locate the file, it should form an appropriate response header and serve file back to the client with a 200 response code. If it can't find it, it should return a 404 response code. If there is some other kind of error, just throw a 500 response code.

Note that you should support enough of the HTTP protocol to allow a web browser to navigate to the port your server is running on and successfully get a file. This article should help you with that.

Profiling Your Server

After you have a working server (or before, doesn't really matter), you should write a client program to test your web server and gather various statistics on its performance. The statistics you collect are really up to you, but I recommend testing throughput (requests/second), the length of an average successful request vs. an unsuccessful one, and request time vs. file size. You can write the client in any language. Merry Christmas.

After you have gathered a solid amount of statistics, you should write a short paper on your server's performance. Point out bottlenecks and analyze the data that you've gathered, as well as coming up with a few suggestions on how you may be able to increase performance. This doesn't have to be a thesis, but it should be a solid analysis of what you've done.

https://github.com/funkenstein/WMU-CS2240

Reference no: EM13320843

Questions Cloud

What is the minimum coefficient of static friction : What is the minimum coefficient of static friction between the road and the tires on a car for the car to go around a flat curve at 45.0 mph
Determine what is the gage pressure in chamber a : Two chambers, A and B both have manometers with the same fluid with specific gravity 1.4. When h(sub a) = 6 cm and h(sub b) = 4 cm, what is the gage pressure in chamber A
What is the tension in the left-handed cable : A mass M is suspended using two cables which make angles of theta_1 and theta_2 with the horizontal across the top. What is the tension (T_1) in the left-handed cable
Analyse the supply and demand of labor in the country : Analyze the supply and demand of labor in the country
Short paper on your servers performance : A solid amount of statistics, you should write a short paper on your server's performance. Point out bottlenecks and analyze the data that you've gathered, as well as coming up with a few suggestions on how you may be able to increase performance
What is the minimum speed at the top of the circle : A 0.250 kg ball attached to a string s being swung in a vertical circle, What is the minimum speed at the top of the circle to keep the string from going slack
Calculate the required average strength fc for the concrete : Calculate the required average strength fc for the concrete ( a) if there are no prior test results for concrete with a compressive strength within 1000 psi of fc made with sim-ilar materials.
Calculate the amount the spring compresses : An elevator cable breaks when a 975 kg elevator is 24.5 m above the top of a huge spring (k = 8.00 x 10^4 N/m) at the bottom of the shaft. Calculate the amount the spring compresses
How is jainism different from buddhism : How is Jainism different from Buddhism? theological as well as historical similarities and differences between these two religions with special emphasis on their respective origins, goals, central teachings, and religious practices

Reviews

Write a Review

Computer Engineering Questions & Answers

  Mathematics in computing

Binary search tree, and postorder and preorder traversal Determine the shortest path in Graph

  Ict governance

ICT is defined as the term of Information and communication technologies, it is diverse set of technical tools and resources used by the government agencies to communicate and produce, circulate, store, and manage all information.

  Implementation of memory management

Assignment covers the following eight topics and explore the implementation of memory management, processes and threads.

  Realize business and organizational data storage

Realize business and organizational data storage and fast access times are much more important than they have ever been. Compare and contrast magnetic tapes, magnetic disks, optical discs

  What is the protocol overhead

What are the advantages of using a compiled language over an interpreted one? Under what circumstances would you select to use an interpreted language?

  Implementation of memory management

Paper describes about memory management. How memory is used in executing programs and its critical support for applications.

  Define open and closed loop control systems

Define open and closed loop cotrol systems.Explain difference between time varying and time invariant control system wth suitable example.

  Prepare a proposal to deploy windows server

Prepare a proposal to deploy Windows Server onto an existing network based on the provided scenario.

  Security policy document project

Analyze security requirements and develop a security policy

  Write a procedure that produces independent stack objects

Write a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

  Define a suitable functional unit

Define a suitable functional unit for a comparative study between two different types of paint.

  Calculate yield to maturity and bond prices

Calculate yield to maturity (YTM) and bond prices

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd