类型: integer
默认: 100 (100kB)
最低限度: 100 (100kB)
最大: 2147483647 (2147483647kB)
单元: KB
上下文: superuser
重新开始: false

声明服务器的执行堆栈的最大安全深度。 为此设置一个参数的原因是内核强制的实际堆栈尺寸(就是ulimit -s或者局部等效物的设置) 小于安全的一兆字节左右的范围。需要这个安全界限是因为在服务器里,并非所有过程都检查了堆栈深度, 只是在可能递规的过程,比如表达式计算这样的过程里面才进行检查。缺省设置是2兆字节2MB, 这个值相对比较小,不容易导致崩溃。但是,这个值可能太小了,以至于无法执行复杂的函数。

max_stack_depth参数设置得大于实际的内核限制意味着 一个正在运行的递归函数可能会导致一个独立的服务器进程的崩溃。 在PostgreSQL能够检测内核限制的平台上, 服务器将不允许你将其设置为一个不安全的值。 因为并非所有平台都能够检测,所以还是建议你在此设置一个明确的值。

建议 [EN]

Increase this if you have experienced the relevant error.

条评论