Answer
A commonly used starting point is roughly 1.5x the number of logged-in users for the MaxClients (Linux) / ThreadsPerChild (Windows) value — these two settings behave differently per platform: on Linux, MaxClients is the value you actually configure (via the Applications installer), and ThreadsPerChild/ThreadLimit are derived from it automatically; on Windows, ThreadsPerChild is the direct configurable parameter instead. Whatever value you set as the ceiling, be aware that Streams reserves roughly 75% of it for web-socket connections (each logged-in user consumes one web-socket connection for Streams), leaving only the remaining 25% for all other HTTP traffic — so undersizing this value can starve ordinary request traffic even if Streams-specific connections aren't the immediate symptom you're chasing.