主题:大型、高负载网站架构和应用初探
时间:30-45分钟

开题:163,sina,sohu等网站他们有很多应用程序都是PHP写的,为什么他们究竟是如何能做出同时跑几千人甚至上万同时在线应用程序呢?

  • 挑选性能更好web服务器
    • 单台 Apache web server 性能的极限
    • 选用性能更好的web server TUX,lighttpd,thttpd …
    • 动,静文件分开,混合使用
  • 应用程序优化,Cache的使用和共享
    • 常见的缓存技术
      • 生成静态文件
      • 对象持久化 serialize & unserialize

    • Need for Speed ,在最快的地方做 cache
      • Linux 系统下的 /dev/shm
      • tmpfs/ramdisk
      • php内置的 shared memory function /IPC
      • memcached
      • MySQL的HEAP表
    • 多台主机共享cache
      • NFS,memcached,MySQL 优点和缺点比较
  • MySQL数据库优化
    • 配置 my.cnf,设置更大的 cache size
    • 利用 phpMyAdmin 找出配置瓶颈,榨干机器的每一点油
    • 集群(热同步,mysql cluster)
  • 集群,提高网站可用性
    • 最简单的集群,设置多条A记录,DNS轮询,可用性问题
    • 确保高可用性和伸缩性能的成熟集群解决方案
      • 通过硬件实现,如路由器,F5 network
      • 通过软件或者操作系统实现
        • 基于内核,通过修改TCP/IP数据报文负载均衡,并确保伸缩性的 LVS以及 确保可用性守护进程ldirectord
        • 基于 layer 7,通过URL分发的 HAproxy
    • 数据共享问题
      • NFS,Samba,NAS,SAN
    • 案例
  • 解决南北互通,电信和网通速度问题
    • 双线服务器
    • CDN
      • 根据用户IP转换到就近服务器的智能DNS,dnspod …
      • Squid 反向代理,(优点,缺点)
    • 案例

     



    附记:

    pea上海的负责人h058在3月1日就邀请我希望我在pea上能说点什么,虽然我觉得我还是算健谈,但是觉得需要在如此正规的场合做演讲我还是真没有经验的,就连ppt我都不会做。一开始h058叫我说说linux下svn的部署,但是我觉得这个题目太浅了,也没有什么花头可以说。于是就想说点其它的。正好这段时间自己对服务器部署方面和应用程序优化这方面非常感兴趣,也想认真归纳了一下,于是就敲定这个题目了。

    写大纲非常快10号左右基本上要说的话题都定下来了,虽然要说的东西基本上都非常熟悉如MySQL,Apache,包括集群的两个应用LVS和Haproxy自己也亲自做过试验,但是还是考虑到演讲的过程中会有些朋友提出一些比较刁难的问题,自己不懂,于是还是做了认认真真地对每个细节做足了功课,并且在每天睡醒地时候自己默默地在脑子里面像电影那样过一片。

     

    3月24日,交大惠谷创业中心,shopex 407 培训教室….. PEA Shanghai 第七次聚会开始,与会人数约30人,还是10多名php的培训学员.

    一开始是无喱头同学演讲的”PHPCMS系统的设计”,可能是对与会人员参与的情况了解不足,在系统宏观讲解和一些程序处理细节上觉得重点没有突出,到处着墨,洋洋洒洒18页Word文档,近1小时的演讲我已经听得已经云里雾里了,环顾四周,身边来培训php的一位小mm已经在偷偷睡觉了…..

    15:55 分,无喱头同学觉得自己说得实在有点深了,主动提出中止演讲,休息十分钟,到我上场。

    演讲意外的顺利,35分钟,从开题到留homework,行云流水,一气呵成,连水都没有喝一口,其中加入了不少极兴发挥,那时候觉得情绪非常激昂,浑身充满力量,唯一不爽的就是喉咙有点痛,呵呵:)

    当我宣布“好好学习 天天向上”演讲结束后,同学们爆出热烈地掌声,那时,我深深地吐了一口气,压在心里的多日的大石终于落下来了,演讲看起来非常成功。

    在演讲的过程中,我发现刚才睡觉的小MM居然也在聚集汇神地听我说话,让我值得感动的是发现还有不少同学在记笔记,没有人打瞌睡,结束还是很多人问我拿ppt。我问马哥我说得如何,马哥评价说“条例清晰,思路明确,语速平稳,真的不错!”,h058也称赞道我把现场的气氛调动起来了。嗯,那基本上可以肯定这次演讲还是做得不错了,自己给自己打分的话,88分!

    回想一下,其实还觉得有一些不足的,觉得语速还是偏快了,没有抑扬顿挫感觉。并且声音太大,弄得自己喉咙不舒服。情绪还不是太稳定,稍微有点激动了。还有不知道是大家全都熟悉我说的话题还是我说得很透彻,基本上没有人提出问题。而我觉得好一个好的讲师,应该能调动大家的积极性,让大家一起参与话题的讨论中来,这点看来还需要继续锻炼。

    通过这次演讲,发现自己在做一些即兴发挥的话题还有演讲方面等还是有点天赋和潜力可挖,以后一定要多多参加锻炼。并总结出要将一个演讲做好,要准备以下几点:

    1) 精心的准备(包括选题和对听众的了解)
    2) 稳定的心态和平稳的情绪
    3) 热诚,全付身心的投入
    4) 平时语言和谈吐技巧的积累
    5) 想办法让听众参与到你的话题中.

    演讲使用的ppt:peash-2007-3-25.ppt

    更多照片:http://www.flickr.com/photos/onion83/sets/72157594434393904/

    挖了一个土豆出来: