荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: zzZzz (zzZzz), 信区: InstallBBS
标  题: Re: [合集]浙大飘渺水云间bbs看来优化做得不错(转寄)[转载]
发信站: 荔园晨风BBS站 (Thu Apr 25 14:00:02 2002), 转信

【 以下文字转载自 zzZzz 的信箱 】
【 原文由 jjksam@bbs.edu.cn 所发表 】
发信人: rexchen (小旭旭), 信区: BBSMan_Dev
标  题: Re: [合集]浙大飘渺水云间bbs看来优化做得不错
发信站: BBS 水木清华站 (Fri Apr 19 18:48:44 2002)


【 在 yeshao (叶少·昨夜西风凋碧树) 的大作中提到: 】
: 这不就是了么?我没有说load高不是个问题,我只是说域值不是1而已。

load 的值是多少都不是很重要,他最重要的是一个值是 1 。
当他超过 1 时表示,机器已经无法处理即时的情况,必需要等待排程。


请你思考一下,当一个程式是无限回圈,他每秒可以跑  1000 个回圈。
这时候他吃住全部 cpu 。 load  = 1

当你跑两只时,两只各每秒跑 500 个回圈,合起来是 1000 个回圈。
这时候 load = 2

你跑很多很多只程式, load 会一直往上加,但是总共你就是只能跑 1000 个回圈。
事实上根本跑不到 1000 个,因为要扣掉系统排程所花得 cpu time 。

所以 load = 1 是机器的极限。

当 bbs 的 load 超过 1 时,事实上分给每个人的资源就开始变少。
但是使用者可能一开始根本感觉不出来 1/1000 秒的延迟。

但是当延迟到了 1 秒使用者就会觉得慢,而觉得慢得时候 load 是多少不一定。
看起来很像温度计,实际上不是。因为现在你只考虑到有互动的部份,延迟所产生的效应
不会在互动感觉出来。但是总是有不是互动的程式,例如信件,转信,这些都不是
互动上得问题,当信件无法即时处理,他就会开始 queue 起来, queue 起来的结果会
让系统必需花时间解决这些 queue 的问题而更糟糕。转信无法即时转完,便会开始
影响到下一次的转信,一些收寻功能需要大量 cpu 时间的无法即时跑完,会彼此互相
影响, load 会开始不以正常的线性往上爬。

所以会发现原本 load = 1 可以跑一千人,可是 load = 2 却不是两千人。
可能不到一千五百人,同样方式计算,会发现到某个临界点, load 狂加
也多跑不了一个人。

我在 bbs 上 load 花了很多时间研究,碰上几百几千的状况多得是,
不过我还是要强调:
load = 1 绝对是个关键,而且管理者应该谨慎处理的状况。
以 load 超过 1 而机器正常执行而沾沾自喜的,绝不可取。

--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 210.85.196.23]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店