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