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

yulihua49 发表于 2013-02-25 17:17 static/image/common/back.gif
程序马上会发疯的。

有锁这样不错了, 多线程主要是为了并发能力, 也不能单看qps.

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

要想再快, 那么就是多个sched线程多个FDSET多把锁, 把锁竞争减小就行了, 和多epollfd一样.

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

基本上最后都蜕化为了one event per thread了.

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

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

linux_c_py_php 发表于 2013-02-25 17:23 static/image/common/back.gif
要想再快, 那么就是多个sched线程多个FDSET多把锁, 把锁竞争减小就行了, 和多epollfd一样.
那样就不如多进程了。一样可以把CPU灌满。

负载均衡 ---多进程/线程池。

线程池有个讨厌的地方,在应用中要调用数据库,无法异步化。无谓的占用宝贵的线程进行等待。

windoze 发表于 2013-02-25 17:26

yulihua49 发表于 2013-02-25 17:01 static/image/common/back.gif
行了,iw,这个程序你拿去改吧改吧用吧。


yu同学这下不知道攒了多少人品…………

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

yulihua49 发表于 2013-02-25 17:01 static/image/common/back.gif
完成了,1000连接没任何问题。
行了,iw,这个程序你拿去改吧改吧用吧。



你这个做的好了么,别忽悠我啊~
做好了发给我源代码学习下啊

yulihua49 发表于 2013-02-25 19:21

iw1210 发表于 2013-02-25 17:33 static/image/common/back.gif
你这个做的好了么,别忽悠我啊~
做好了发给我源代码学习下啊
15页149楼。

lonerwolf 发表于 2013-02-25 21:39

回复 173# linux_c_py_php


    :mrgreen: 如我所料,见过很多人做网络库,最后都是所有线程均等,即epoll wait也做业务处理,把数据库等大延时操作另开线程做

windoze 发表于 2013-02-26 00:35

回复 178# lonerwolf

是啊,有心情用全异步重写数据库客户端的人怕是很难找,更何况有些数据库客户端干脆就木有源代码

linux_c_py_php 发表于 2013-02-26 10:59

lonerwolf 发表于 2013-02-25 21:39 static/image/common/back.gif
回复 173# linux_c_py_php




这可不是一定的, 完全可以做一个半同步半异步的数据库代理服务器在同步层做同步DB访问, 然后指定一个简单的交互协议, 供其他纯异步服务器异步的请求, 就是Proxy的概念
页: 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27
查看完整版本: [基于Epoll内置Leader-Follower服务端实现, 已可达50万echo qps(全新支持Lua啦)]