Hello everybody,
currently I'm having an open question/topic about web sockets and long polling,
which I'm not completely sure about the current handling within the Apache web
server.
The main question is about the mechanism "how websockets connections will be
handled from the Apache?".
Currently I have the following worker configuration within my Apache webserver
(worker mpm):
StartServers 80
ServerLimit 160
MinSpareThreads 25
MaxSpareThreads 250
ThreadsPerChild 50
MaxRequestWorkers 8000
MaxConnectionsPerChild 0
This allows me to accept 8000 simultaneous connections and server more then
8000 clients, because from my understand Apache takes the connection on hold
after he has proxied the request and until he get's the response. So normally
I'm able to serve more than 8000 clients, because not all send requests or get
a response simultaneously.
But then if I run a client server architecture, which uses web sockets for
communication, the socket or connection is normally hold open all the time and
from my understanding the Apache webserver is not able to take the connection
in a, let's call it, "hold state". So if I use web sockets is Apache still able
to server more then 8000 clients/connections with the configuration above, or
is he no longer able to set connections on hold when proxying websockets?
Also does Apache open one socket within the OS for each connection, because
then this would limit the usage of 65k clients on one server anyway, or are
there more connections possible?
Are there any experiences about the maximum number of web socket connections
and best practices for the Apache by using web sockets? Is it better to run
apache with the event mpm then the worker mpm within that scenario?
Thanks in advance & Best regards,
André