The problem here is caused by "nproc" ulimit, not "nofile". Since we use the same "apache" user for both httpd and rados-gw in CentOS, then on a powerfull hardware puppet would set high values for apache workers and wsgi processes/threads. So when you try to start any new process under "apache" user (like rados-gw), you will hit "nproc" ulimit right away:
# /etc/init.d/ceph-radosgw start
Starting radosgw instance(s)...
runuser: cannot set user id: Resource temporarily unavailable
Starting client.radosgw.gateway... [FAILED]
/usr/bin/radosgw is not running.
# su - apache
su: cannot set user id: Resource temporarily unavailable
This problem does not affect httpd itsef, because it sets high nproc value:
The problem here is caused by "nproc" ulimit, not "nofile". Since we use the same "apache" user for both httpd and rados-gw in CentOS, then on a powerfull hardware puppet would set high values for apache workers and wsgi processes/threads. So when you try to start any new process under "apache" user (like rados-gw), you will hit "nproc" ulimit right away:
# /etc/init. d/ceph- radosgw start radosgw. gateway. .. [FAILED]
Starting radosgw instance(s)...
runuser: cannot set user id: Resource temporarily unavailable
Starting client.
/usr/bin/radosgw is not running.
# su - apache
su: cannot set user id: Resource temporarily unavailable
This problem does not affect httpd itsef, because it sets high nproc value:
# grep processes /proc/$(pgrep -P 1 httpd)/limits
Max processes 14865 14865 processes
So I agree with Sergii - using a saparate user for rados-gw in ubuntu and centos would be the best solution here.