有成千上万个客户端接入的时候,才应该使用 m:n 模型。
n就是核数,当n全部忙起来的时候,就是系统最大能力发挥出来的时候。如果还有未决的任务,让它们排队等着,就是最好的,真要是建立成千上万的线程,大量时间花在调度上,会严重影响系统性能。
就像公共汽车,大家一拥而上,谁也上不去,排个队才好。
搞交易中间件的都知道,如果成千上万的客户端直接连数据库,很容易把数据库憋死。通过中间件,才能使系统运行顺畅,就是靠的中间件的M:N的功能。
如果系统能力不够,就增加核数,或增加服务器数量。
另外,调度器的性能,可以有一个指标反映:
最大响应时间:平均响应时间。
TUXEDO做到9,我的可以做到1.25。
【 在 hgoldfish 的大作中提到: 】
: 有成千上万个客户端接入的时候,才不应该使用 m:n 模型啊。此时一个 socket fd 的收发各使用一个线程,和一整个 socketfd 在一个线程内处理没啥区别。
: m:n 模式最好的地方应该是那种超大带宽超大吞吐连接数量不多的场景才对。
:
--
修改:ylh1969 FROM 221.218.60.*
FROM 221.218.60.*