- 主题:请问关于最大登录用户数的问题
最近在web登录的时候,在晚上人多的时候就会出现
系统在线人数已达上限,请稍后再访问本站
这种提示
而这时候上站的注册用户是2400,昨天也是这种情况
但是代码中没搜索到有2400这样的定义限制
搜索了以前的帖子,发现site.h中定义的MAXACTIVE是在线人数限制,但不知道是否包括
guest,而且这个我们设置的是8000,最高在线到过1w以上也没出现过这种情况
看了下登录的代码,流程是这样的:
logon.php中的doLogon函数调用bbs_wwwlogin,判断返回值为 1 的时候提示人数达到上限
bbs_wwwlogin是定义在bbs2www/phplib/phpbbs.session.c中的函数,它调用
www_user_login这个函数,并返回www_user_login的返回值,那也就是后者返回1的时候,
bbs_wwwlogin也返回1,才会出现人数达到上限的情况
www_user_login定义在bbs2www/lib/bbslib.c中,其中有这样一段代码
utmpent = getnewutmpent2(&ui,1);
if (utmpent == -1)
ret = 1;
也就是因为getnewutmpent2返回值是-1,所以造成人数达上限
继续跟踪getnewutmpent2这个函数,是定义在libBBS/utmp.c中的,而它一开头就是
int pos, i, ret;
......
pos = utmphead->hashhead[0] - 1;
if (pos == -1) {
ret = -1;
} else {
......
到这就没有思路了,没发现是什么预定义的常量限制了在线注册用户的数量,正常理解
应该是在什么地方定义了的
请问应该修改哪里来增加这个限制呢?
--
修改:Gery FROM 118.229.184.*
FROM 118.229.184.*
有term用户,但是不是很多,10%左右
这个时候term用户也登录不上,显示登录画面后,输入用户名密码,
然后就卡住20秒,没有任何提示,然后断线
我看代码里有两处Net_Sleep(20)然后exit(-1),但这两处睡眠之前都
会显示提示的,我们现在什么提示也没有
【 在 atppp (Big Mouse) 的大作中提到: 】
: 你们有 term 登录用户么,多么
--
FROM 123.127.134.*
src/newmain_single.c u_enter函数中
getSession()->utmpent = getnewutmpent(&uinfo, 0);
if (getSession()->utmpent == -1) {
prints("人数已满,无法分配用户条目!\n");
oflush();
Net_Sleep(20);
exit(-1);
}
src/newmain_single.c中 login_query函数中
curr_login_num = get_utmp_number();
if (curr_login_num >= MAXACTIVE) {
ansimore("etc/loginfull", false);
oflush();
Net_Sleep(20);
exit(1);
}
这两处都flush了吧
按照追踪www登录的情况,term下应该是在第一个net_sleep的地方睡眠退出的
【 在 jiangjun2000 (%d) 的大作中提到: 】
: 没有提示是因为没有refresh吧
: 你在显示后面加个refresh()试试
--
修改:Gery FROM 123.127.134.*
FROM 123.127.134.*
代码是07年7月的,改了一些,也不算少,不过底层基础的东西都没改
升级……合并起来很麻烦……
【 在 sxdxsimple (雾里龙虾) 的大作中提到: 】
: 代码改多了哇?
: 要不升级看看?
--
FROM 123.127.134.*
呃……麻烦你回忆一下吧,一般都是晚上人多的时候出现问题,那时候也不能测试……
大概折腾的是什么方向?系统配置还是改了代码?
【 在 fancyrabbit (fancy★Life is struggling ...★喵) 的大作中提到: 】
: 这块问题水木碰到过,我上次稀里哗啦一通改完现在忘记是什么问题了 ...
--
FROM 123.127.134.*
我从8000改成10000试试吧,或者我改小一点,登录几个人就提示人多了,
那也说明改对了,呵呵
这个改过之后需要清除共享内存么?
【 在 fancyrabbit (fancy★Life is struggling ...★喵) 的大作中提到: 】
: 确定不是MAXACTIVE?那就没有。
--
FROM 123.127.134.*
这个当然了……有的情况还需要清除共享内存,就是不知道这个需要不
【 在 hyu35 ( b) 的大作中提到: 】
: 改过之后应该重启kbs
--
FROM 123.127.134.*
因为还没这么调过……好,我试验一下
【 在 fancyrabbit (fancy★Life is struggling ...★喵) 的大作中提到: 】
: 其实出现问题的时候attach一个bbsd随便调一下就知道问题在哪儿了啊
: 何必这么麻烦
--
FROM 123.127.134.*
改成了10000,现在登录人数超过2400了
不过还是不知道为什么会有这样的关系映射……
【 在 fancyrabbit (fancy★Life is struggling ...★喵) 的大作中提到: 】
: 是啊,可是我没看见,所以你需要调试一下,确认不是这里的问题
--
FROM 123.127.134.*