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
页: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18
查看完整版本: [基于Epoll内置Leader-Follower服务端实现, 已可达50万echo qps(全新支持Lua啦)]