2025-02-10

[LAMP平臺]

  LAMP這個詞的由來最早始於德國雜志“ct 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 的方法。

  [編譯優化]

  11、把基於文件的會話切換到基於共享內存的會話。編譯 PHP 時采用 –with-mm 選項,在 php.ini 中設置 set session.save_handler=mm 。這個簡單的修改能讓會話管理時間縮短一半。

  12、采用最新版本的 Apache ,並把 PHP 編譯其中,或者采用 DSO 模式,不要采用 CGI 方式。

  13、編譯 PHP 時,建議采用如下的參數:
–enable-inline-optimization –disable-debug

  [配置優化]

  14、修改 httpd.conf :
  # 關閉 DNS lookups,PHP 腳本隻拿 IP 地址
  HostnameLookups off

  15、如果網絡擁擠,CPU 資源不夠用,采用 PHP 的 HTML 壓縮功能:
  output_handler = ob_gzhandler
  PHP 4.0.4 的用戶請不要使用,因為存在內存泄漏問題。

  16、修改 httpd.conf 中的 SendBufferSize 為你最大的頁面文件的大小。加大內核的 TCP/IP 寫緩沖大小。

  17、采用數據庫的持久連接時,不要把 MaxRequestsPerChild 設置得太大。

  [第三方軟件優化]

  18、如果喜歡從修改 Apache 源碼入手,可以安裝 lingerd。在頁面產生和發送後,每個 Apache 進程都會浪費一段時光在客戶連接上,Lingerd 能接管這項工作,讓 Apache 迅速服務下一個客戶請求。

  19、如果你足夠勇敢的話,還可以采用 Silicon Graphics 的 Accelerated Apache 補丁。這個工程能使 Apache 1.3 快 10 倍,使 Apache 2.0 快 4 倍。

  安裝一個 PHP 緩沖產品能提升 25-100% 的性能。

  [Linux系統優化]

  1.清理服務器磁盤碎片:

  不論Linux文件系統采用什麼文件格式(ext3、JFS、XFS、ReiserFS )、何種類型的硬盤(IDE 、SCSI),隨著時間的推移文件系統都會趨向於碎片化。ext3、JFS等高級文件系統可以減少文件系統的碎片化,但是並沒有消除。在繁忙的數據庫服務器中,隨著時間的過去,文件碎片化將降低硬盤性能,硬盤性能從硬盤讀出或寫入數據時才能註意到。時間長瞭會發現每個磁盤上確實積累瞭非常多的垃圾文件,釋放磁盤空間可以幫助系統更好地工作。Linux最好的整理磁盤碎片的方法是做一個完全的備份,重新格式化分區,然後從備份恢復文件。但是對於7×24小時工作關鍵任務服務器來說是比較困難的。Kleandisk是一個高效的磁盤清理工具,它能把磁盤上的文件分成不同的"組",比如把所有的"core"文件歸成一組(Group),這樣要刪除所有core文件時隻要刪除這個組就行瞭。core文件是當軟件運行出錯時產生的文件,它對於軟件開發人員比較有用,對於其他用戶(比如電子郵件服務器)卻沒有任何意義。因此,如果沒有軟件開發的需要,見到core文件就可以將其刪除。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *