本文的目的是提供一种在Linux 2.2系统(glibc 2.1)下提高FireBird BBS同时
在线人数上限的方法.
参考站点:深圳大学荔园晨风BBS(210.39.3.47)
RedHat 6.0 (upgraded from RedHat 5.2) linux 2.2.7-ac2
FireBird BBS 2.66M
How To Do:
1.要有一定的硬件环境,以支持大容量的BBS服务;
深圳大学荔园晨风BBS是PII450 X 2,512M内存;
2.采用Linux 2.2系统,支持glibc 2.1,如RedHat 6.0;
linux-2.2.x中支持的unix98 pty需要glibc 2.1的支持,注意RedHat 5.2
使用glibc 2.0.
3.重新编译系统核心,现在最新版本是linux-2.2.9(15/05/99).
首先编辑/usr/src/linux/include/linux/tasks.h,将NR_TASKS改为4090;
NR_TASKS定义的是系统最大进程数,另外MAX_TASKS_PER_USER定义了unix用户
最大进程数;
如果希望达到1024人上限,那么此时系统进程数应该大于 (2*1024 + 1*1024),
root的进程数应该大于2048.
对于每个BBS用户至少对应三个进程,一个是in.telnetd,一个是login,另一个
是bbs(in.telnetd和login属于root,bbs属于bbs).
然后编辑/usr/src/linux/include/linux/limits.h,将OPEN_MAX改为1024;
OPEN_MAX定义了每个进程打开的最大文件数;
在编译内核时应该选上unix98 pty的支持,/dev/pts文件系统的支持.
4.重新编译FireBird BBS,使其支持1024上限.
5.在/etc/rc.d/rc.local中加入:
#修改the maximum number of file-handles,在深圳大学荔园晨风
#BBS中,300多人同时在线时,the number of used file handles
#超过16384./proc/sys/fs/file-nr提供了fds的使用信息,第一个参数
#是已经分配的fds,第二个参数是已经使用的fds,第三个参数是系统的
#最大fd数目. xxxxx请用合适的整数替代.
/bin/echo xxxxx > /proc/sys/fs/file-max
#inode-max应该是file-max的3或4倍
/bin/echo xxxxx > /proc/sys/fs/inode-max
--
FROM 210.39.3.47