yulihua49 发表于 2013-02-25 16:30

iw1210 发表于 2013-02-25 16:03 static/image/common/back.gif
有个疑问用select就行了,为什么还出现epoll,iocp什么的?
你处理得了超过1024的连接吗?
你没看到sched线程已经成为瓶颈吗?

iw1210 发表于 2013-02-25 16:33

linux_c_py_php 发表于 2013-02-25 16:21 static/image/common/back.gif
select只能管FD_SETSIZE之内的fd, 进程受限啊哥.

这个我知道,我不是早就说过了么,解决办法是用多个进程,一个进程一个select啊

iw1210 发表于 2013-02-25 16:36

yulihua49 发表于 2013-02-25 16:30 static/image/common/back.gif
你处理得了超过1024的连接吗?
你没看到sched线程已经成为瓶颈吗?
只要一个select能轻松处理1024连接就行啊,启动多个select进程啊

yulihua49 发表于 2013-02-25 16:36

本帖最后由 yulihua49 于 2013-02-25 16:39 编辑

linux_c_py_php 发表于 2013-02-25 15:19 static/image/common/back.gif
你可以把worker里对事件集合的取消操作以及main线程对事件集合的添加操作都做成Pipe+queue, fdset的操作全部让sched线程来做, 可以避免掉同步fdset的代价, 应该能稍微好点. ...
你试试吧,暂时我不知道怎么弄。

yulihua49 发表于 2013-02-25 16:38

本帖最后由 yulihua49 于 2013-02-25 16:40 编辑

iw1210 发表于 2013-02-25 16:33 static/image/common/back.gif
这个我知道,我不是早就说过了么,解决办法是用多个进程,一个进程一个select啊
15W,还可以啊。
多个进程可以啊,但前端得弄个负载均衡什么的。

iw1210 发表于 2013-02-25 16:39

yulihua49 发表于 2013-02-25 16:38 static/image/common/back.gif
多个进程可以啊,但前端得弄个负载均衡什么的。
嗯。你用一个select处理1024个连接成功了么?效率怎么样?没问题吧?

yulihua49 发表于 2013-02-25 16:41

本帖最后由 yulihua49 于 2013-02-25 16:56 编辑

iw1210 发表于 2013-02-25 16:39 static/image/common/back.gif
嗯。你用一个select处理1024个连接成功了么?效率怎么样?没问题吧?
等会,试一下100连接的。
100连接,本地的:Cpu0:9.0%us, 68.0%sy,0.0%ni,3.6%id,0.0%wa,0.0%hi, 19.4%si,0.0%st
Cpu1:9.6%us, 68.1%sy,0.0%ni,3.4%id,0.0%wa,0.0%hi, 18.9%si,0.0%st
Mem:   8059424k total,2860232k used,5199192k free,   309904k buffers
Swap:8191992k total,      0k used,8191992k free,2086944k cached

PID USER      PRNIVIRTRESSHR S %CPU %MEM    TIME+COMMAND                                          
1990 sdbc      20   0104m 8056532 R 21.50.1   2:22.78 server                                          
1982 sdbc      20   0104m 8056532 S 10.10.1   0:44.26 server                                          
1983 sdbc      20   0104m 8056532 S 10.10.1   0:44.34 server                                          
1986 sdbc      20   0104m 8056532 S 10.10.1   0:44.11 server                                          
1985 sdbc      20   0104m 8056532 S9.90.1   0:44.27 server                                          
1988 sdbc      20   0104m 8056532 S9.90.1   0:44.33 server                                          
1984 sdbc      20   0104m 8056532 R9.70.1   0:44.32 server                                          
1989 sdbc      20   0104m 8056532 R9.70.1   0:44.21 server                                          
1987 sdbc      20   0104m 8056532 S9.50.1   0:44.24 server                                          
3685 sdbc      20   03912364296 S1.40.0   0:00.46 client                                          
3699 sdbc      20   03912364296 S1.20.0   0:00.45 client                                          
3703 sdbc      20   03912364296 S1.20.0   0:00.45 client                                          
3723 sdbc      20   03912364296 S1.20.0   0:00.43 client                                          
3684 sdbc      20   03912364296 S1.00.0   0:00.46 client                                          
3686 sdbc      20   03912364296 S1.00.0   0:00.48 client                                          
3687 sdbc      20   03912364296 S1.00.0   0:00.47 client                                          
3688 sdbc      20   03912364296 S1.00.0   0:00.42 client                                          
3690 sdbc      20   03912364296 S1.00.0   0:00.45 client                                          
3691 sdbc      20   03912364296 S1.00.0   0:00.47 client    平均时间:       IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/srxmcst/s
平均时间:          lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:      eth0 135002.13 134965.44   8702.21   8699.01      0.00      0.00      0.00
平均时间:      virbr0      0.00      0.03      0.00      0.00      0.00      0.00      0.00
平均时间:   virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
100l连接:13.5 W qps

iw1210 发表于 2013-02-25 16:42

yulihua49 发表于 2013-02-25 16:41 static/image/common/back.gif
等会,试一下100连接的。
直接试1000连接啊

yulihua49 发表于 2013-02-25 17:01

本帖最后由 yulihua49 于 2013-02-25 17:16 编辑

iw1210 发表于 2013-02-25 16:42 static/image/common/back.gif
直接试1000连接啊
1000的:Cpu0:7.4%us, 53.6%sy,0.0%ni,3.7%id,0.0%wa,0.0%hi, 35.4%si,0.0%st
Cpu1:7.7%us, 57.0%sy,0.0%ni,3.7%id,0.0%wa,0.0%hi, 31.6%si,0.0%st
Mem:   8059424k total,2764252k used,5295172k free,   309944k buffers
Swap:8191992k total,      0k used,8191992k free,2002484k cached

PID USER      PRNIVIRTRESSHR S %CPU %MEM    TIME+COMMAND                                          
3871 sdbc      20   0104m 7840488 R 24.30.1   0:07.56 server                                          
3865 sdbc      20   0104m 7840488 R 20.90.1   0:06.24 server                                          
3867 sdbc      20   0104m 7840488 S 20.90.1   0:06.22 server                                          
3866 sdbc      20   0104m 7840488 R 20.70.1   0:06.27 server                                          
3868 sdbc      20   0104m 7840488 S 20.70.1   0:06.22 server                                          
3869 sdbc      20   0104m 7840488 S 20.70.1   0:06.20 server                                          
3870 sdbc      20   0104m 7840488 S 20.70.1   0:06.17 server                                          
3864 sdbc      20   0104m 7840488 S 20.50.1   0:06.22 server                                          
3863 sdbc      20   0104m 7840488 S 20.30.1   0:06.16 server      


平均时间:       IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/srxmcst/s
平均时间:          lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:      eth0 137704.92 137643.27   8876.30   8871.69      0.00      0.00      0.00
平均时间:      virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均时间:   virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00

没epoll高,epoll 15 W呢。
得检查一下客户端,是否真干活了。
   sched:657 Event's active!
sched:530 Event's active!
sched:802 Event's active!
sched:612 Event's active!
sched:728 Event's active!
sched:708 Event's active!
sched:329 Event's active!
sched:498 Event's active!
sched:518 Event's active!
sched:359 Event's active!
sched:240 Event's active!
sched:423 Event's active!
sched:671 Event's active!
sched:537 Event's active!
sched:752 Event's active!
sched:598 Event's active!
sched:508 Event's active!
每次能做这么多事件呢!!

完成了,1000连接没任何问题。
行了,iw,这个程序你拿去改吧改吧用吧。

linux_c_py_php 发表于 2013-02-25 17:15

锁有点太猛了, 想办法把FDSET上的锁弄掉看看
页: 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26
查看完整版本: [基于Epoll内置Leader-Follower服务端实现, 已可达50万echo qps(全新支持Lua啦)]