自从看了《编程珠玑》第7章粗略估算之后就养成了一个奇怪的习惯,喜欢去计算身边的数字。比如一个城市共有多少台电梯,中国共有多少座桥梁等。
粗略估算又叫费米近似(Fermi problem),比如坐广州到深圳的和谐号动车组时候就想,广深线每分钟进入火车站人流量有多大?这个似乎要请专业的调查公司才能得到结果,但实际上每个人几乎都可以算出来,尤其是程序员。
- 和谐号列车有8个车厢,1号和8号是头等车厢,一般坐不满 ,满员估算50人。除去5号餐车。因此共有5×100+100=600个座位。
- 15分钟一趟,每天从6点到22点,共发车18*(60/15)=72次
- 根据观察,广深线平时都有座位,但也不会太空。假如平均坐满70%座位的话,每天单向人流量为 72 * 600 * 70% = 30240 人
- 每分钟人流量为30240/18/60=28人
- 进一步考虑,需要几个售票窗口。估算平均每个乘客购票需要15秒,则至少7个窗口才不会引起排队现象。这跟平时观察一致,平时非高峰时刻如果窗口在5个以下会出现排长队现象。
72法则
72法则是会计上的一个经验。假设最初投资金额为100元,复息年利率9%(r%),利用“72法则”,将72除以9(增长率),得8(y),即需约8年时间,投资金额滚存至200元(两倍于100元),而准确需时为8.0432年。上面的r和y换成任何数字,只要相乘总数是72, 该法则都成立。
72法则在初略估算中经常要用到,比如上面广深线的例子,假如客流月增长率3%, 则24月之后,广深线客流量会翻一番。(24*3=72)
编程领域估算
服务器编程领域经常面临预先估算,因为在程序开发前实际的场景并不存在。据去年《程序员》杂志介绍,奥运订票网站的瘫痪,是因为每秒请求数超过2200次。假如这个请求数都不能预先估算到的话,应该算是架构设计的失败。
更多有趣例子及深入阅读
- 中国共有多少台正在运行中的服务器?
- 你有多少根头发?
- 成年人体的骨头块数。
- 孔子的出生年份(公元)
更多有趣的例子可参看美国马里兰大学更多初略估算测试大全(英文)
这个问题是否应该从电信/网通的全国机房数和每个机房数的服务器这两个数据入手进行估算。不过从google上随便搜了一下,貌似这些数据不好得出
“粗略估算” 貌似很有意思,也去买本《编程珠玑》看看~~~
文章很有意思。八封一下奥运订票网站的瘫痪,高并发的情况他们肯定是想到的,能接这种国家级系统项目的公司,实力和牛人肯定也不差不少;我个人认为宕机几乎是必然。原因有:
1大量非常规的请求,如黑客攻击等
2购票流程复杂和应用设计的不合理,使得多了很多不需要的请求。当时我实际购票的时候深有感触,当页面出不来的时候,很多用户并不是等待处理完,而是拼命地F5、刷新,结果就是造成新的数据库的压力和脏数据。我记得当时页面有好几个,如果一个页面失败,等于都要重新来过。每个页面,都要操作数据库。
每秒2000的并发,实际上并不是一个非常大的量,10-15台前端都算保守了。优化好更省机器。
有趣、有用
奥运订票网站的瘫痪
是DB的压力过大造成
像这种项目,主要是吞吐量不太好估算 当然可以做超大容量的平台,但是这是花银子的
“1.和谐号列车有8个车厢,1号和8号是头等车厢,一般坐不满 ,满员估算50人。除去5号餐车。因此共有5×100+100=600个座位。” 5 是什么,100 是什么?
“2.15分钟一趟,每天从6点到22点,共发车18*(60/15)=72次” , 从6点到22点应该是16个小时吧?
to renenglish
1、5是除开1号、8号、5号车厢后的其余车厢数;100是这5节车厢的乘客数。
2、包括6和22就是18
“Sometimes giving simply your schedule can really generate another individual smile,” in line with
tthe websіte. Tell your prospeϲtive customers well ahead of time where tһe following art
show, craft market oгr gallery showing ԝill be.
In order to see good results inside the shortest tіme possible, there ɑre a few guidelines thaat should be followed.
Keren penjelasan mudah, daftar mudah, sangat membantu para bettor
baru maupun pro!
Buying internet media, as an example impressions, emails distributed, sponsorships, so on. The first kind of promotional strategy that may be examined is
search results advertising. Keeping track of how customers view your business,
and reacting into it with time, might be not enough.