The root cause of performance issues is almost always a poorly configured parameter. Although more tunables and fine-grained control seem like a good idea, it is not; it often does more harm than good.
Thus, whenever you are designing and implementing a system, be empathetic and spend time deciding which param to expose and which one to hide. The consumers of your system should spend more time using your system rather than tweaking and fine-tuning it.
Leaky abstractions are always a bad idea. There are certain situations where the engineer within you needs to take a backseat and this is definitely one of them.