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