linux_c_py_php
发表于 2013-02-19 15:54
yulihua49 发表于 2013-02-19 15:44 static/image/common/back.gif
这次是因为网络饱和了。如果不饱和怎么样还要看看。
短连接的时候有问题... debug中.
linux_c_py_php
发表于 2013-02-19 16:02
为啥短连接开一个压力跑15000, 开第二个连接直接不响应了, 神奇了吧.
linux_c_py_php
发表于 2013-02-19 16:05
本帖最后由 linux_c_py_php 于 2013-02-19 16:10 编辑
擦, 有啥BUG, 费解了.
yulihua49
发表于 2013-02-19 16:14
本帖最后由 yulihua49 于 2013-02-19 16:17 编辑
linux_c_py_php 发表于 2013-02-19 16:05 static/image/common/back.gif
擦, 有啥BUG, 费解了.
epoll_create(20)-----不够数啊!!
改:
epoll_create(1+CONN_MAXFD/EPOLL_NUM);
linux_c_py_php
发表于 2013-02-19 16:20
yulihua49 发表于 2013-02-19 16:14 static/image/common/back.gif
epoll_create(20)-----不够数啊!!
改:
这里也有个BUG:
int flag;
flag = fcntl(sock, F_GETFL);
fcntl(sock, F_SETFL, flag | O_NONBLOCK);
源代码用法错了.
linux_c_py_php
发表于 2013-02-19 16:23
yulihua49 发表于 2013-02-19 16:14 static/image/common/back.gif
epoll_create(20)-----不够数啊!!
改:
改了, 也不是这里的问题.
监听线程直接就啥了, epoll_wait全都是超时返回..
linux_c_py_php
发表于 2013-02-19 16:35
感觉线程死锁了, 无敌了.
yulihua49
发表于 2013-02-19 16:44
linux_c_py_php 发表于 2013-02-19 16:35 static/image/common/back.gif
感觉线程死锁了, 无敌了.
没看出毛病。
linux_c_py_php
发表于 2013-02-19 16:48
yulihua49 发表于 2013-02-19 16:44 static/image/common/back.gif
没看出毛病。
好假, 一共经历3个版本:
1, 监听和连接socket都在一个epoll fd下, 跑2万就上不去了.
2, 监听自己一个线程, 然后epoll fd不分组就1个, 也没事.
3, 监听自己一个线程, 然后epoll fd分组, 结果出事了.
valgrind跟了一下没有内存非法操作...
目前来看, 就是一个线程同时操作了6+1个epoll fd, 然后死锁了? ...
linux_c_py_php
发表于 2013-02-19 17:22
这太搞笑了..
短连接, 开一个压力, 有15000的qps, 监听线程很正常的:
epoll_wait(11, {{EPOLLIN, {u32=10, u64=5874857426557075466}}}, 1, 1000) = 1
然后再开一个, 监听线程直接变成了:
epoll_wait(11, {}, 1, 1000) = 0
epoll_wait(11, {}, 1, 1000) = 0
epoll_wait(11, {}, 1, 1000) = 0
epoll_wait(11, {}, 1, 1000) = 0
epoll_wait(11, {}, 1, 1000) = 0
epoll_wait(11, {}, 1, 1000) = 0