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 下线程栈大小设置实践的一些步骤,只要按照这些步骤操作,就可以根据自身的实际情况来设置线程栈大小,以满足使用需求。


数据运维技术 » Linux下线程栈大小设置实践(linux设置线程的栈)