栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。和堆相比,栈通常很小。
在 Linux 系统中,栈区的大小是固定的,通常为 8 MB。然而,在某些情况下,我们可能需要修改栈区的大小。本文将介绍如何修改 Linux 栈区大小。

1. 查看当前栈区大小

1
ulimit -s // 一般为8192KB, 即8MB

注:线程栈大小默认为 8M,8192 KB。

2. 修改栈区大小

临时修改

1
ulimit -s 102400 // 改为100MB

注:ulimit -s ulimited 不限制。

永久修改

有两种方法:

  • 方法一:可以在/etc/rc.local 内加入 ulimit -s 102400 则可以开机就设置栈空间大小,任何用户启动的时候都会调用

  • 方法二:修改配置文件/etc/security/limits.conf

手动添加:

1
* soft stack 102400

自动添加:

1
echo -ne "* soft stack 102400\n" >> /etc/security/limits.conf