程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> LAMP優化技巧

LAMP優化技巧

編輯:PHP綜合

[LAMP平台]

LAMP即為Linux+Apache+Mysql+PHP的組合,LAMP這個詞的由來最早始於德國雜志“c't Magazine”,Michael Kunze在1990年最先把這些項目組合在一起創造了LAMP的縮寫字。這些組件雖然並不是開開始就設計為一起使用的,但是,這些開源軟件都可以很方便的隨時獲得並免費獲得。這就導致了這些組件經常在一起使用。在過去的幾年裡,這些組件的兼容性不斷完善,在一起的應用情形變得非常普便。為了改善不同組件之間的協作,已經創建了某些擴展功能。目前,幾乎在所有的Linux發布版中都默認包含了“LAMP stack”的產品。這些產品組成了一個強大的Web應用程序平台

LAMP 平台由四個組件組成,呈分層結構。每一層都提供了整個軟件棧的一個關鍵部分:

Linux:Linux 處在最低層,提供操作系統。其他每個組件實際上也在 Linux 上運行。但是,並不一定局限於 Linux,如有必要,其他組件也可以在 Microsoft® Windows®、Mac OS X 或 UNIX® 上運行。

Apache:次低層是 Apache,它是一個 Web 服務器。Apache 提供可讓用戶獲得 Web 頁面的機制。Apache 是一款穩定的、支持關鍵任務的服務器,Internet 上超過 65% 的網站都使用它作為 Web 服務器。PHP 組件實際上是在 Apache 中,動態頁面可以通過 Apache 和 PHP 創建。

MySQL:MySQL 提供 LAMP 系統的數據存儲端。有了 MySQL,便可以獲得一個非常強大的、適合運行大型復雜站點的數據庫。在 Web 應用程序中,所有數據、產品、帳戶和其他類型的信息都存放在這個數據庫中,通過 SQL 語言可以很容易地查詢這些信息。

PHP:PHP 是一門簡單而有效的編程語言,它像是粘合劑,可以將 LAMP 系統所有其他的組件粘合在一起。您可以使用 PHP 編寫能訪問 MySQL 數據庫中的數據和 Linux 提供的一些特性的動態內容。

[檢測工具]

為了得到完整的調試結果,建議你采用 ApacheBench 或者 httperf之類的軟件。如果你對非 LAMP 架構的服務器測試有興趣的話,建議你采用微軟的免費軟件: Web Application Stress Tool(需要 NT 或者 2000)。 (其它服務器測試工具)

檢測 Apache ,采用 top d 1 顯示所有進程的 CPU 和內存情況。另外,還采用 apachectl status 命令

   [硬件優化]

1、升級硬件的一般規則:對於 PHP 腳本而言,主要的瓶頸是 CPU ,對於靜態頁面而言,瓶頸是內存和網絡。一台 400 Mhz 的普通奔騰機器所下載的靜態頁面就能讓 T3 專線(45Mbps)飽和。

2、采用 hdparm 來優化磁盤,一般能提升 IDE 磁盤讀寫性能 200%,但是對 SCSI 硬盤也有效果。(不同類型的硬盤對比)

[策略優化]

3、Apache 處理 PHP 腳本的速度要比靜態頁面慢 2-10 倍,因此盡量采用多的靜態頁面,少的腳本。

4、PHP 腳本如果不做緩沖,每次調用都需要編譯,因此,安裝一個 PHP 緩沖產品能提升 25-100% 的性能。

5、如果你采用了 Linux 系統,建議升級內核到 2.4,因為靜態頁面由內核服務。

6、另外一項緩沖技術是把不常修改的 PHP 頁面采用 HTML 緩沖輸出。

7、不要在 Web 服務器上運行 X-Windows ,關掉沒有必要運行的進程。

8、如果能夠用文本就不要用圖像,盡量減小圖片的尺寸。

9、分散負載,把數據庫服務器放到另外的機器上去。采用另外低端的機器服務圖片和 HTML 頁面,如果所有的靜態頁面在另外一台服務器上處理,可以設置 httpd.conf 中的 KeepAlives 為 off ,來減少斷開連接的時間。

10、以上所有的方法都是針對單機而言的,如果你覺得系統還是不夠快,可以采用集群,負載均衡,緩沖技術。采用 Squid 作為緩沖,配置 Squid 的方法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved