IRPs are not a simple thing to analogise. Think of an IRP as a "work order" document where every driver that's interested gets to write a series of instructions for what should happen when the user attempts to open a file or similar. The more drivers, the more activity, and the bigger the IRPs need to be to describe all of it. When more drivers are installed, especially those with "inspection" roles such as anti-virus, anti-malware, firewalls, and so on, space in the default-sized IRP can run low to the point where the user-requested activity is cancelled. That's the "not enough server storage..." message.
Cranking up the default size of an IRP obviously helps, and in your case you've established that somewhere between 15 and 20 is the right number for your machine and your specific combination of drivers. The reason you don't want to just crank it up to the maximum (50) and leave it there is because there can be maaaany IRPs active at any one time, and each one consumes pool memory corresponding to its size, irrespective of whether it's only 4 out of the 50 slots that are used, or all 50. (An obvious question is why don't IRPs just grow as necessary, but it doesn't work that way.)
If your system is running without errors at 20, I'd suggest you leave it there. Odds are that even 16 or 17 would have been enough, but 20 gives you a bit of overhead. Should you add a whole heap of extra drivers in the future, it's possible that you'll again start seeing the same "not enough server storage..." error, and then you just bump it up to 23 and test again. No big deal.
What confuses most folk is the wording of the error. "But, but, I've got 4GB of RAM and 500GB of space - how can I be running low on storage?!?" The difference in your case is that you looked up the error message. Have some rep