居然锁帖了,针对宏X一些观点的看法

曾建凯 发布于 2011/04/24 02:29
阅读 5K+
收藏 6

就算被B我也要跳出来说的了:

=================宏X的观点原文=================

这里面已经分享很多,能看到多少取决于你自己

其他人都是傻瓜,所以都不用lighttpd

Nginx 或者Apache 的mod_fastcgi 才是fastcgi的事实工业标准,

只有你聪明,选择了lighttpd,独辟蹊径,还经过了“严格”测试

lighttpd 除了不稳定外,没什么缺点!

老板厉害就在这里,他知道怎么判断大局,你还在自己“聪明”的小世界里面

聪明人

慢走,不送

============================================

 

1、lighttpd不稳定,请你拿出实际测试的数据出来,没有的话,你也只是看别人的文章得出的结论。而我无论在压力测试中(用一些压力测试软件进行过,自己写程序刷也试过),实际部署中,都证明了lighttpd稳定性和性能优秀。javaeye也是用lighttpd的,我从最早看robbin对于javaeye部署ruby on rails的帖子中了解到这个http软件,并研究了2年多,才敢在公司当时至关生死存亡的一个项目中使用lighttpd。

实际结果是,在那之后一个月,某个投票高峰期,一周内每天300万PV,数据库增幅每天600万条记录。服务器7*24小时坚挺。我是没试过nginx,但我相信apache是做不到这种稳定性的。

实际项目部署,从托管出去至今,三年没当过机,没有异常。除了更新一些配置令lighttpd重启,别跟我说热部署。

2、你别跟我说什么最佳fastcgi部署实践,你丫根本就什么都不懂,也就是道听途说没有实际经验的家伙。

nginx最早的版本,fastcgi使用的就是lighttpd的spwan-fcgi的模块,如果你要手动编译nginx并且支持fastcgi,首先必须编译lighttpd,然后使nginx调用spwan-fcgi来管理fastcgi。

php-fpm是后来才有的一个东西,也是至那以后,nginx才渐渐获得了PHP阵营更多的支持,毕竟nginx一直都是一款优秀的代理服务器,这也是他最早的设计初衷。

php-fpm我在试验环境进行过测试,当时是5.3.1,还没有集成到PHP的sapi默认内核中,需要以扩展形式编译。虽然php-fpm很有吸引力,但是实际部署还是存在一些问题:

(1)由于他支持热部署,一个子进程如果使用了旧的php.ini在内存中未被销毁,那么新设置的php.ini必须在新产生的进程中才能看到效果,旧的进程到销毁之后,才能见效。这使得他的热部署有点浮云。

(2)关于时不时出现莫名的500错误。

而这也是在那次部署之后了。当时的spwan-fcgi来说,除了spwan-fcgi在内存占用和当达到线程峰值的销毁和转换过程显得有些硬直外,其他都表现都还是很理想的。

事实上,lighttpd除了拥有spwan-fcgi之外,还拥有一些较为理想的扩展模块,例如,支持lua开发lighttpd扩展,支持对目录结构缓存,支持更加直观的web conf配置。而且,当时lighttpd(3年前)也是业内公认的静态文件处理性能最高的http软件。

3、为了再次证明,你根本就是墙头草,只可能是一时的昙花一现,我愿意再冒着被B的风险说多两句。

为什么说你考虑用PHP在win环境控制COM是疯子的行为呢?其实说疯子真的有些过了,顶多算个呆子吧!PHP官方文档已经说得很清楚了,PHP开发是基于linux下的多线程模式的,所以PHP最佳的实践环境乃是在linux。当然,这些年他们也再努力提高其在windows上面的表现能力。

所以,不知道你是看了哪篇文章一时兴起,大发感慨而作,真相帝一般用PHP暴露了win的COM。

但是你不想想,win下,你选C不好,选C++不好,C#不好,偏偏挑个在linux模式下开发的PHP来暴露win的COM,我都不问你是不是蛋疼了还是脑袋让门给挤了,只能说,你有些呆。

整个世界,都是在变化发展着的,嘲古,得有个谱,你也得看看整个事物的发展过程为什么会这样,你揣着今天的是,耻笑昨天的非,殊不知,正因为有昨天的非,才促成了今天得到的是。

你说lighttpd不稳定,说nginx是fastcgi的最佳实践之道,你得了解他们彼此之间的关系。在当时没有php-fpm的条件下,我为什么要编译一个nginx然后再去编译一次lighttpd呢(别说spwan-fcgi现在已经被独立出来作为一个独立的项目,当时仍是和lighttpd捆绑着的)?选择lighttpd,是各种因素造成。nginx也是最近几年才发展迅猛的,早些年,发展一直都是龟速。

你笑我“独辟蹊径”,但就是这样,恰恰暴露了,你根本对这其中的细节一无所知,最起码,3年前,你根本就不知道lighttpd和nginx的任何关联,你只是在脑海中将两个东西做了一个貌似很明确的界限。你笑我自以为聪明,其实也正正说明了你自己不知其然,不知其所以然。

你说mysql这这那那不如,我想说,你可以不用,不用非得跳出来,说他不是个数据库。其实我早前回帖说过的话,就已经埋下了伏笔了:“是不是个玩具,还得看是不是个东西的人怎么用。是个人,玩具也能玩出水平;不是个东西,飞机大炮原子弹也能国破家亡,灰飞烟灭”,你就非要这么闹腾的证明自己连个东西都不是吗?

我记得,2年多前在blueidea看到某篇讲网站重构的文章,被我狠狠的留言骂了一顿,我想那时的回复很适合送给楼主:

==================================

janpoem Publish at 2008-11-5 18:19:38

又来这些雷人的文章。

网站重构的首要目的是突出内容,其次是将现有的样式和标签简化,整理出一套符合现在情况的标准,以做后来者的参考和指南,同时重构还为了降低页面制作的时间长度从而控制生产成本。不是什么人文为主。。。别空谈

网 站重构不止结构、行为、表现三方面的分离,也是页面重构,网站重构还包括对资源分布的部署的优化,比如静态资源的存放(CSS\JS\Images\静态 页面),缓存的管理,这里的优化,是专指,在完成初步开发和制作计划后的优化,图片压缩、图片全部保存在一个文件中,这也必然牵扯到页面样式的调整,脚本 样式表的细节方面的重新分离和合并,压缩与缓存,这些才是网站重构。

04年说重构,针对的是过去网页制作行业的一系列不良做法:比如用一 个1×1px的透明图片撑开td(使用样式进行控制),漫无目的的使用font标签(使用样式进行控制),标签不分大小写,标签属性使用单引号,或者没有 引号(统一使用W3C标准的小写并使用双引号),还有标签没有闭合(楼主不知道以前网页的Select是怎么做的吧?),等等一系列早期存在的很多不良作 风,而不是仅仅针对Table还是div。

为什么要这么做,请查阅W3C网站的一份文档《文档资源可描述性框架》,但是不是做到了标准就做到网际文档的绝对可读性呢,显然搜索引擎操纵了一切。

当 时04年提出重构,使用CSS,是强调要用样式来控制一起,改变过去样式写在文档中的习惯,文档应该仅仅包含内容和文档结构。使用div,是推荐使用 div替代table来做页面布局。我又再告诉你一些久远以前的事情,以前的网页,先是用layer做的,然后再转成table的。这个layer就是 div的前身。所以合并称起来,叫做div+CSS,是指两个含义,使用div布局,使用CSS控制样式。

同时当年重构,提出了很多思想,虽然,如果你一直都有用CSS,就不会觉得那有什么新鲜,但对于当时大家都在用1 × 1px gif和font的年代,通过修改外部文件即可以完成大量页面的样式调整,在当时做网页的行业来说是有很多的冲击力的。

你今天懂了这一切的道理了,CSS用得理所当然,却觉得当年人的不如了。但我说你,只是管中窥豹,只见一斑,未得全貌,当年的风风雨雨你还未知究竟呢。所以,请不要在这里混乱视听了,网站重构,在他的年代是做出了有意义的历史贡献的。

加载中
1
宏哥
宏哥

引用来自#60楼“曾建凯”的帖子

引用来自#59楼“耿蓓蕾”的帖子

引用来自#20楼“宏哥”的帖子

引用来自#19楼“灵剑子”的帖子

我说这位兄台,有道理就讲道理,没道理就消停一下,别光反问别人,反问别人不显你多高明,这是虚弱的表现。别耽误大家的时间了。

第一Spawn-fcgi质量很差,没有人用

第二Lighttpd不够稳定,大的网站都不用

第三,用apache的不是傻瓜,

清楚了没有

至于前面有一对lightttpd的客户列表,楼主知道怎么验证他们是否是使用lighttpd,我不多说

想知道的问楼主

呵呵,看不到举例,没有说服力.

最好是用数据说话.

同意,既然宏哥也说别人的观点没有实际数据支持,那么对于他说得这些观点,请给出实际的参考数据出来。我主动点,不妨提示一下,什么数据比较靠谱:

1、代码分析,这是必要条件也是充分条件。

2、实测数据,如果是为了对比nginx和lighttpd,就不能仅仅局限于PHP这种fastcgi模式了,还可以从py和ruby等脚本级的测试情况来作为参考,我也不妨再具体一点:

(1)比如ror landing in thin or mongrel mode,这种是适合在nginx的代理模式下进行测试的,如果要测试ror在nginx的fastcgi模式,你得用spwan-fcgi模块+fastcgi,这时候需要用nginx+spwan-fcgi和lighttpd + spwan-fcgi,这样也许很有说服力。

(2)python

(3)测试吞吐量的问题

宏哥总是说,我们要拿出实际数据说话,那么请对上述问题举出实际的测试结果。

而例举lighttpd是不是有什么主流非主流的网站部署案例,不是不行,但这个只是一条充分条件,不是证明你观点的必要条件。我们程序人员,就要抱着科学客观的态度,以数据和实践为自己的行动指导,科学、辩证地看待每个问题,随时能动滴、主观的改变自己看法。

期待着宏哥来改造我的看法!谢谢支持!

宏哥第一份工作是做证券交易软件的通信平台部分。任何交易平台,有两个问题要解决:

1: 数据正确性,就是应答需要对应请求,这个是非常严格的要求,否则要出大问题,即A请求不能返回B请求对应的结果

2:线程/进程池:需要将请求指派的闲置线程/进程,这是为了缩短响应时间和提高并发处理能力

spawn-fcgi在这两个东西上都出大问题。

1:做一个并发测试,每一个请求都对应一个流水号,要求应答将此流水号返回,并对比这个流水。这个测试表明spawn-fcgi搞不清哪个应答对应哪个请求,这在社区/bbs上不是大问题,但是在更多的场景,这是绝对无法接受的。

2:用AB做测试的时候,将线程/进程标识也作为应答内容,你会发现,spawn-fcgi根本没有任何调度能力。所有的负荷都集中在个别进程上,而且大多都是错误信息的返回。这个意味着你的测试,吞吐出来的数据,都是错误的,量就么有意义。

这个测试我都是几年前做的,因为我的职业敏感性,去做这样的测试。两个都是非常严重的问题,一开始,我以为这是在某个小版本号上出现的问题,我就对能够获得的各个版本进行测试,很遗憾,无法通过基本测试。那些做运维的人不是傻瓜,他们不选择spawn-fcgi是有道理的。我对lighttpd那个团队如此漠视质量,非常诧异。市场已经给出答案了。

你说的吞吐量,没有太大意义,大多的web应用,负载集中在数据库,apache很笨重,但是它那点消耗不算什么。

其他的数据我都不多说,在应答对应错误的情况下,任何的返回都是毫无意义的。你做的 应用可能很简单,每个请求对应的应答都是完全一样,这不会是问题。

至于lighttpd我也不多说,只说一点,我只在很多年前,对tomcat有重启的记录,后来换resin.在最基本的运营要求上,web server是不重启的,这个在大多正规的公司都是如此。

数据库,可能很多人认为mysql 表损坏,不支持在线修改表结构,不是大问题。实际上,核心系统,数据库几乎是永不重启。这可能对mysqler很难理解,这就是现实。表损坏,只有在所有硬盘都坏的情况才会发生。对于银行证券,如果发生表损坏,有很多人要丢工作的。是极其严重的事故。

1
宏哥
宏哥

引用来自#81楼“曾建凯”的帖子

引用来自#80楼“CheckStyle”的帖子

2:用AB做测试的时候,将线程/进程标识也作为应答内容,你会发现,spawn-fcgi根本没有任何调度能力。所有的负荷都集中在个别进程上,而且大多都是错误信息的返回。这个意味着你的测试,吞吐出来的数据,都是错误的,量就么有意义。

---------------------

这个设计我有些不清楚了,为什么要去标识线程/进程 呢? 难道是因为离线事务数据会Hold在这些线程中? 

他如果是交易API,那可能真的说得过去,他的会话状态是靠HTTP url来维持的。因为他必须在一次请求内完成交易,一个post和一个postback,你连会话都来不及启动了。而后通过一个标识要能查询会这次交易的记录。

不过这个是不是一个好的设计,值得商榷。

我推断他的进程、线程标识,是这个系统中的一个凭证,这是一个避免重型设计的选择。

系统有内部凭证来维护关系,scope就是这个请求应答边界

那个流水号是用来验证实现,通常外围系统会用流水号标识自己的请求,用于保护自己,保证应答对应请求

内部系统不对这个流水做任何处理,只是持有,在应答当中保留这个流水,内部有一整套东西来保证这个一致性,如果内部出错了,就会使得应答中包含的这个流水不一致,请求方会拒绝这个交易

外部的任何方法都无法打破这个一致性,否则这个系统无法支持上百亿的交易的

fastcgi也是要做这样的工作,来保证应答对应请求。

0
曾建凯
曾建凯

哎呀呀,真的看漏眼了呢,你居然还敢提mod_fastcgi,我看你呀,真的是什么都没自己试验过,你就是中国互联网发展过程中的一条小可怜虫,靠着国内那些天天人云亦云毫无创新的转帖,建立起来一些歪曲的观点。

mod_fastcgi已经很久没维护了,而且其性能和实际部署的可实施性,十分差。老外纷纷推荐fcgid。不过fcgid有个老大的部署难题,fcgi线程超时问题,自己去查查吧,真相帝。

我手头就有apache基于mod_fastcgi和fcgid部署的服务器,也有基于apache php handle和lighttpd spwan-fcgi模式下的服务器,全部都是我手动编译的,全部经过我的压力测试,不过真相帝博晓今古、通天彻地,这些玩具之于你不过浮云尔。

0
xyz555
xyz555

呵呵,楼主还为这样的人在自扰呢。

哪位宏X其实就是个说大话,其实什么都不懂的人,你仔细看他的帖子就会发现他只是知道一些名词,拿手的就是罗列这些名词,但是这些名词具体指是什么却搞不清,居然认为db = dbms,dbms = rdbms。前面他另一贴还说过mysql不能什么什么....,一看就是根本就没翻过mysql手册,我当时都说了,说这样的话前最好先翻翻手册,否则别人要笑他无知。而且凡是反驳他的就给别人扣个mysqler,呵呵

而且这种人死不认错,你跟他谈这些,呵呵......,以前也碰到过这样的人,经验告诉我如果碰到这种人最好就是退避三舍,没必要和这种人争什么,因为都是一种结果,你改变不了他什么,他也改变不了你什么。

0
鉴客
鉴客

挺喜欢 lighttpd 的,可这厮最近好像睡着了,更新缓慢,份额也一直在掉。

0
Xingjian_Xu
Xingjian_Xu

你说的是那个宣称mysql不是数据库的那个人?

每个大点的论坛,都有这种人

0
宏哥
宏哥

我只说两句话

1:Mod_fastcgi 是鼻祖,也是曾经唯一的选择,不变是因为稳定,web server不重启是基本要求

2:目前为止,没有看到入流的公司用lighttpd,spwan-fcgi从来没有稳定过,lighttpd已经决定了你的层次

和你们这种满口脏话的人说话,我都觉得掉价。看看和你为伍的都是些什么档次的,你不考虑自己,起码为孩子考虑。

最后一次。

0
bastetwang
bastetwang

嗯,宏哥的意思是你即使玩扫雷也最好装个专业显卡。

0
BossKiller
BossKiller

引用来自#7楼“bastetwang”的帖子

嗯,宏哥的意思是你即使玩扫雷也最好装个专业显卡。

 我也同意楼上看法。不同应用不同规模不用层次用不同的软件实现,而不应该求大求全,才是正道。

0
用户已屏蔽
用户已屏蔽

哟,又在吵呀。。

我感觉  宏哥是红薯的替身,故意来整我们的。。

 

这么多回贴中,不见红薯意见,

也不见红薯有何表示,哈哈。。

而且这个宏哥和红薯都有HONG,再个就是。。。。  

 

宏哥撒都知道。。万能的一样。。比AI还AI。。

返回顶部
顶部