IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

做事,评估的三点原则

caoz的和谐blog 2009-11-03 09:03:44 累计浏览 2,548 次
本机暂存

       这段时间caoz发现,在10多台web server里面,性能最好,最稳定的,居然是最早配置的apache prefork模式,而后配的apache worker,nginx,以及临时配置过的lighttpd (已撤掉),无论是负载支撑能力和稳定性,统统没有apache prefork好,当然,这事一说出来就被aa总BS. 相信很多人也会一样BS ,不会吧,apache prefork ? 侏罗纪的标配吧. 互联网上到处都是性能评测文章,无论是哪一篇,apache都是放在那里做绿叶去陪衬红花的.由此引申caoz做事情,做评估的三大原则. 三大禁忌, 也算同时解答某忠实读者的问题.

      第一,实践是检验真理的唯一标准. 不多说了.

      第二,思想驾驭工具,而不是工具驾驭思想. 比如说apache prework, caoz 用了快10年了,比较熟悉,怎么优化,怎么配置合理,就算有些经验了,而nginx虽好,但是caoz不熟悉,好工具没有正确的驾驭,性能就发挥不出来,做个假设,一个优秀的射击运动员拿一把普通的枪和一个蹩脚的射击爱好者拿一把专用比赛枪,谁的成绩会更好? caoz最反感的就是,只看过几篇评测报告,只知道一些工具名词,就以为精通系统配置和性能优化,简直可笑,每个参数什么含义,每个配置项的目的是什么,你具体应用中,怎么理解这些参数的工作原理,配置项的运行机制,并与实际应用环境相结合来分析. 通过计算来判断负载支撑性,并优化参数, 这些都是以深入理解为基础的. 说实话,caoz仍然不敢认为自己已经掌握了这些精髓,但是每次遇到问题,面对问题的时候,caoz都会试图去理解其原理,其机制,其相互作用关系,然后依此作为分析问题和解决问题的依据.

     在这里,caoz推荐一个人的博客 http://blog.sina.com.cn/iyangjian 这里有很多系统配置优化的实例,这里的关键不是他怎么具体操作和实现的,而是他怎么分析问题的. 这就是一个思想驾驭工具的典型案例,caoz的系统不可能完全按照他的配置来操作,那样就死定了,应用需求差异太大, 但是他思考问题和分析问题的方式,却很值得学习.

     第三,没有最好的,只有最合适的. 为什么每个webserver都有配置项,而且都有多种范本, 什么是最优配置,什么是最优方案,这是和你的应用环境密切相关的,没有说通用的方案可以解决不同环境的所有问题,这是不现实的. 你要选择方案的时候,那些看上去口碑最好,评价最高的,是不是一定就适合你, 其实不一定, 通过实践,通过深入分析,选择合适的就好. 所以,认清自己的需要,认清自己的目标,仍然是最重要的.

    针对三大原则,说三大禁忌

     第一,想当然. 主观臆断. 遇到问题, 不做比对测试,不做重现测试, 不做认真的评估,想当然的下结论. 任何假设都需要有实践来作为证据.大胆假设,小心求证. 想当然者,只假设,不求证,然后就开始付诸行动,所以往往是捡芝麻丢西瓜,做无用功,徒耗精力.

     第二,人云亦云. 没有思想,没有清晰的目标和业务分析,没有对需求的完整把握, 盲目追新,追全,追高, 运气好时或许可以解决问题.但是这种侥幸不是任何时候都靠的住的.

     第三,治标不治本. 头疼医头,脚疼医脚, 短期内确实能够解决问题,但是往往忽略了业务逻辑,数据,应用的相互关系和彼此影响. 评估产品和评估技术其实一样,要考虑到多种因素,多种元素的互动关系,影响关系,作为整体来考虑,脑子里要装着整个系统,而不是一个局部,分析问题的源头,这样才能对问题斩草除根.

    今天说的,看上去是面对运维架构的一些,但是对于产品分析,caoz认为也是一样的原则;对于做人,做事,也是通用的.

补充

1:有人提出了是prefork不是prework,接受批评,我还真没仔细在意这个写法的不同.

2: "换句话说,来个nginx高手,那做出来的性能一定比caoz高了。所以排除人的因素,apache prework的性能的确应该是差的了。"   典型的人云亦云和想当然, 事实上caoz自知对nginx理解不深,所以特意请圈内很有经验的朋友,也是在非常有名的网络公司做过相关工作的人,协助配置的,而且在多次崩溃后做了多次调整,(高手刚配置好的nginx简直惨不忍睹,和我们业务需求脱节甚大,在与apache处理环境相当的情况下,竟然频频崩溃)仍然无法达到与apache匹敌的效果,并不是菜鸟用默认配置来充数的。 您做这个结论的时候,了解过caoz的业务需求没,对比过实测数据和不同参数的性能影响没? caoz不否认您这个说法可能是对的,但是,未经实践就下结论,正是本文三大禁忌中特别强调的。 另外,您知道我们单台apache服务器一天能处理多少动态脚本请求吗?  

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. Git log diff config高级进阶 (累计阅读 24,844)
  2. nginx的配置文件 (累计阅读 9,884)
  3. Zookeeper研究和应用 (累计阅读 9,484)
  4. 说说lighttpd的fastcgi (累计阅读 7,323)
  5. ZooKeeper管理员指南——部署与管理ZooKeeper (累计阅读 6,590)
  6. 如何让ssh登录更加安全 (累计阅读 5,713)
  7. Tomcat 5源码分析 (累计阅读 5,261)
  8. squid缓存失效之谜:一步步提高squid缓存命中率办法记录 (累计阅读 4,963)
  9. 共享会话的ssh连接配置 (累计阅读 4,819)
  10. 让虚拟主机也用上SVN:适用于个人的开发部署方式 (累计阅读 4,787)