@Gargron are you getting tons of requests at once?

From what I see your server doesn't have any limits on concurrent http handlers and you load load a lot of data, instantiate the decoder and so on. All that before you even get to the processing part.

I recommend you use a semaphore at the beginning of your handler or a http framework that can limit concurrent connections.

Let's say the pool can process 5 req/s but you get 15 http reqs/s. Then your memory fills up.