Archive for November, 2009

IO基础

这一篇主要整理存储和文件系统的知识。
我工作的前两年,写的程序从来不和数据库打交道,都是直接和文件打交道,而且用的都是c的API,所以到现在对write和read的熟悉程度还是要远大于fstream。由于业务的原因,程序写的数据量不大,主要是更新比较密集。在程序迁移到aix系统上以后,曾经碰到过io过慢的问题,当时的做法是把部分的数据做到了内存中(share memory)。
下面几个图比较清楚的说明了常见的文件系统和存储。

fs
目前的通用服务器,不管是否存储核心数据,scsi和raid1,都是标配了。上周很悲剧性地发生一台机器硬盘故障,发现这台老机器只做了raid0,导致数据全部丢失,所幸不是关键数据。

linux系统默认的文件系统是exe3,reiserfs我没用过,很多技术文章提到reiserfs在大批量小文件系统中的性能有大幅提高。这个特性对互联网公司有非常大的吸引力。打算最近一个月内做一个测试。

store

从图上可以看出,NAS的将来的结局和oracle应该非常接近,在互联网公司中逐渐被抛弃。
目前可以看到的趋势是:大规模廉价的通用硬盘替换昂贵的专用设备。在介绍硬盘物理io中的文章,我觉得这篇文章是比较好的。
对于一个10000转到硬盘,几个比较有趣的数据:
1, 10000 RPM / 60 seconds (10000/60 = 166 RPS)
2, 转换为 166分之1 的值(1/166 = 0.006 seconds/Rotation)
3, 单位转换为毫秒(6 MS/Rotation)
4, 旋转半圆的时间(6/2 = 3MS) 也就是 RD
5, 加上平均3 MS 的寻道时间 (3MS + 3MS = 6MS)
6, 加上2MS 的延迟(6MS + 2MS = 8MS)
7, 1000 MS / 8 MS (1000/8 = 125 IOPS)
每次应用程序产生一个I/O,在10K RPM磁盘上都要花费平均 8MS.在这个固定时间里,磁盘将尽可能且有效率在进行读写磁盘.IOPS 可以计算出大致的I/O 请求数,10K RPM 磁盘有能力提供120-150 次IOPS.评估IOPS 的效能,可用每秒读写I/O 字节数除以每秒读写IOPS 数得出.
7.2 Random vs Sequential I/O(译注:随机/顺序 I/O)
一个经验性的数据是,普通scsi的10000转速的硬盘的吞吐量大概是20MB/s.(单线程写2Gb数据,用了12秒).

对于很多小文件系统的应用来说,物理上将更多的小文件打包成一个大文件存储,类似于网络通讯中的多次一写,减少碎片是一个思路。




123

很少去买股票,按卫哲的标准,不是股民,属于股东了。偶偶就拿点钱去打新股,今天看到港股有个中国森林上市,我看了一眼他的招股说明书,就没了兴趣,因为他行业排名第三。多年的判断,任何一个公司,或者团体,他排名第三,基本上最后的出路就是被干掉。因为老三会被老大、老二压榨得没法活,最后只能被老大或老二中的一个干掉,或者自求了断。

这样的例子比比皆是。

台湾原来有民进党, 亲民党,国民党;但是在2008年,国民党和亲民党正式合并,除了两个政党血统上亲近的原因,很大的一个原因,我觉得是亲民党基本上会被压缩的没有话语权。

大家都知道目前主流的个人cpu制造商有两家,美国的intel和台湾的via(威盛);我记得我读大学的时候,还有一个低端的cpu制造商,Cyrix,他的cpu价格相对比较便宜。如今在google上搜索cyrix,可以看到一段充满历史感的介绍:原来是世界上较大的一家CPU生产厂商。1999年被VIA(威盛)收购……

曾经有人问我,做管理软件如何?我说,市场上已经有了老大用友和老二金蝶,做老三会很悲惨。




经验有时候是一种羁绊

孙子兵法·《虚实篇》:“故其战胜不复,而应形于无穷。”

“做第一个产品的时候,压力很大,做每一个细节做得非常完美,像我们做第一个产品《征途》的时候,为了一个很小的功能,数值定1.1还是定1.2,可以几天几夜不睡觉;但是我们这个团队同样去做《巨人》的时候,在类似的问题上,我们就根据经验选1.2,不用讨论了,就那么定了,也没有人去怀疑,也没有去论证,所以,做第二个产品,在细节方面,不可能像做第一个细节这么完美了,我们当时也没跳出这个怪圈”

最近看到的史玉柱的这个故事,和我的一些想法一致的地方:历史的成功或者经验可能是一种羁绊和束缚。

对于具体做某个固定的事情来说,经验非常有价值。有一句话很好的辅证了经验的价值,知易行难。光有理论的功夫,没有实践的积累,说出来的东西会非常地没有厚度。平时经常听到很多同事讨论股票投资,看着k线图,在臆想低买高卖的快感;一听就知道此君入行尚浅或者没有任何实战。纸上得来终觉浅,做了以后就有有非常不一样的感觉。

但是对于开拓性的产品或者有创新的功能列表,经验的束缚和羁绊会非常明显 。我们经常会开技术讨论会,讨论某个系统的解决方案,有些想法确实非常漂亮,传统的经验会习惯于找到这个想法在实现上存在的困难,面临的难题;而正是这一点,可能阻止了想法的推进。一个老的系统能朝新的思路迈进,通常会面临很多的困难,创新面临成本;对于一个已经有数千万活跃用户的系统来说,让大象跳舞并不是轻松的事情。

毛主席说:一张白纸,没有负担,好写最新最美的文字,好画最新最美的图画,
要破解这个束缚:对组织来说可以引入领域外的管理者;引入大批新鲜的血液;对于个人来说,需要有一颗开放的心。

工作和生活上最近都有点忙,博客的更新速度没有到达预期,要加油。
实际上我发现每周一博对我还是有不少的压力。坚持!