在網站架構設計中,大家一定對 LAMP (LinuxApacheMysqlPhp) 不陌生。
LAMP確實是一個非常優秀的架構,秉承著自由,開放,高效,易用的設計理念。
但是,本文不打算探討LAMP,網上有很多介紹LAMP的資料。
這里,想給大家介紹另一個在LAMP上衍生出來的,以提升性能為主要目的的開源網站架構。
1, 選擇高性能 OS
首先,不難理解,任何一個server最底層的支撐還是OS,而OS的選擇,主要包括 Unix, Windows server, Linux, BSD等等。
其中,開源的OS,有Linux, BSD及部分unix。從目前使用情況來看,linux還是網站首選OS之一。
但是,Linux由于其自由的特點,也給選擇產生了一些不便 - 發行版太多。
現有的主流版本包括 red hat(RHEL), ubuntu, 紅旗, opensuse, debian等。
其中,每一個發行版都有自己的特色,比如RHEL的穩定,ubuntu的易用,紅旗的中文支持很棒等。
但要以性能為主,又兼顧穩定,易用性,以上都不是最佳選擇。
這里推薦一個發行版,它是一個極限性能,加高度可定制,優化的 Linux - gentoo。
gentoo的性能優化是從kernel源碼編譯就開始入手了,通過選擇不同的源碼包,可以適應于不同的應用場景。
(不同內核介紹:http://imkenwu.javaeye.com/blog/168906)
舉個經典的例子:國內,douban.com 在定制優化過的 gentoo 上跑的web服務器最高一天支撐了 2500 萬pv。
http://www.dbanotes.net/arch/douban_web_server.html
這種流量,哪怕是提供純靜態的內容,也是很恐怖的。
而支持這種大流量的,除了server本身,最關鍵的就是高度精簡的OS了。
所以,綜上所述,高性能網站推薦使用可優化,定制的gentoo作為載體。
2, 選擇高性能 web server
Apache是 LAMP 架構最核心的 web server, 開源,模塊豐富,功能強大,穩定是它的絕對優勢。
在美國前100個網站中,有49%的使用apache?梢娖溆绊懥。
但是,有利有弊,apache的致命缺陷,就是多于臃腫,強大的功能,一定會帶來性能上的損耗。
面對這種情形,在市場上,有一支異軍突起,那就是更輕量級的 web server - lighty(lighttpd)。
官方為它定義的口號是 fly light。
它具有非常低的內存開銷,cpu占用率低,效能好,以及豐富的模塊支持等特點。
這讓他在短時間內占據了14%以上的市場份額。并且有越來越多的人開始選擇使用lighty作為前端 web server。
到這里為之,其實高性能 web server 非lighty莫屬。但更棒的是,依靠 gentoo 的高度定制化,我們還可以
進一步提升 lighty 的性能潛力-那就是定制 lighty。
3,選擇高性能 database
數據庫是任何網站走動態化內容展現及業務數據存儲的保障。
市面上的開源數據庫主要有 mysql , postgresql , berkeley db, sqlite 等。
其中,對比一下,
mysql : 多線程,多處理器,高性能,5.0以上支持事務,豐富數據類型和sql語法,跨平臺。
postgresql : 面向對象,集成web,支持事務,使用進程,速度略慢于mysql.
berkeley db : 嵌入式,數據操作通過接口完成,跨語言。
sqlite : 與php集成,支持ACID特性,支持大并發量,庫鎖。
從上面的對比中,不難看出,mysql應該是性能,穩定性與功能性的綜合之選。
4,選擇高性能 script language
能與 lighty 結合的腳本語言,主要有 ruby, php, python, perl。方式主要是通過 fast-cgi 來訪問。
只從性能角度對比幾種語言:
文章來源于領測軟件測試網 http://www.kjueaiud.com/