该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-21
ejabberd人家就诚实号称并发3,5千 根据erlang的表现和即时通讯的数据特点 应该是很靠谱的。
|
|
返回顶楼 | |
发表时间:2007-08-21
mryufeng 写道 ejabberd人家就诚实号称并发3,5千 根据erlang的表现和即时通讯的数据特点 应该是很靠谱的。
ejabberd虽说是即时通信server,但是我记得jabber协议本身是不依赖于长连接的。 |
|
返回顶楼 | |
发表时间:2007-08-21
不管长短链接 3-5千的并发 他要收发的包是基本固定的 而处理包的能力才是系统的本质
|
|
返回顶楼 | |
发表时间:2007-08-22
jabber协议是tcp协议,而且是基于xml的。
|
|
返回顶楼 | |
发表时间:2007-08-22
要是纯静态页面可以去试试lighthttpd,ghttpd之类的,apache没有设计成为单进程,主要为了扩展性强。apache还有prefork模块,也是为了更好的稳定性。
|
|
返回顶楼 | |
发表时间:2007-08-22
纯静态的意义也不大,我们的服务器使用的apache或者lighthttpd,机器的带宽正常的情况下都可以跑满带宽。
说到底,操作系统所谓的Process和Thread 也只不过是一个Context结构,用指针保存每个Stack Frame,然后按时间片切换Context.有任何区别吗? 区别还是有的,系统切换的代价比较高,而自己切换的效率比较高。 |
|
返回顶楼 | |
发表时间:2007-08-22
七猫 写道 纯静态的意义也不大,我们的服务器使用的apache或者lighthttpd,机器的带宽正常的情况下都可以跑满带宽。
说到底,操作系统所谓的Process和Thread 也只不过是一个Context结构,用指针保存每个Stack Frame,然后按时间片切换Context.有任何区别吗? 区别还是有的,系统切换的代价比较高,而自己切换的效率比较高。 如果没有GC插一脚,的确没多大区别.有了GC,区别就是大大地了. 有没有GC本身也是没多大关系的,但是一旦有了non-deconstructive assign区别又是大大的. |
|
返回顶楼 | |
发表时间:2007-08-22
non-deconstructive assign和gc对这个切换的影响不大吧。
OS的切换要保存的上下文太多了。 |
|
返回顶楼 | |
发表时间:2007-08-22
七猫 写道 non-deconstructive assign和gc对这个切换的影响不大吧。
OS的切换要保存的上下文太多了。 想象一下,一个清扫一次都要pause所有thread的GC会产生啥效果. 我的意识是说,即便是1:N的LWP如果存在GC,比如说让Java来实现erlang的特性,他的效率提高的也非常有限. |
|
返回顶楼 | |
发表时间:2007-08-22
os的开销主要在ring3->ring0->ring3这个流程太复杂了 随便一个系统调用就几个us, nginx分析一个完整的http请求才1us左右 所以越来越感觉单线程 单进程 在很多时候需要高效处理的时候很有用。
|
|
返回顶楼 | |