[CentOS] persistent change of max_stack_depth

Thomas Eriksson
2015-08-14T16:30:37Z

On Aug 14, 2015 08:45, Jason Warr <jason at warr.net>
wrote:
>
> On Fri, 2015-08-14 at 16:31 +0100, Michael H wrote:
> > Hi Thomas,
> >
> >
> > > Could anybody point me in the right direction for setting the
kernel
> > > parameter, max_stack_depth, to 10240 for database tuning?
> > >
> > > I have currently set it by running 'ulimit -s 10240' but
this does not
> > > survive a reboot.
> > >
> > >
> >
> > Thanks for the response, I've been nosing around that file
recently but
> > noted the first two lines;
> >
> > #This file sets the resource limits for the users logged in via PAM.
> > #It does not affect resource limits of the system services.
> >
>
> What CentOS version?
>
> > > Look at the file /etc/security/limits.conf
> > >
> > > For documentation, 'man limits.conf'
> > >
> >
> > I added these two lines to the end of the file
> >
> > *?????????????? soft??? stack?? 12288
> > *?????????????? hard??? stack?? 12288
> >
> > in an attempt to set the stack depth to 12MB so that I can configure
> > postgresql max_stack_depth = 10MB.
> >
> > I rebooted, ulimit -s shows 12288.
> >
> > When I restart my service (#It does not affect resource limits of the
> > system services.) becomes apparent.
> >
> > Aug 14 16:22:17 db1 pg_ctl[3177]: < 2015-08-14 16:22:17.839 BST
>LOG:
> > invalid value for parameter "max_stack_depth": 10240
> > Aug 14 16:22:17 db1 pg_ctl[3177]: < 2015-08-14 16:22:17.839 BST
>DETAIL:
> >?? "max_stack_depth" must not exceed 7680kB.
> > Aug 14 16:22:17 db1 pg_ctl[3177]: < 2015-08-14 16:22:17.839 BST
>HINT:
> > Increase the platform's stack depth limit via "ulimit
-s" or local
> > equivalent.
> >
> > So, I then run 'ulimit -s 12288' and still can't restart
my service.
> >
> > How can I increase stack depth for system processes, not just PAM
> > authenticated users?
> >
>
> If this is CentOS 7 then you may need to put the ulimit directives in the
service file.
>
> An example is I needed to increase the NOFILE limit for nfs-secure on a
Fedora 20 machine so I set
>
> LimitNOFILE=16384
>
> In /etc/systemd/system/nfs-secure.service
>
>

Jason is probably on the right track here.

If it's centos 6 stick 'ulimit -s' in the init script
If it's centos 7 use LimitSTACK= in the service file

-Thomas