Na verdade, eu escrevi um livro de receitas de chef particular que é usado para definir ulimit para nós e funciona muito bem. Para o ubuntu, descobrimos o seguinte truque, se você quiser uma configuração ulimit global:
Adicione o seguinte à sua sessão comum:
session required pam_limits.so
e no limit.conf, você deve ter o seguinte:
* soft nofile 64000
* hard nofile 65000
root soft nofile 64000
root hard nofile 65000
A parte raiz é importante, pois parece que algum script init não funcionará corretamente. Portanto, temos um livro de receitas do chef que define o seguinte e funciona muito bem.
Outra opção que costumávamos usar para o Tomcat era implantar o Tomcat e substituir o script init por um costume para o qual definiríamos o ulimit e reiniciaríamos o tomcat. Isso funciona muito bem, mas é um pouco mais hacky do que o primeiro.
Espero que isso ajude, e talvez um dia eu possa abrir código-fonte do livro de receitas que temos internamente, já que é bastante simples, mas pode ser útil para outras pessoas como você.