About Database Connection Pool Sizing
Why is that Oracle instance using a max thread pool size of 2048 on a 12-core host? That seems like the real problem. Why not configure a smaller thread pool like cores * 2, and do more queuing on the server?<p>It seems wrong IMO to expect <i>clients</i> to tune connection pools based on how much concurrency they think a server can productively handle. The client doesn&#x27;t necessarily know how many cores the server has, or more importantly, how many other clients are connected.<p>In HTTP&#x2F;2, clients can configure a maximum number of streams (SETTINGS_MAX_CONCURRENT_STREAMS), and the RFC recommends setting it &quot;no smaller than 100&quot;. If servers worked on all pending requests concurrently, a value of 100 would be unreasonably large. But the implicit expectation is that servers will decide for themselves how many requests to process concurrently, and queue the rest. In other words, SETTINGS_MAX_CONCURRENT_STREAMS is intended to limit the server&#x27;s queue size, not its thread pool size.