linux max_threads参数计算

2018-06-01  本文已影响0人  至垚

内核threads线程数是一定的,具体是跟机器内存有关系
部分参数获取方法
PAGE_SIZE:getconf PAGE_SIZE 单位byte
THREAD_SIZE:ulimit -s

额定具体计算如下
max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8

mempages计算
mempages = 物理内存大小/PAGE_SIZE

例如:32G内存
mempages = 32174 * 1024 * 1024/4*1024 = 8236544

max_threads = 8236544/(81024)/(41024)/8 = 514784

因为为了保证每个用户进程总数不至于超过一半内存fork_init()指定:
init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2;
init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2;

即物理额定线程数为514784/2=257392

上一篇下一篇

猜你喜欢

热点阅读