A shuffle service can serves blocks from multiple apps/tasks. Thus the shuffle service can suffers high memory usage when lots of shuffle-read happen at the same time. In my cluster, OOM always happens on shuffle service. Analyzing heap dump, memory cost by Netty(chunks) can be up to 2~3G. It might make sense to reject "open blocks" request when memory usage is high on shuffle service.