Linux下线程栈大小设置实践(linux设置线程的栈)
现今各式各样的操作系统中,Linux 是最受欢迎的操作系统之一。在 Linux 中,线程栈大小可以自行配置,若无往来进行合理设置,则会出现中断错误和严重的内存泄漏问题。
关于 Linux 操作系统的栈的配置,有多种方式。下面以 Ubuntu 14.04 为例,来说明其线程栈大小设置实践。
首先,我们可以使用ulimit -a功能查看当前相关参数:
$ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 498
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 498
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
从上面的输出中,我们可以看到,目前的栈最大尺寸为10240KB,即 10M。如果想要设置更大的栈尺寸,则只需要执行下面语句即可:
$ulimit -s
比如:
$ulimit -s 65536
表示设置栈最大尺寸为 65536KB,即 64M。由于一个进程的空间是有限的,所以线程栈大小的设置应根据实际应用场景分配而定。
而且,在 linux中还可以使用下面的语句来设置栈的最大尺寸:
#echo > /proc/sys/kernel/threads-max-size
比如:
#echo 65536 > /proc/sys/kernel/threads-max-size
表示设置栈最大尺寸为 65536K,即 64M。
不过,这些设置的栈的最大尺寸不会持久生效,要让它永久生效,则需要编辑 /etc/sysctl.conf 文件,加入:
#snippet from sys.ml
kernel.threads-max-size =
比如:
#snippet from sys.ml
kernel.threads-max-size = 65536
表示设置栈最大尺寸为 65536K,即 64M。这样,就可以让线程栈大小设置永久生效了。
以上就是 Linux 下线程栈大小设置实践的一些步骤,只要按照这些步骤操作,就可以根据自身的实际情况来设置线程栈大小,以满足使用需求。