HTML and CSS Reference
Table 8-2. Capacity Planning Checklist
Identify the typical size of data your WebSocket server
will send to your clients.
Identify the rate of message delivery. For example,
whether your application requires slow delivery (such
as human-generated chat messages) or rapid delivery
(such as machine-generated messages like up-to-date
positioning of multiple airplanes).
Identify the number of clients that will connect to your
server at the same time.
Determine whether all (or most) clients receive the
same data or if each client receives unique data.
Identify limitations or possible performance
enhancements from the server software (for example,
the Java Virtual Machine).
Determine memory requirements based on message
size and delivery rate.
Identify the network requirements for the network
interface card (NIC), as well as the requirements if
you're using virtual server with software NICs.
Identify the bandwidth and latency requirements
for your servers' connections to the Internet.
Determine how the user will use the application,
such as whether information transmitted to one
device must be continually updated on all the user's
Alternatively, there are a number of cloud-based WebSocket service offerings
available that essentially eliminate the need for a WebSocket developer to consider
capacity planning. The service providers take responsibility for ensuring sufficient
capacity is available to their customers, allowing the elastic scaling of the deployed
As you know, WebSocket servers hold many connections open at the same time. You
should be aware that if you run a server without changing any operating system settings,
you probably would not be able to maintain more than a few thousand open sockets.
You'll see errors reporting that you cannot open any more files, even if there are plenty
of CPU and memory resources available. (Remember, in UNIX, just about everything is a