php - apache performance tuning




Windows 7 php+Symfony2非常慢 (7)

更新:

由於PHP 5.5現在已經集成了PHP OPCache,因此可以加快執行時間。 在我的設置中,具有數據庫訪問權限的完整請求現在需要180ms。

腳步:

  1. 更新到最新的PHP版本
  2. 啟用OPCache
  3. 禁用xdebug
  4. 將Demonpath_cache_size = 2M設置為提到的DemonTPx

php.ini設置:

realpath_cache_size = 2M
[XDebug]
xdebug.profiler_enable = 0
xdebug.remote_enable = 0
[opcache]
zend_extension = "C:\xampp18\php\ext\php_opcache.dll"
opcache.enable = 1
opcache.enable_cli = 0
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000

為什麼Windows比Unix慢?

正如here所討論的,PHP在file_exists中非常慢,而在Windows上則是filemtime()。 因為Symfony2在開發模式下使用這些功能很多。 我們不會在Windows上低於700毫秒(<= 5.4)。 PHP 5.5現在允許180ms。

一個解決方案可能是微軟開發的WinCache ,以解決IIS上的這個問題。 但由於它只能在幾個Windows版本上運行,而且只能在IIS上運行,因此對我來說無法解決問題。

替代

我可以推荐一個很好的解決方案是在Virtualbox上安裝Linux虛擬機。 這很容易設置,也更像是生產環境。

這是我長期以來一直存在的問題。 我想在我的Windows計算機上運行PHP應用程序,它的加載時間非常長,大約10-25秒。 我嘗試了很多東西:

  • 首先,我嘗試了一個簡單的XAMPP安裝
  • 我讀WAMP可能會更快,所以我也嘗試了WAMP。 它給了我相同的結果
  • 然後我用PHP安裝了一個nginx服務器,但它也沒有幫助
  • 最後,我在VirtualBox中安裝了一個Ubuntu 11.10並且我共享了包含我的項目的Windows文件,但結果更糟糕:每次超過22秒的加載時間。

更新 :我甚至嘗試過APC - 它有所改善,但仍然是6-8秒/頁

我將我的文件上傳到Linux服務器(共享主機),它運行在300-500毫秒左右。 在XAMPP安裝上,我嘗試運行其他(即非Symfony2)應用程序(例如phpmyadmin),它也比共享主機慢,但速度不是很慢,加載時間為2-3秒。 在我將Linux更改為主操作系統之前,我該如何提高性能? 我的筆記本電腦配有i7 CPU,4 GB RAM,5400RPM HDD,Win7 x64。

謝謝您的幫助!

UPDATE2:由於一些神秘的原因,我的Symfony路由無法使用fcgid(它給了我一個404錯誤)所以我回去使用PHP作為模塊。 現在,它已成為有史以來最糟糕的(比以前更糟糕的模塊):應用模式20-25秒,在開發模式下,每次超過30秒,所以我得到一個超時錯誤,它與沒有啟用APC。

Here你可以看到這個錯誤。 這是可重現的:每次在30秒內達到不同的執行點:


使用http://oca.microsoft.com/en/windiag.asp檢查計算機隨機存取存儲器,RAM或運行Ubuntu CD啟動選項附帶的內存測試應用程序。

在這兩種情況下選擇什麼稱為額外或深度測試 - 我不記得確切 - 如何,選擇更長時間的測試這種測試沒有盡頭,你只是等到測試完成兩個階段和你的任何問題RAM,通常顯示。

此外,檢查你的硬盤驅動器是否有任何檢查。 之後嘗試執行磁盤碎片整理

我,你的問題是硬件相關的問題。


哇,在嘗試了很多不同的東西之後,我終於成功地從15s執行時間轉移到帶有wamp的windows7上的3s執行時間。

如何安裝wincache擴展: http://us2.php.net/manual/en/wincache.installation.phphttp://us2.php.net/manual/en/wincache.installation.php

在哪裡下載wincache dll: http://sourceforge.net/projects/wincache/http://sourceforge.net/projects/wincache/

我的php.ini配置更改:

[PHP]
realpath_cache_size = 2M
extension=php_wincache.dll
; XDEBUG Extension
;zend_extension = "C:/Net Generation/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll"
;
[xdebug]
xdebug.remote_enable = off
xdebug.profiler_enable = Off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "C:/Net Generation/wamp/tmp"
xdebug.show_local_vars=0
xdebug.max_nesting_level=200

[opcache]
zend_extension = "C:/Net Generation/wamp/bin/php/php5.5.12/ext/php_opcache.dll"
opcache.enable = 1
opcache.enable_cli = 0
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000

幾年前我遇到了同樣的問題。 您在後台運行哪種防病毒軟件? 嘗試將其停用以用於開發目的或更改它。 它也可能是在後台運行的一些索引服務。 Symfony 2包含> 15000個供應商的文件:)同時嘗試通過從頭開始重新安裝Windows的經典方式。 我的網站通常需要100-500毫秒,我的筆記本電腦比你的慢。 (英特爾C2D P8600)


我有完全一樣的問題。 在php.ini中設置以下內容使我的性能從大約800毫秒增加到大約300毫秒:

php.ini中:

realpath_cache_size = 2M

我從unix機器上得到的時間還不到100毫秒,但它至少有所作為


我的頁面需要20秒才能執行。 我安裝了快速cgi,增加了內存限制,一切,不工作。 然後開始查看時間線,發現symfony防火牆模塊佔用了大部分時間。 事實證明,在我的配置中為教條設置“localhost”是導致問題的原因。 將其更改為127.0.0.1修復了問題。 不知道為什麼,但這裡描述:

http://12wiki.blogspot.ca/2012/11/why-does-symfony-2-firewall-take-so.html


頁面加載時間也取決於CSS + JS +圖像加載時間。 我在CakePHP中遇到了同樣的問題,並通過在htaccess中使用mod_expires解決了這個問題。

您是否在服務器htaccess文件中為CSS,JS和圖像嘗試了“ExpiresByType”? 查看this頁面。







page-load-time