Linux 系统线程总数问题
来源:互联网 发布:新疆广电网络 编辑:程序博客网 时间:2024/05/16 05:07
线程总数问题
LinuxThreads将每个进程的线程最大数目定义为1024,但实际上这个数值还受到整个系统的总进程数限制,这又是由于线程其实是核心进程。
在kernel 2.4.x中,采用一套全新的总进程数计算方法,使得总进程数基本上仅受限于物理内存的大小,计算公式在kernel/fork.c的fork_init()函数中:
max_threads = mempages / (THREAD_SIZE/PAGE_SIZE) / 8
在i386上,THREAD_SIZE=2*PAGE_SIZE,PAGE_SIZE=2^12(4KB),mempages=物理内存大小/PAGE_SIZE,对于256M的内存的机器,mempages=256*2^20/2^12=256*2^8,此时最大线程数为4096。
但为了保证每个用户(除了root)的进程总数不至于占用一半以上物理内存,fork_init()中继续指定:
init_task.rlim[RLIMIT_NPROC].rlim_cur = max_threads/2;
init_task.rlim[RLIMIT_NPROC].rlim_max = max_threads/2;
这些进程数目的检查都在do_fork()中进行,因此,对于LinuxThreads来说,线程总数同时受这三个因素的限制。
例如查看Linux Threads 用命令
cat /proc/sys/kernel/threads-max
可以看到Linux系统支持线程总数,和内存有关,内存越大线程总越多。
- Linux 系统线程总数问题
- Linux系统统计目录下的文件总数
- 兔子的总数问题
- 兔子出生总数问题
- jconsole线程面板中的阻塞总数和等待总数
- linux中查看进程总数
- Linux进程、线程问题
- Linux进程、线程问题
- linux线程同步问题
- linux线程同步问题
- linux 线程同步问题
- linux线程-sysconf系统变量
- Linux系统学习笔记:线程
- Linux系统学习笔记:线程
- Linux系统编程---线程概念
- Linux系统线程同步技术
- 【Linux系统编程】线程池
- Linux系统---线程互斥锁pthread_mutex_t
- Apache的prefork模式和worker模式
- 【Linux推广】妻子只用了 Linux 6个月她说,Linux比Windows更容易!!!
- 解决favicon.ico无法在首页显示的问题
- 正在爆发的互联网革命(30余位互联网大腕、100余家电视台等媒体鼎力推荐)
- jQuery性能优化指南
- Linux 系统线程总数问题
- 数据分析
- ModalPopupExtender控件和gridview的结合使用
- NF_IP_PRE_ROUTING’ undeclared (first use in this function)
- 每天都要付出
- Windows CE内核启动分析
- 简单的webservice开发例子
- 检测点13.2
- Function Test 测试报告样本