日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

调优 PHP

發布時間:2023/12/9 php 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 调优 PHP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

調優 PHP ?

PHP 是運行應用程序代碼的引擎。應該僅安裝計劃使用的那些模塊,并配置您的 Web 服務器,使之僅為腳本文件(通常是以 .php 結尾的那些文件)使用 PHP,而非所有靜態文件。

操作碼緩存

請求一個 PHP 腳本時,PHP 會讀取該腳本,并將其編譯為 Zend 操作碼,這是要執行的代碼的一種二進制表示形式。隨后,此操作碼由 PHP 執行并丟棄。操作碼緩存將保存這個編譯后的操作碼,并在下一次調用該頁面時重用它。這會節省很多時間。有多種緩存可用,我比較常用的是 eAccelerator。

要安裝 eAccelerator,您的計算機上需要有 PHP 開發庫。由于不同的 Linux 發布版存放文件的位置不同,所以最好直接從 eAccelerator 的 Web 站點獲得安裝說明(參見 參考資料 部分獲得鏈接)。您的發布版也有可能已經包含了一個操作碼緩存,只需安裝即可。

無論如何在系統上安裝 eAccelerator,都有一些配置選項需要注意。配置文件通常是 /etc/php.d/eaccelerator.ini。eaccelerator.shm_size 定義共享高速緩存的大小,編譯后的腳本就存儲在 這里。該值的單位是兆字節(MB)。根據您的應用程序確定恰當的大小。eAccelerator 提供了一個腳本來顯示緩存的狀態,其中包含內存占用,64MB 是個不錯的選擇(eaccelerator.shm_size="64")。如果您選擇的值未被接受,那么必須修改內核的最大共享內存的大小。向 /etc/sysctl.conf 添加 kernel.shmmax=67108864,運行 sysctl -p 來使設置生效。kernel.shmmax 值的單位是字節。

如果共享內存的分配超出極限,eAccelerator 必須將舊腳本從內存中清除。默認情況下,這是被禁用的;eaccelerator.shm_ttl = "60" 指定:當 eAccelerator 用完共享內存時,60 秒內未被訪問的所有腳本都將被清除。

另一種流行的 eAccelerator 替代工具是 Alternative PHP Cache(APC)。Zend 的廠商也提供了一種商業操作碼緩存,包括一個進一步提高效率的優化器。

php.ini

PHP 的配置是在 php.ini 中完成的。四個重要的設置控制 PHP 可使用多少系統資源,如表 1 所列。

表 1. php.ini 中與資源相關的設置

設置描述建議值
max_execution_time一個腳本可使用多少 CPU 秒30
max_input_time一個腳本等待輸入數據的時間有多長(秒)60
memory_limit在被取消之前,一個腳本可使用多少內存(字節)32M
output_buffering數據發送給客戶機之前,有多少數據(字節)需要緩存4096


具體數字主要取決于您的應用程序。如果要從用戶處接收大文件,那么 max_input_time 可能必須增加,可以在 php.ini 中修改,也可以通過代碼重寫它。與之類似,CPU 或內存占用較多的程序也可能需要更大的設置值。目標就是緩解超標程序的影響,因此不建議全局禁用這些設置。關于 max_execution_time, 還有一點需要注意:它表示進程的 CPU 時間,而不是絕對時間。因此一個進行大量 I/O 和少量計算的程序的運行時間可能遠遠超過 max_execution_time。這也是 max_input_time 可以大 于 max_execution_time 的原因所在。

PHP 可執行的日志記錄數是可配置的。在生產環境中,禁用除最重要的日志以外的一切日志記錄能夠減少磁盤寫操作。如果需要使用日志來排除問題,那么可以按需啟用 日志記錄。error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR 將啟用足夠的日志記錄,使您發現問題,同時從腳本中消除大量無用的內容。


結束語

本文重點探討 Web 服務器的調優,包括 Apache 和 PHP。對于 Apache,總體的想法是消除 Web 服務器必須執行的多余檢查,例如處理 .htaccess 文件。還必須調優所用的多處理模塊,以便在使用的系統資源和可供傳入請求使用的空閑 worker 之間找到平衡。對于 PHP,最好的事情就是安裝一個操作碼緩存。密切注意幾個資源設置也能確保腳本不會浪費系統資源,不會減慢系統處理其他任務的速度。

本系列的下一篇也是最后一篇文章將介紹 MySQL 數據庫的調優。請繼續關注!

參考資料

學習

  • 您可以參閱本文在 developerWorks 全球網站上的 英文原文。

  • “使用應用程序跟蹤對性能改變進行量化分析 ” (developerWorks,2006 年 8 月)介紹了如何利用應用程序追蹤來展示 Apache 配置更改的效果。

  • “PHP V5.2 中的新增功能,第 1 部分: 使用新的內存管理器 ”(developerWorks,2007 年 4 月)涵蓋了 PHP 5.2 在內存處理方面的最新變化。PHP 一直在不斷優化其對系統資源的使用。

  • mod_deflate 是一個 Apache 模塊,可動態壓縮輸出。在 PHP 中也可通過 輸出壓縮 實現這種功能。

  • 預緩存將壓縮 JavaScript 代碼之類的靜態文件。CSS 是提高性能的另一種途徑。壓縮和連接所有 JavaScript 代碼及 CSS 就更好了。

  • 介紹 多處理模塊 的 Apache 文檔值得一讀,可從中了解各模塊的功能性,單擊相應鏈接可查看所選 MPM 的具體文檔。

  • 在 developerWorks 中國網站 Linux 專區 可找到針對 Linux 開發人員的更多資源。

  • 隨時關注 developerWorks 技術活動 和 網絡廣播。

獲得產品和技術

  • 如果您的發布版不包含 eAccelerator,Install From Source 說明會對您有所幫助。

  • Alternative PHP Cache 和 Zend Platform 是 eAccelerator 的替代工具。

  • Siege 使您可以模擬用戶,以便了解站點能夠處理多少流量。

  • 您遲早會打算緩存站點的某些元素,并將負載分布到多個 Web 服務器上。Squid 的加速器模式(也稱為反向代理)或 Linux Virtual Server Project 都是不錯的工具。

  • 訂購 SEK for Linux,這有兩張 DVD,包含用于 Linux 的最新 IBM 試用軟件,包括 DB2、Lotus、Rational、Tivoli 和 WebSphere。

  • 利用可從 developerWorks 直接下載的 IBM 試用版軟件 構建您的下一個 Linux 開發項目。


轉載于:https://blog.51cto.com/wenzengliu/1684529

總結

以上是生活随笔為你收集整理的调优 PHP的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。