Hi All,
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?
CentOS7.1
Look at the file /etc/security/limits.conf
For documentation, 'man limits.conf'
- Thomas
CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
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
I located the service file for postgresql-9.4
[root@db1 multi-user.target.wants]# locate postgresql-9.4.service /etc/systemd/system/multi-user.target.wants/postgresql-9.4.service /usr/lib/systemd/system/postgresql-9.4.service
I've edited /etc/systemd/system/multi-user.target.wants/postgresql-9.4.service and added
LimitSTACK=12288
to the [Unit] section of the service file.
systemctl daemon-reload systemctl restart postgresql-9.4
I'm still getting the same errors when I try to start my service...
Aug 17 08:23:58 db1 pg_ctl[16839]: < 2015-08-17 08:23:58.533 BST >LOG: invalid value for parameter "max_stack_depth": 10240 Aug 17 08:23:58 db1 pg_ctl[16839]: < 2015-08-17 08:23:58.533 BST
DETAIL: "max_stack_depth" must not exceed 7680kB.
I have tried moving the 'LimitSTACK=12288' to other sections of the service file, when I do I don't get my error from postgresql I see this in /var/log/messages
Aug 17 08:38:47 db1 systemd: Reloading. Aug 17 08:38:47 db1 systemd: [/usr/lib/systemd/system/dm-event.socket:10] Unknown lvalue 'RemoveOnStop' in section 'Socket' Aug 17 08:38:47 db1 systemd: [/usr/lib/systemd/system/lvm2-lvmetad.socket:9] Unknown lvalue 'RemoveOnStop' in section 'Socket' Aug 17 08:38:49 db1 systemd: Starting PostgreSQL 9.4 database server... Aug 17 08:38:49 db1 kernel: postgresql94-ch[3021]: segfault at 7ffcd1a28f30 ip 00007f116054c79e sp 00007ffcd1a28f30 error 6 in libc-2.17.so[7f1160458000+1b6000] Aug 17 08:38:49 db1 systemd: postgresql-9.4.service: control process exited, code=killed status=11 Aug 17 08:38:49 db1 systemd: Failed to start PostgreSQL 9.4 database server. Aug 17 08:38:49 db1 systemd: Unit postgresql-9.4.service entered failed state.
Hi All,
On the PostgreSQL mailing list I've been pointed to this URL; https://ma.ttias.be/increase-open-files-limit-in-mariadb-on-centos-7-with-sy...
I've created a directory (I tried changing the 9.4 to 9-4 also)
/etc/systemd/system/postgresql-9.4.service.d /etc/systemd/system/postgresql-9-4.service.d
created a 'limits.conf' file inside this directory containing [Service] LimitSTACK=12288
and I'm unable to restart the service still...
I see the same errors as above when I run systemctl status postgresql-9.4 -l.
any more suggestions?!
I have created a new directory /etc/systemd/system/postgresql-9.4.service.d
restorecon -Frv /etc/systemd/system/postgresql-9.4.service.d
I created a limits.conf
I have tried to add this with no section - LimitSTACK=12288
output: Aug 17 11:18:41 db1 systemd: [/usr/lib/systemd/system/dm-event.socket:10] Unknown lvalue 'RemoveOnStop' in section 'Socket' Aug 17 11:18:41 db1 systemd: [/etc/systemd/system/postgresql-9.4.service.d/limits.conf:1] Assignment outside of section. Ignoring. Aug 17 11:18:41 db1 systemd: [/usr/lib/systemd/system/lvm2-lvmetad.socket:9] Unknown lvalue 'RemoveOnStop' in section 'Socket'
the [Unit] section - [Unit] LimitSTACK=12288
output: Aug 17 11:20:06 db1 systemd: [/usr/lib/systemd/system/dm-event.socket:10] Unknown lvalue 'RemoveOnStop' in section 'Socket'
Aug 17 11:20:06 db1 systemd: [/etc/systemd/system/postgresql-9.4.service.d/limits.conf:2] Unknown lvalue 'LimitSTACK' in section 'Unit'
Aug 17 11:20:06 db1 systemd: [/usr/lib/systemd/system/lvm2-lvmetad.socket:9] Unknown lvalue 'RemoveOnStop' in section 'Socket'
the [Service] section - [Service] LimitSTACK=12288
output: Aug 17 11:21:55 db1 systemd: [/usr/lib/systemd/system/dm-event.socket:10] Unknown lvalue 'RemoveOnStop' in section 'Socket' Aug 17 11:21:55 db1 systemd: [/usr/lib/systemd/system/lvm2-lvmetad.socket:9] Unknown lvalue 'RemoveOnStop' in section 'Socket'
and the [Install] section - [Install] LimitSTACK=12288
output: Aug 17 11:23:23 db1 systemd: Reloading. Aug 17 11:23:23 db1 systemd: [/usr/lib/systemd/system/dm-event.socket:10] Unknown lvalue 'RemoveOnStop' in section 'Socket' Aug 17 11:23:23 db1 systemd: [/etc/systemd/system/postgresql-9.4.service.d/limits.conf:2] Unknown lvalue 'LimitSTACK' in section 'Install' Aug 17 11:23:23 db1 systemd: [/usr/lib/systemd/system/lvm2-lvmetad.socket:9] Unknown lvalue 'RemoveOnStop' in section 'Socket'
By the errors I will assume that it should be in the [Service] section. I couldn't find confirmation of this online...
When I start postgresql-9.4
Aug 17 11:25:15 db1 systemd: Starting PostgreSQL 9.4 database server... Aug 17 11:25:15 db1 kernel: postgresql94-ch[3762]: segfault at 7fffe1f35380 ip 00007f9ccebec79e sp 00007fffe1f35380 error 6 in libc-2.17.so[7f9cceaf8000+1b6000] Aug 17 11:25:15 db1 systemd: postgresql-9.4.service: control process exited, code=killed status=11
Jason, you mentioned that you have made this change for nfs-secure, I tried making the changes directly to the service file but received all of the above errors, I followed the instructions at the to of the file, created
/etc/systemd/system/postgresql-9.4.service containing
.include /lib/systemd/system/postgresql-9.4.service [Service] LimitSTACK=12288
and I still see the same errors
Aug 17 11:31:39 db1 kernel: postgresql94-ch[3800]: segfault at 7ffda4ca67d0 ip 00007fe592ef479e sp 00007ffda4ca67d0 error 6 in libc-2.17.so[7fe592e00000+1b6000] Aug 17 11:31:39 db1 systemd: postgresql-9.4.service: control process exited, code=killed status=11
Can anybody else make any suggestions?
thanks in advance,
Michael