LAMP的優(yōu)化技巧
LAMP的優(yōu)化技巧
假如你在Linode入手了一個VPS,迅速地部署了Ubuntu,然后使用一大堆apt-get把LAMP服務(wù)都搭好了(這整個過程也就10分鐘吧,可以更短)。此時可以算是“It works”,但還頗有一些地方需要調(diào)整。本文就在這種場景下,寫一下此時可以做的最小優(yōu)化,作用范圍不僅限于Linode、Ubuntu,其他系統(tǒng)也可以參考。希望對一些朋友有幫助。
一、LAMP的優(yōu)化技巧:Linux
日志切分
如果沒有日志切分,日志可能很快會把硬盤塞滿,***不得不手動清理。做日志切分推薦用logrotate,易于配置,一旦配置完成就會默默無聞地工作。
調(diào)整swapiness
swappiness用來控制使用系統(tǒng)swap的概率,ubuntu內(nèi)核默認(rèn)是60。建議修改為0,使系統(tǒng)盡可能使用物理內(nèi)存而非swap。實際上,在上次Linode升級套餐后,我已經(jīng)關(guān)掉了swap,系統(tǒng)運行得依然穩(wěn)定。具體修改方法可以百度一下。
UPDATE: 經(jīng) @7id 提醒,swappiness參數(shù)更多的是降低磁盤io操作,對于內(nèi)存不是特別小的情況,差別不大。詳細(xì)請看下方留言。
二、LAMP的優(yōu)化技巧:Apache
啟用壓縮
啟用壓縮,可以減少傳輸?shù)膬?nèi)容。對WebServer來說這幾乎是必須的,但默認(rèn)的Apache安裝并未開啟壓縮。對于比較慢的連接,啟用壓縮會有更多好處。
調(diào)整MaxRequestsPerChild
MaxRequestsPerChild用于設(shè)置每個子進程在其生存期內(nèi)允許伺服的***請求數(shù)量。到達MaxRequestsPerChild的限制后,子進程將會結(jié)束。如果這個參數(shù)為0,Apache進程占用的內(nèi)存會只增不減。一些使用Apache的VPS經(jīng)常遇到iorate很高,可以嘗試調(diào)整一下這個參數(shù)(ref)。
三、LAMP的優(yōu)化技巧:Mysql
關(guān)掉InnoDB
如果服務(wù)器用來放blog或是論壇,多數(shù)時候MyISAM就足夠用了。此時可以把InnoDB關(guān)掉。my.cnf中的注釋說:”You might want to disable InnoDB to shrink the mysqld process by circa 100MB.”。實測在VPS關(guān)掉Innodb時雖然沒節(jié)約了100MB,但50M還是有的,內(nèi)存珍貴,能省則省吧。
只需在my.cnf加入一行 skip-innodb 就可以把InnoDB的功能關(guān)掉。
四、LAMP的優(yōu)化技巧:PHP
開啟輸出緩沖
在使用mod_php時,如果不開Output Buffering,每一個輸出都會使Apache向客戶端發(fā)送數(shù)據(jù),導(dǎo)致效率很低。使用fastcgi時,由于WebServer本身有buffer,影響并不大。但默認(rèn)的apt-get安裝,使用的就是mod _php,因此建議在php.ini里把Output Buffering打開。
以上只是一些最初級的調(diào)整,叫做“優(yōu)化”都顯得有點夸大。但在初期遇到問題時,調(diào)整這些地方往往可以很快見效。
除此之外,建議用nginx換掉Apache。以上就是LAMP的優(yōu)化技巧技巧。
【編輯推薦】