時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
在網(wǎng)站架構設計中,大家一定對 LAMP (Linux Apache Mysql Php) 不陌生。LAMP確實是一個非常優(yōu)秀的架構,秉承著自由,開放,高效,易用的設計理念。但是,本文不打算探討LAMP,網(wǎng)上有很多介紹LAMP的資料。
這里,想給大家介紹另一個在LAMP上衍生出來的,以提升性能為主要目的的開源網(wǎng)站架構。
1, 選擇高性能 OS
首先,不難理解,任何一個server最底層的支撐還是OS,而OS的選擇,主要包括 Unix, Windows server, Linux, BSD等等。
其中,開源的OS,有Linux, BSD及部分unix。從目前使用情況來看,Linux還是網(wǎng)站首選OS之一。
但是,Linux由于其自由的特點,也給選擇產(chǎn)生了一些不便 - 發(fā)行版太多。
現(xiàn)有的主流版本包括 red hat(RHEL), Ubuntu, 紅旗, openSuSE, debian等。
其中,每一個發(fā)行版都有自己的特色,比如RHEL的穩(wěn)定,Ubuntu的易用,紅旗的中文支持很棒等。
但要以性能為主,又兼顧穩(wěn)定,易用性,以上都不是最佳選擇。
這里推薦一個發(fā)行版,它是一個極限性能,加高度可定制,優(yōu)化的 Linux - gentoo。
gentoo的性能優(yōu)化是從kernel源碼編譯就開始入手了,通過選擇不同的源碼包,可以適應于不同的應用場景。
(不同內(nèi)核介紹: http://imkenwu.javaeye.com/blog/168906 )
舉個經(jīng)典的例子:國內(nèi),douban.com 在定制優(yōu)化過的 gentoo 上跑的web服務器最高一天支撐了 2500 萬pv。
http://www.dbanotes.net/arch/douban_web_server.html
這種流量,哪怕是提供純靜態(tài)的內(nèi)容,也是很恐怖的。
而支持這種大流量的,除了server本身,最關鍵的就是高度精簡的OS了。
所以,綜上所述,高性能網(wǎng)站推薦使用可優(yōu)化,定制的 gentoo 作為載體。
2, 選擇高性能 web server
Apache是 LAMP 架構最核心的 web server, 開源,模塊豐富,功能強大,穩(wěn)定是它的絕對優(yōu)勢。
在美國前100個網(wǎng)站中,有49%的使用apache??梢娖溆绊懥Α?/p>
但是,有利有弊,apache的致命缺陷,就是多于臃腫,強大的功能,一定會帶來性能上的損耗。
面對這種情形,在市場上,有一支異軍突起,那就是更輕量級的 web server - lighty(lighttpd)。
官方為它定義的口號是 fly light。
它具有非常低的內(nèi)存開銷,cpu占用率低,效能好,以及豐富的模塊支持等特點。
這讓他在短時間內(nèi)占據(jù)了14%以上的市場份額。并且有越來越多的人開始選擇使用lighty作為前端 web server。
到這里為之,其實高性能 web server 非 lighty 莫屬。但更棒的是,依靠 gentoo 的高度定制化,我們還可以
進一步提升 lighty 的性能潛力-那就是定制 lighty。
3,選擇高性能 database
數(shù)據(jù)庫是任何網(wǎng)站走動態(tài)化內(nèi)容展現(xiàn)及業(yè)務數(shù)據(jù)存儲的保障。
市面上的開源數(shù)據(jù)庫主要有 mysql , postgresql , berkeley db, sqlite 等。
其中,對比一下,
mysql : 多線程,多處理器,高性能,5.0以上支持事務,豐富數(shù)據(jù)類型和sql語法,跨平臺。
postgresql : 面向?qū)ο?,集成web,支持事務,使用進程,速度略慢于mysql.
berkeley db : 嵌入式,數(shù)據(jù)操作通過接口完成,跨語言。
sqlite : 與php集成,支持ACID特性,支持大并發(fā)量,庫鎖。
從上面的對比中,不難看出,mysql 應該是性能,穩(wěn)定性與功能性的綜合之選。
4,選擇高性能 script language
能與 lighty 結合的腳本語言,主要有 ruby, php, python, perl。方式主要是通過 fast-cgi 來訪問。
只從性能角度對比幾種語言:
( http://www.timestretch.com/FractalBenchmark.html )
不難看出,python 是此次測試中,性能最好的腳本語言。
動態(tài)處理方面有絕對優(yōu)勢。對比 php , 前者,可以更快的渲染輸出內(nèi)容,并由經(jīng)lighty, 高速flush緩存到瀏覽器。
值得一提的是, douban.com 也是使用 python 作為應用服務器。
總結一下,什么是 LLMP?
LLMP 是 Linux Lighty Mysql Python 的組合,作為一種高性能的網(wǎng)站架構設計存在。
什么是高性能的LLMP?
LLMP并不意味著高性能,只是比其他架構,更有性能的提升潛力。高性能的LLMP,需要從系統(tǒng),程序,硬件各個層面上協(xié)同進行的。
關鍵詞標簽:Linux服務器,網(wǎng)站架構
相關閱讀
熱門文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶端配置 Linux操作系統(tǒng)修改IP
人氣排行 Linux下獲取CPUID、硬盤序列號與MAC地址 dmidecode命令查看內(nèi)存型號 linux tc實現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關機、重啟、注銷 命令 查看linux服務器硬盤IO讀寫負載