1. An apparatus comprising: at least one processor; a memory coupled to the at least one processor; a server application residing in the memory and executed by the at least one processor, the server application comprising: a keep-alive mechanism that keeps a connection to a client open according to a defined keep-alive specification; and a keep-alive adjustment mechanism that monitors number of clients and average number of requests per client for the server application, automatically enables the keep alive mechanism when the number of clients is in excess of a first predetermined threshold, automatically enables the keep alive mechanism when the number of requests per client is in excess of a second predetermined threshold, automatically disables the keep alive mechanism when the number of clients is below the first predetermined threshold and the average number of requests per client is below the second predetermined threshold, sets the keep-alive specification to a minimal value when the number of clients is above the first predetermined threshold and the average number of requests per client is below the second predetermined threshold, sets the keep-alive specification to a maximum value when the number of clients is below the first predetermined threshold and the average number of requests per client is above the second predetermined threshold, and sets the keep-alive specification to a midrange value between the minimal value and the maximum value when the number of clients is above the first predetermined threshold and the average number of requests per client is above the second predetermined threshold.