Agreed, Linux does need higher limits for servers.
Unfortunately, increasing NR_OPEN pushes up the memory overhead per task
(via struct files_struct) - using over 4K (quite a bit over 4K given how
kmalloc() works) - is a bit on the high side for most processes.
For truly dynamic limits, the structure and use of files_struct needs to be
changed. Hmmm, might give this a go...
Regards,
markhe