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