從低成本、高性能和高擴張性的角度來說有如下處理方案:
1、HTML靜態化
2、圖片服務器分離
3、數據庫集羣和庫表散列
4、緩存
5、鏡像
6、負載均衡;一個典型的使用負載均衡的策略就是,在軟件或者硬件四層交換的基礎上搭建squid集羣,這種思路在很多大型網站包括搜索引擎上被採用,這樣的架構低成本、高性能還有很強的擴張性,隨時往架構裏面增減節點都非常容易。
高併發時,性能瓶頸及當前常用的應對措施
數據庫瓶頸。Mysql併發鏈接100
apache 併發鏈接1500
程序執行效率
1.有數據庫瓶頸時解決方案:
分主從數據庫,搭建數據庫集羣。
對數據庫進行分表分庫的方法解決。
使用cache(memcached),用cache層做優化。
使用mq(消息隊列)來分發數據。
使用了key-value的數據庫、做持久化的緩存。
2.apache瓶頸解決方案:
增加服務器,負載均衡。
由於進程數的限制,把一些基本不變的代碼挪出來放到單獨的服務器。
3.php的執行效率。原因有多個。
1).本身的效率低。
解決的成功案例是Zend Optimizer 和 facebooke的hiphop
Taobao是把php代碼編譯成模塊解決效率問題。
2). 數據庫查詢效率問題。如可能有order by ,group by 等Sql數據問題。
這個其實應該歸結到數據庫設計問題。 解決的辦法是建立正確的索引。增加memcache.。
對like表 用專用的sphinx.和lucence 等搜索服務。
程序員都應該會用explain對sql語句作分析。