西西河

主题:【原创】也来说说Linux和Windows下的开发感受 -- 昔杨今雨

共:💬203 🌺502
分页树展主题 · 全看首页 上页
/ 14
下页 末页
                    • 家园 这听着有点象华为中兴的人到了腾讯之后搞出来的

                      你这说的都是TCP以下的勾当,华为中兴每天写的程序不都干的这些东西,比如交换机的话务量处理能力都是有要求的。

                      华为最成功的不就是软交换吗?

                    • 家园 老帖子好,常看常新。

                      是我理解错误。

                      腾讯技术是不错,还听说用很多mysql做了个数据库集群,支持海量数据。可惜我不能去深圳阿,否则去腾讯也不错。

                • 家园 今天没精力长篇大论了,稍微说一下

                  你说的网站流量问题,腾讯等都是超级流量的case,特殊情况特殊方案是很自然的,但也不一定都是要弄到去改linux内核的程度,我想yahoo,msn等的流量也不会比腾讯差多少吧,还不是都用得linux与windows就顶上了。而且这年头1000台的机器也不算什么,昨天一个在myspace的朋友说,他们那3000多台server,可你去看alexa上myspace的流量还赶不上yahoo呢。这里的意思是说,问题终究还是要靠硬件来解决,2000年那会儿是靠Sun server,先在CPU快了,linux,windows多弄些就行了。再早呢,那时CPU太慢,你想为什么二十年前没有web这种东西,也不一定是人们想不到,毕竟硬件水平摆在那儿,做软件的自然就围着现有条件转了。

                  说到改内核,你说的那个epoll,我不了解细节,但试想能够改进linux 内核而后来成为标准,这里面对创意的要求也不低啊。不要一提创意就以为说的是web 2.0,就是facebook,那些只是一方面,是应用范畴上的,在底程开发上,在怎样把graphic上做的更好上,同样每一个进步都离不开创意。而从硅谷这些年看,创意最多的人恰恰是计算机业从事技术开发的人群。国内有没有,当然有,但是太少,这是楼上贴子里的意思。

                  google等的特殊需求更是大部分建立在创意的基础上,这里面既有AdWord的商业模式,也有大规模廉价机器的并行搜索,甚至那个所谓的pagerank,但google的例子并不能说明绝大多数其他商业形式下的软件应用也可以采用类似方案。创意不是普世原理,google的创意是针对搜索的需求,但这些创意对你为2008奥运会开发个系统帮不上太大的忙,各行各业里有各自的创意,中国软件业创意少并不代表中国乡镇企业在成长中解决各方面困难中的创意就少,中国政府在解决十几亿温饱的问题上创意就不少么。

                  今天翻找一个以前的老贴子,看了几个风北客以前的回帖,很有思想但以前没看到,也就没把讨论继续下去。我发现一个现象,大概你们几位都是国内成长起来的软件专家,思维方式比较让我不习惯。风北客能从PM管理的困难上引发想到了很远,其想象力其深度都留给我很深印象,但对问题症结的本质却离题万里,其实问题很简单,只是人们的习惯思维在不断更新的计算机业没有完全适应而已。解决问题,不要想一劳用逸,不要贪图一概而论,但不能说了解需求要大家跟着感觉走,靠个人修行来保证产品的结果,这种天方夜谭现在很难再卖的出去了。 经典SDLC下有很多问题,但绝大部分不是人的问题,更不能用人的能力做托辞,因为制度的本质就是脱离人的能力而存在的。 制度的问题只能从制度着眼,改进就是了,细分,条条框框越多,漏洞,理解上的不相容就越少,这是制度化的真髓。现在的问题是典型的那句话“法制不完善”。 另一个原因是随着制度的细化,overhead越高,在规模达到一定程度以前,对效率往往是负面影响,这也是许多“一线”人员对制度恐惧的根源。但这个问题也是有解得,即然是软件工业,这方面的工具化,自动化也会慢慢发展起来的,效率最终不应该成为开发的阻碍而得以把制度惯撤下去。 最后的困难是计算机业技术的更新快,这就要求制度不合理的地方要随着更新,工具也要随之改进,而制度本身不同层次也有不同的更新速率。

                  这些要求在目前的情况小基本上还是大部分在手工状态下,这与管理层本身对计算机业的了解成度有关,许多大公司主管一级多少还是从其他行业转过来的,等得Gen X, Gen Y进入高层的时候,他们多些问题的看法与关注度就会与这一代管理层不同了。 软件管理本身是很复杂的一个行业,直到这一行业出现微软,intel那样的大厂商之前,目前的困难不会出现大的转机。一个有趣的例子是,微软做IDE多少年了,但一直到最近才开始推出个象样的team system,按惯例,这也准是微软看到了这个市场的规模达到一定水平才会有的举动。这种例子只是冰山一角,但软件业的加强管理,提高管理的自动化是不可逆转的趋势。这方面,应该承认老印的嗅觉还是比较灵的,离岸外包许多就在这方面下功夫。

                  说是少说几句,结果还是码了一大篇,想到哪就写到哪,这个话题说起来没个完,还是求同存异吧。 但是对用户需求的管理不谈,只说了解得话,这还是个很有意思的课题,风北客等如果有兴趣,可以多多交流。 我自己最近比较感兴趣的是观察facebook如何因应用户而改进他的网站,当然不是为了照猫画虎,而是希望了解web这个用户群体的需求在没有正式的需求文档等程序(facebook内部当然是有),沟通的条件下是如何满足用户要求的,必竟这才是最终目的。而如果web这个人数级别的群体可以满足,一般商业应用内部用户的需求就不在话下了。

                  通宝推:铁手,
                  • 家园 你对技术的理解还是有一定的偏差

                    “问题最终还是要靠硬件解决”

                    说明你完全不知道问题出在哪里,为什么需要修改内核。我只能告诉你,那个问题不是你安装一个超级网卡就解决的。也不是你把CPU升级成最新版,内存加到16个G就可以的。

                    另一点,我从来就不否认创新的重要性。我的观点是,创新一定是要在坚实的技术基础之上的。否则中国的民科全部都可以去拿诺贝尔奖了。

                    还是这个网络负载的例子,为什么别人会想到改内核,为什么改内核会解决问题?有这样的想法,本身就需要对操作系统对网络协议栈的支持有完善的了解。你找个用VB的问问,看看他能给你什么“创意”的解决方案。

                    对于网络应用,几百万在线,根本就不是什么大的网站。一般的网站的确是如你所说,采用了“硬件”解决方案:专用接入服务器。可那所谓的硬件解决方案,他的网卡,CPU并不比你的server高明。彻头彻尾还是一个软件解决方案。这也是为什么你会发现,CISCO里面写程序的工程师远远多于做电路的工程师。

                    即使是这样的硬件解决方案,对于你后台的压力分派也是完全没有帮助。

                    至于国内专家还是国外专家的问题,我压根就谈不上是什么专家,国内国外都呆过而已。了解腾讯,是因为有朋友在里面工作。了解google,是因为听过他们的presentation。本人现在在做云计算方面的项目,方向是Mashup Markup Language。有兴趣的话,可以切磋交流。

                    • 家园 裤大94级的?在新加坡混过?

                      几个问题

                      1. oracle rac在百万记录达到几百tps小case,

                      我自己在非RAC的x86上测试,单节点都轻易达到800tps(每个transaction4个sql,3个查询一个更新)。对于rac的极限,不知道你有什么进一步的资料。

                      2. 我感觉创新并不一定需要坚实的技术基础,这种限制可能对于大部分天赋比较弱的程序员来说有用,需要靠积累来完成量变到质变的过程。但是并不意味着所有人都是这样的。

                      举个例子,最近我们一个菜鸟程序员,程序都写不利落的人,提出一个问题解决思路,虽然有很多缺陷,但是和我曾经仔细考虑过的一种解决方案的一部分一致。而大部分有经验的程序员,虽然有比较扎实的基础但是至少从未想到过这样去解决问题。

                      还发现一个有趣的问题,项目里面最有想法的人,往往都是技术最差的那几个,因为对技术一知半解,不受任何约束,反而有不少有创意的点子出来。

                      另外我感觉,其实技术往往是由创意去驱动的。腾讯的程序员也不比其他程序员强多少,只是因为由了这样的需要,才push他们去解决问题,逐步提高了自己。

                      facebook一个星期写出来第一版,有鬼的技术含量,看facebook的架构变迁就知道了。google也没那么神奇,最近看一本八卦,google刚刚上线的时候,佩奇因为系统瘫痪居然躲到桌子下面去了,还是一个外援出手才搞定了廉价pc集群。

                      3. 顾教授不是程序员出身的,所以他看待问题,更多是以一种学院派的角度去考虑问题。理论上的东西多,实践的少。 前后和不少老外共事过,也在国外工作过一段时间,我感觉国内软件业和老外的差距,其实核心还是基础产业的差距,因为软件毕竟是服务性产业,必须有所依托。 比如facebook,如果脱离国外的商业社会长期养成的信任文明,一无是处。

                      • 家园 我毕业的时间比94可能还是要早那么一点

                        风兄是不是把我和什么人搞混了。

                        已经有一段时间没碰数据库了,最近的测试数据手头也没有。可能最近会做一些数据库效率的测试。根据我之前的经验,基本上Oracle的处理速度具体要看你的测试环境和逻辑复杂程度。Oracle内部操作的确是比较快,但是通常的商用系统业务逻辑都是定义在数据库外部的。在你的测试用例中,一个transaction,只查询4次数据库,更新一次数据库,这个有点理想化。一笔简单的转账,包括从源账户扣除,在目标账户记入,两边的流水记入,以及日志,就是5条写操作。加上花在事务协议上的时间,虽然现在的数据库和硬件都比几年前有所提高,但是如果业务逻辑在数据库外部,单PC节点800tps肯定是不可能的。

                        我们之前,曾经做过多币种的实时交易系统,里面的逻辑比较复杂。一笔简单的转账,需要更新10多张表。最后查询使用Cache,交易过程使用存储过程。单纯在数据库内部调用存储过程,在单PC服务器下面每秒钟大约可以做到60次左右,但是,从Java端调用,每秒钟就只能到10几次。当然,这是几年前的系统,现在应该性能有所提高。

                        现在使用一些Partition和Data Grid的配置或者第三方工具,可以大大提高查询和更新的速度。但是对于一些Cross join的交易,还是比较麻烦。而且,数据库昂贵的license,(特别是RAC和partition)也是一个负担。除了金融和博彩业,能用得起Oracle做网站存储解决方案的太少了。如果腾讯之类的企业采用oracle的解决方案,估计早就销声匿迹了。

                        对于技术差的看法。可能我们对技术差的定义不太一样。

                        没经验不是问题,只要有想法,有学习能力,有钻研能力,就是可造之材。个人而言,我挺喜欢和这一类的人工作。他们不应该被称为“技术差”,只是缺乏经验而已。正如你所言,缺乏经验可能往往也会成为一种优势。所以,对于工作有一段时间的“老兵们”来说,有的时候,能忘记自己所了解的东西,从头学起,也是一种能力。

                        但是,如果一个人工作了三五年,对于他自己所作的技术问题还是一知半解,这种“技术差”的员工,哪怕再有想法,从我目前的角度来看,我也只会去选择无视,即使最终可能采用的方法和他的类似。这里面有团队管理的问题,也有信任方面的问题。

                        通宝推:然后203,
                        • 家园 hehe

                          那个tansaction就是真实的case。一部分操作已经转换为异步处理了,所以核心平均下来就是这个数字。不过不是很确定我们统计方法是否有太大的差异。

                          我觉得这个数字非常普通了,在itpub上看到其他人做的测试,一般的pc服务器 跑tpc-c,oracle 10g,单节点做到900并发用户,事务完成时间1秒以内。按我的算法,tps也可以算900+了。

                          特意到tpc上差了一下,单cpu 4核 Intel Xeon E5420 - 2.5 GHz pc服务器,跑oracle11g,可以到4000tps左右, 所以我的数字其实一点都不夸张。

                          不过这些传统结构,对付几千到几万用户没什么大问题,上百万用户就完全死翘了,现在刚接触大规模的互联网应用,还在学习过程中。

                    • 家园 发现你不读帖光忙着回帖了

                      几百万是大网站是跟你的下文,我举的例子是yahoo,msn,myspace,这些网站还不算大那什么算大网站?包括腾讯,相信也是顶级流量。容量自然要用峰值算,常说的小网站被Slashdot了就是指这种情况,但再大的网站也总会有超出容量的情况发生,只是太短暂就可以忽略不计罢了。我们不是常见有时大的新闻网站在突发事件如911那时上不去的情况发生。

                      再者,我帖子说过了我不熟悉腾讯的情况,至于为什么非要改内核不可,我只是大致猜测,不过这个用膝盖想也明白,肯定是哪里可以提升数据传输量或数据处理效率罢了。如果是这样的情况,硬件水平提高自然会减少对内核效率的依赖(我也没说过加内存是个办法啊,而且都要改内核,网卡还会是瓶颈么?),这两者是此消彼涨的关系,这很难理解么?当然如果是你故弄玄虚其实是其他什么无关的原因,就不需要扯上这些了。 但这与做VB有什么关系,做VB的自然不会有多少机会去关心底层内核的事,也不需要,但两者都有发挥创意的机会,只是领域不同罢。我甚至连乡镇企业这样的例子都举了,你还是在那个内核里面绕,非要告诉我世上只有这么一座象牙塔,能钻进去是一定不要钻出来的。但就是这样的领域我相信创意仍然是关键,只是在内核的层次的问题解决这个领域内而已。但不论哪个领域,那些基本逻辑混乱思维死板的人都很难会有出色表现。

                      Google在大型数据存储上有独到之处,人们常说google真正的商业秘密不是那个pagerank,而是它的分布数据库。我很久以前就发帖说过在IBM,Oracle等数据库厂家喊了许多年的分布数据库之后,还是Google第一个靠自己独自做到了分布数据存储,这些都是几年前的旧闻了。 其实许多大型网站用mysql做分布式数据库做的很成功,用分流树做partition,网上这样的介绍很多,据说Yahoo也是这样做的。

                      我对技术理解对错先放在一边,但看了你的回帖,我的理解是你其实可以先把那个云计算项目放一放,我刚才大概去看了看这个MML的情况,听起来不错,但是如果目标是Enterprise的话,想法幼稚了些。在web上可能更有前途,可是对web我一惯不看好理论指导实践,web上的特点是emerging,否则想指点江山话的首先需要的是影响力,比如微软让OOXML成为标准那样,或者手里有家伙要胁人,比如IE8那样我行我素一直在改。所以呢,mashup的事还是让那些以前写VB现在写Ruby的人去操心吧,这种事不是在象牙塔里埋着头就能成的。

                      一孔一见,见笑了。要出门几天,能上网大概也写不了这么多了。你如果有心,可以把你在做的项目说说,看看有什么我没想到的。

                      • 家园 你首先要搞清楚争论的论点和论据是什么

                        我想我们基本的分歧在于,你认为创意是中国程序员缺乏的,而我认为没有坚实的基础,创意只是白日梦。

                        我举例子只是说明技术积累对于解决问题是多么重要。而你给我绕来绕去的yahoo,恕我愚钝,我不知道你的目的何在。

                        计算机科学,就是一门应用科学。抱歉,你给我贴的螺母螺栓,土专家,思维混乱的象牙塔工作者,都不靠边。

                        你说Google在大型存贮上有独到之处,可你不了解的是GFS Paper的第一作者Sanjay Ghemawat,研究分布式文件系统已经17年了。他本人也从MIT博士毕业后加入DEC SRC,4年后才加入Google。你可以去查查Google Fellows的个人主页,哪一个不是经过严格的科学训练,拥有多年的丰富科研经验的专家。或者按你的话,“钻进象牙塔钻不出来的”。华为任正非曾号召华为员工,“板凳要坐十年冷。”正是对科研工作,尤其是工业研发过程最好的总结和指导。

                        至于云计算项目,我们这边有7个国家10多个实验室共同参与,我不知道你让我放一放是基于什么理由?至于MML,你如果只是花了10分钟或者半个小时问了问google,抱歉,我无话可说。

                        你所说的emerging,只是对你来说,仿佛技术都是突然间从地底下冒出来一样。那是因为你只看见了凤凰涅磐之后的辉煌。Ruby貌似新潮,其实它已经有10多年历史了。Functional Language更可以追溯到上个世纪50年代。

                        所有的一切,都在证明一点,在技术研发这个领域,没有长期的积累,没有坚实的基础,所谓灵感,创意造就成功,都是白日梦。

                        当然,如果你是指商务,创业,做生意,那可能是另外一回事儿。但那个和本版,本主题都没任何关联。

                        • 家园 的确越来越驴唇不对马嘴了

                          我从没否定坚实基础的作用,但这和有没有创意是两会儿事,你我真正的分歧在于你认为创意是在坚实的基础上产生的,或者是一种延伸,而我认为创意与坚实的基础是两个范畴上的不同概念,有没有坚实基础与能不能产生创意有点关系但没有因果关系。“Imagination is more important than knowledge”这句话耳熟吧,可别说是我说的啊。我的本意是区别菜不菜鸟的不在于是做VB还是改Linux内核,那是锻工与钳工的区别。 菜不菜鸟还是要看创意,长远看这是决定软件产业水平高低的关键因素。说软件是应用科学就如何如何,这与本主题有关联么?

                          了解你很不鸟Yahoo,但这与我的观点有什么关系,一个例子而已。 Google那点历史满互联网都是,从pagerank原理到其他什么的都是公开的,但这和做出来产生今天google这样的搜索效果是两回事。我前几个贴就说过,google是一系列创意的结果,做科研本身对创意要求就是最高的,这与坚实的基础有什么关系,难道是说最先想到去研究pagerank与搜索相关性的那位是因为从中学到大学数学一直都得满分才会这样想的? 至于华为那套一直在抄一直在改的哲学有什么好骄傲的,有段时间遇到一个自称在华为做过的程序员,人很聪名,反映很快,你点1,他就2,3,4都给你想出来了,唯一缺点就是如果你不点1,他永远也想不起从哪开头。看出问题了吧。

                          对你那个云计算,我说过是一孔之见,况且也没指望你能理解别人是如何能通过google几分钟而产生个观点这样的事。不过我说的emerging不是指的ruby这样的通用编程语言,我所指的是web上的应用

                          web上的特点是emerging
                          ,这是我原话。据我到目前的理解,这个MML是有一部份人受到了web上mashup应用现象流行的刺激而产生的,以为万物都要以mashup为首的忘想狂的结果。 但谁知道呢,也许如你所说五十年后,MML也许被当作今天我们说functional language一样的很概括的理程碑式的词汇了。 但愿我是错的,这一直是我最大的愿望。

                          • 家园 看得出来你对国内“土”专家的不屑

                            拿一个不说“1”不知道“2,3"的空泛个例来贬低整个华为研发人员的群体。没有意义,也没有价值。

                            能抄,能改是基本能力,如果连抄和改都不会,难道从娘胎里面学来的创造??

                            在电信领域里面,爱立信,阿尔卡特这样的老牌企业,一样被华为带来的巨大竞争压力压得喘不过气来。在即时通讯领域,MSN在中国,面对QQ的强势市场,被迫定位在中高端市场。这个就是你看不上眼的,只懂2,3,不知道1的土专家长期努力的结果。

                            既然你把mashup狂这样的标签乱贴,我只好给你讲点基本常识。MML的目标根本就不是通用语言。Mashup的目标是给予最终用户定制服务的自由和权力。MML的使用对象是最终用户,而不是计算机专家。理想是能够提供一种简单的,面向服务的,容错性强的描述语言。现有的MML,无论是Google Mashup Editor, Yahoo Pipes, JackBe,BungeeConnect都属于MML的先驱者。当然他们有的过于简单,有的过于复杂,和我们的目标和理想差的还很远。我们要做的就是,利用一切可能的手段和工具,缩短这个差距,或者是证明这个东西本身就是一个白日梦。

                          • 家园 说得挺好,如果能客气点,就更好了.
                    • 家园 几百万在线,根本就不是什么大的网站?

                      老大在google?口气很大,呵呵。

分页树展主题 · 全看首页 上页
/ 14
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河