關于PHP性能優化

2017-05-09 1181 1 編輯:深圳網站建設 來源:互聯網

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

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

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

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

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

6、如果你采用了 Linux 系統,建議升級內核到 2.6.0以上(現在最新版本為2.6.10)并開啟搶占式內核支持,因為靜態頁面由內核服務。

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

8、采用輸出緩沖(請參考ob_start),如果你的代碼有很多的 print 和 echo 語句,能提速 5-15% 。

9、不要在 Web 服務器上運行 X-Windows ,關掉沒有必要運行的進程,如果已經安裝了X-windows,請使用 init 3退出。

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

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

12、采用 hdparm 來優化磁盤,一般能提升 IDE 磁盤讀寫性能 200%,但是對 SCSI 硬盤沒有效果。

13、修改 httpd.conf :

# 關閉 DNS lookups,PHP 腳本只拿 IP 地址

HostnameLookups off

# 關閉 htaccess 檢測

AllowOverride none

打開 FollowSymLinks ,關閉 SymLinksIfOwnerMatch 以防 lstat() 系統調用:

Options FollowSymLinks

#Options SymLinksIfOwnerMatch

下面還有很多關于 httpd.conf 參數的調整。

14、Kurt 簡潔而完整的 Apache Tuning Tips。

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

16、如果網絡擁擠,CPU 資源不夠用,采用 PHP 的 HTML 壓縮功能:

output_handler = ob_gzhandler

PHP 4.0.4 及以前的用戶請不要使用,因為存在內存泄漏問題。

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

18、另外一篇文章:Tuning Apache Web Servers for Speed,一篇 97 年的很古老的文章。

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

20、Caching Tutorial for Web Authors and Webmasters教你怎樣實現瀏覽器緩沖。

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

22、來自Professional Apache的技巧。

23、官方的Performance Tuning文檔,很好的資料,但是十分繁瑣。

24、編譯 PHP 時,建議采用如下的參數:

--enable-inline-optimization --disable-debug

25、安裝mod_gzip(apache1.3)或者mod_deflate(apache2.0)等頁面壓縮軟件減輕服務器擁堵。同時盡可能優化你的 HTML文件和PHP文件。

26、優化 Linux ,more Linux 以及Solaris。

27、如果系統瓶頸在MYSQL的數據操作上,可以考慮將Mysql拆分成多個端口甚至多個服務器并適當優化my.cnf ,這比使用單個端口速度提高不少。

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

專業的網站建設公司,深正互聯,如您有網站營銷需求,請您關注我們,或者致電13828884598

本站文章均為深正網站建設摘自權威資料,書籍,或網絡原創文章,如有版權糾紛或者違規問題,請即刻聯系我們刪除,我們歡迎您分享,引用和轉載,但謝絕直接搬磚和抄襲!感謝...
關注深正互聯
我們猜你喜歡
七星彩头尾 大圣捕鱼2 钱龙捕鱼技巧 打码赚钱攻略 海天娱乐群 逸乐贵州麻将 90岁老人还在赚钱说说 大富彩票网址 新闻网站是怎么赚钱的 k1彩票首页 在重庆开什么小店赚钱吗 海南麻将技巧心得 高手 虚拟币怎么赚钱软件 炼什么铝赚钱 米赚手机赚钱是什么 qq空间赚钱术 极路由赚钱插件