Currently, the limit on memory quota is the maximum of the following 2 numbers:
- 80% of total available memory
- Total available memory less 1GB
This works OK for total available memory <= 5-8 GB. But once the total available memory hits 20 GB and more, it's clear that expecting ns_server, couchdb, XDCR, projector not to mention query and the operating system to fit within 1 GB is expecting too much. In addition the services that have a quota can't always keep to the quota. It's pretty clear that allowing users to configure 99 GB of quota on a 100 GB system is not a great idea.
One could argue that we should give control to users as they should know what they're doing. However, even if the system appears to work, the fact is that systems configured with very little spare memory on top of the quota are likely to be in swap and hit issues at some point. We should give better guidance to users.