BBS水木清华站∶精华区
发信人: nudtbegger (军人), 信区: Linux
标 题: Re: 关于LINUX的质量质疑
发信站: BBS 水木清华站 (Thu Jul 29 13:05:39 1999) WWW-POST
【 在 mephisto (魔鬼*修心养性*重新做人) 的大作中提到: 】
∶ 5000p/s 是在计费的采集上,没有那么小的包.
但是,就是包大一点,也远不到100M呀
∶ 100M是用两台host ping -f 来测的,因为有碰撞,到底有多少包没有参考标准,
∶ 是通过以ping方接受到和发送的包来算出包书目的上限,采集很靠近这个上限
∶ 我没有试过. > 50% < 90% ?
理论上,一台发,一台受,假使每个包是64BYTE,那么,发一个包要512位时,
包间隙512位时,由于无碰撞,所以是50M,如果包大,那么可以接近100M,
100*1518/(1518+64)
∶ 10ms包括了切换.
∶ 这个不能一下子说清楚. RT 有实时部份和非实时的部分.看你需求是如何产生的
∶ 不对. It depends. The IRQ respons have two part. the top half and the
∶ buttom half. The top half is short and not interruptable. The buttom half
∶ is long. I don't beleive OS do not have not interruptable part.
∶ Linux的提法不一样,我看功能是一样的. select()
你说的是SELECT呀,关于SELECT,我想多说两句,这两天我特地回去看了看LINUX 里异
步IO到底是怎么回事。在一个师兄的帮助下翻了翻SOURCE,就一些问题向他请教了一下。
后来我发现情况似乎不是很好,select是LINUX里主要支持异步
IO的API(若不对,请指正),如果要在一个现程里等待多个CLIENT的连接,更是
只有用它(也许是我孤陋寡闻)但是SELECT的实现方法简直是愚笨之极(个人看法),让
我这等在WIN32下享受了好处的人简直不能相信。
下面我慢慢谈谈我个人的一些看法。
什么时候我们要用异步IO?因为多现程的使用,原有的一些背景已经不存在了,你完全可
以
另开一个现程去执行那个费事的IO,而且,如果象DISK IO,因为完成时间可预测,而且
次数不会太多,发生也是可预测的,所以,如果你不想用异步IO,用多现程的方法是可以
很好的解决这个问题的。在目前而言,异步IO的主要使用背景在于网络应用,而且是象
数据采集(本人对此很有兴趣),SERVER等数据量不可预测,BRUST流量大的应用。
比如说,在LINUX下做一个SERVER(WEB,FTP,TELNET ETC),我想没有人会同意对每
个连接都创建一个线程的苯方法吧?(创建一个进程更不在考虑之列)这样做,当然可
行,而且如果只有10个连接,只在自己实验机房,只有10台PC,当然没问题。但是,这个
方法显然太浪费资源,很难想象如果有一千人的同时连接会发生什么。首先是现程太多,
其次是CPU要花更多的时间去管理线程,还有就是编程者要用到更多的同步信号等核心对
象。
于是,我们想到了异步IO,我们不用一个连接对于一个线程,可以一个线程对应多个连接
。
线程发出异步IO后,只要等待事件就行了。但是SELECT有一个大问题在于,当事件到来时
,
系统通知所有的等待该事件的线程,但是,事实却是,当来了一个新的连接时,只有一个
现程有必要被唤醒,其余的线程只有回到等待状态。这种实现方式将带来两大开销,第一
,
所有的线程都被唤醒,到底哪一个去完成服务呢?在线程中要协调。第二,线程被唤醒了
,
CPU又要分配时间给该线程,虽然它马上就又进入等待状态。可是该线程本不该被唤醒的
。
这样一来,一个WEB SERVER的设计只好采用老套路,一个线程守着,当CLIENT来的时候,
它自己处理,同时唤醒或产生另外一个线程来守侯。或者当CLIENT来的时候,它自己不处
理,
唤醒或产生一个线程来处理,自己仍然守侯。这种情况还是会带来一些开销,因为每当一
个
CLIENT REQUEST到来的时候,守侯线程接到了请求,却要通知别的线程。
如果是在NT下,完全没有必要如此麻烦,NT里的同样情况,系统只要唤醒一个线程,尽管
有多
个线程在等待同一个事件。NT下大家都很熟,相信大家不用我多说。
关于SELECT的缺陷,先就敲到这里了,还有些话,还要把代码翻出来,再考虑考虑再说。
另外,由于小弟我对LINUX实在是不太熟,属于初通皮毛的那种,才一级无,但是刚刚从
0级伸到1级,心情还是激动的。请各位高级玩家指正帮助。
∶ 不是发信号,是把进程叫醒
--
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.197.0.1]
BBS水木清华站∶精华区