I am running some tests simulating a large number of client connections from the same machine to a LightStreamer server on another machine (300 connections on each machine, maximum is 3000 connections).

Using the .NET client API, it looks like each connection made from the client machine to server uses around 4 threads. Running 300 clients on the same machine will there take up around 1200 threads - all of them switching and competing for processor cycles.

Furthermore, in this setup (with private messages being delivered to each client 10 times/second up to 50/times second), I get out of memory exceptions in the log (on the client), even when having 300 clients with 10 updates/second (3000 messages/second from server to client machine).

Memory consumption on the client machine seems to be ok and CPU utilization is fairly low, BUT we have spikes of 100% CPU usage and when this happens, the CPU usage stays there - and the clients do not seem to get anymore messages from the server.

Any comments or ideas why we see this?