如果是在 windows 上開發嫌慢的話,其實這是正常的。我在 windows, linux 與 mac 上都有在開發 (linux 上面我只是玩玩,主要在 mac 上開發)。在 windows 上,有時隨便開一個網頁都會 time out。可是在 mac 上面,從沒碰過這個問題,「刷」一下就出來了。
如果在網站上超過 3 秒的話,那真的要解決了。因為 google 在認識你的網站的時候,也會測速度。速度慢的網站,搜尋排名時會排在後面。
Windows 的 PHP 在大量讀取目錄檔案差效能很差,一般處理也差一點,一些很基本的頁面,差 50~100% (PHP 5.3 好一點)
Mysql 在 Windows & Linux 的連接時間大約有 30ms 相差 (固定增值),Mysql 5.5 以上好一點,但在很小的應用中,應該是沒有大差別
Windows:
Executed 52 queries in 67.3 ms. Queries exceeding 5 ms are highlighted. Page execution time was 167.33 ms. Memory used at: devel_boot()=0.6 MB, devel_shutdown()=3.1 MB, PHP peak=3.5 MB.
Virtualbox Linux:
Executed 52 queries in 9.97 ms. Queries exceeding 5 ms are highlighted. Page execution time was 316.52 ms. Memory used at: devel_boot()=0.36 MB, devel_shutdown()=3.4 MB, PHP peak=4 MB.
在此配置的 Windows,載入模組頁面只要: 5xx ms (比一般非 fastCGI/Wincache 應快上 1.x ~3.x+)
Executed 52 queries in 5.63 ms. Queries exceeding 5 ms are highlighted. Page execution time was 179.5 ms. Memory used at: devel_boot()=0.59 MB, devel_shutdown()=3.29 MB, PHP peak=3.75 MB.
Executed 52 queries in 5.63 ms. Queries exceeding 5 ms are highlighted. Page execution time was 179.5 ms. Memory used at: devel_boot()=0.59 MB, devel_shutdown()=3.29 MB, PHP peak=3.75 MB.
這段與 DB 相關
Executed 52 queries in 5.63 ms
這段與 PHP 有關
Page execution time was 179.5 ms
如果是 PHP 這邊,要用到 XDEBUG / XHProf
Re: 如何增進效能
這真是一個大的問題!!
開一個網頁有超過 3 秒嗎?(其實不會這麼慢。一般來說除了模組管理之外,一秒以內應該都能開出來。)
如果是在 windows 上開發嫌慢的話,其實這是正常的。我在 windows, linux 與 mac 上都有在開發 (linux 上面我只是玩玩,主要在 mac 上開發)。在 windows 上,有時隨便開一個網頁都會 time out。可是在 mac 上面,從沒碰過這個問題,「刷」一下就出來了。
如果在網站上超過 3 秒的話,那真的要解決了。因為 google 在認識你的網站的時候,也會測速度。速度慢的網站,搜尋排名時會排在後面。
一般來說,會先試試使用 cache。再進一步探討的話,要看你的網站是做什麼應用。
by the way,可以使用 chrome 的開發工具測看看下載網頁時,慢在哪裡。
Art (無有多少 | 通通學)
Re: 如何增進效能
不知是否我失憶還是有相似的主題,我好像之前回過這個貼子...
Windows 的 PHP 在大量讀取目錄檔案差效能很差,一般處理也差一點,一些很基本的頁面,差 50~100% (PHP 5.3 好一點)
Mysql 在 Windows & Linux 的連接時間大約有 30ms 相差 (固定增值),Mysql 5.5 以上好一點,但在很小的應用中,應該是沒有大差別
像 Drupal 7,很多新手都應該偶然覺得進入時很慢,這由於執行內置 CRON 引起,關一關就沒事
有時會 timeout,也可能是 request update 資料 (特別是 firewall 封鎖了,就至少待個 30 秒,如果剛好你的 PHP 執行時間只有 30 秒,大概只有看見 timeout)
Devel 中有:
Display query log
Display page timer
Display memory usage
打開看看就知問題
也可以設定 XHProf / Xdebug 深入一點 :)
---
notaBlueScreen
Re: 如何增進效能
原來 PHP 在 windows 底下效能有差。一開始我只能確定這真的是 windows 的問題,因為我在 Mac, Linux 底下使用 Drupal 從沒有這麼慢過,還慢到 timeout!! Firewall, 防毒甚至都為它關閉了說。簡直就是二個不同的世界。 !@#$%^
那麼,是否不建議使用 windows 的虛擬主機作為 Drupal 的平台?還是說不同的 windows 版本 (如 windows server 2xxx, 一陣子沒摸 windows server,不知道現在的版本叫什麼。),會有顯著的不同效能差異?
願聞其詳。
Art (無有多少 | 通通學)
Re: 如何增進效能
主要是因為 Windows 使用 NTFS 作為底層的檔案系統。
我有朋友曾經在 Windows 下裝一個 VM 跑 Ubuntu,結果在 VM 裡面的網站跑出來的速度甚至比 Windows 下直接跑的還快~
Re: 如何增進效能
對對,我就是這麼做的。
讓我想起在解決 windows 底下速度慢的問題時,在 drupal.org 上看到一個結論:在 windows 上安裝 ubuntu 的 vm,然後在 ubuntu 上面開發。
另外還有一個比較多人支持的結論:改掉 amp 工具中的 apc, eacceralator, 換成 zend server,可以得到提升五倍的速度。(my solution: zend server)
只是這二個工程都不小。
不知 tokimeki 是在哪種作業系統上操作?
Art (無有多少 | 通通學)
Re: 如何增進效能
換成 zend server 這個我幹過,的確工程不小,不過我要講,這個加速效果在 PHP 5.3 以上比較明顯。
原因是 PHP 5.2 的 fastcgi 還是很爛~
我目前還是在 Window 7 上做,不過東西都丟到 RAMDISK 上,所以還好~
話說 Drupal 7 for Portable APM (PAPM) 這個很久沒更新了,今天下午來搞這個好了。
Re: 如何增進效能
哇,受教了,果然提問還是對的。
我覺得你提到的使用 ramdisk 方法最好,最簡單,又不用更換作業系統環境,又馬上有效。
對啊,這麼簡單的作法,我們這些老工程師在 20 幾年前幾乎都用這個方法。呵,腦袋不靈光。
找個時間,我也來試一下 PAPM.
@superman,
建議你使用 ramdisk 這個方法。不需要再學習 / 轉換別的作業系統了。
Art (無有多少 | 通通學)
Re: 如何增進效能
RAMDISK 我之前在網路上找了一堆資料,最後是決定買 VSuite 的標準版,換算下來一千多台幣,可以終身使用,給需要的人參考~
Re: 如何增進效能
裝好了,馬上有效果。感謝,解決半年來頭痛的問題。
Art (無有多少 | 通通學)
Re: 如何增進效能
有實際運行數據能分享一下嗎 ??
PHP 5.3 fastcgi 應該會好一點 (看別人說)
所以不用 Zend, 用 IIS 7+ 應該也一樣 ??
我用 NGINX + PHP5.3 試過,也不是我想要的效能
---
notaBlueScreen
Re: 如何增進效能
為了你這個問題,我又重新測試了一下。測試的網頁就跟在 drupal.org 中看到的,大家討論 windows 下的速度時,都以開啟模組管理頁面的時間來作評比。
方法:重頭開機 (避免 windows 自己的 cache), 啟動 twamp, 進入首頁, 接下來,測試開啟模組管理頁面的速度。
未使用 ramdisk: 15 秒。
使用 ramdisk: 9 秒。
只是還沒有到達在 mac / linux 底下的速度。我想這是作業系統的差異吧。我開啟 mac 中的 drupal 7 (這個裝了更多的模組),結果是 3 秒。
Art (無有多少 | 通通學)
Re: 如何增進效能
Windows 7 64bits + PHP 5.3.6 + Apache 2.2 + Wincache + mod_fcgid 非常好,更優於 virtualbox 下的 LAMP。
首頁,10 個有圖片的 nodes:
Windows:
Executed 52 queries in 67.3 ms. Queries exceeding 5 ms are highlighted. Page execution time was 167.33 ms. Memory used at: devel_boot()=0.6 MB, devel_shutdown()=3.1 MB, PHP peak=3.5 MB.
Virtualbox Linux:
Executed 52 queries in 9.97 ms. Queries exceeding 5 ms are highlighted. Page execution time was 316.52 ms. Memory used at: devel_boot()=0.36 MB, devel_shutdown()=3.4 MB, PHP peak=4 MB.
在此配置的 Windows,載入模組頁面只要: 5xx ms (比一般非 fastCGI/Wincache 應快上 1.x ~3.x+)
(
不過比較有點不公平,
Virutalbox Linux 是 PHP 5.2 + HDD
Windows Apache 是 PHP 5.3 + SSD,
不過在此最重要是如何提升效能,不公平也不要緊,
之前非 Wincache + mod_fcgid 設置,也在 SSD,也很差
)
大家可以試一試,
我過兩週有空再深入一點分享/比較 :)
Re: 如何增進效能
Dear ALL :
謝謝Artt and Kay.L 的分享
效能的改善真的是很大的學問
因為時間的考量,
所以我應該在mac or linux 的環境開發
請問 mac or Linux 何者更利於drupal的開發
Re: 如何增進效能
@Superman,
在 Linux 下應該是最好的,說效能,你只是在 Dev Site,其實也有差別,但也可能是你能忍受的差別 (每人的忍受能力不同)
自己試一試最好,下一個 Virtualbox,再安裝,花不了多少時間
我分享不好的地方:你要從 Windows 複製檔案 (小的檔案,如 Drupal) 至 Linux 內會很慢,經常要用搜尋檔案內容功能的也很慢
不過,你可以不傳小檔案,或只會等待一次這麼多,搜尋直接在 Linux 執行,不經你的 Windows IDE
Linux 下的 GIT / Drush 方便太多 (個人覺得)
---
notaBlueScreen
Re: 如何增進效能
再做另類嘗試
VMware + shared folder 效能很佳 !!!
Executed 52 queries in 5.63 ms. Queries exceeding 5 ms are highlighted. Page execution time was 179.5 ms. Memory used at: devel_boot()=0.59 MB, devel_shutdown()=3.29 MB, PHP peak=3.75 MB.
這回不怕讀取檔案慢了,絕對適合喜歡 LINUX 的用戶
Re: 如何增進效能
呵呵,只要使用 linux,效果都不錯。這樣的話,跟在 drupal.org 中討論的結果一致:在 windows 中使用 linux。哈哈,只是這樣的話,我不覺得是「解決在 windows 下速度慢的問題」。但是這個卻是大家最贊同的好辦法。
使用 shared folder 是個好辦法。我使用的是 mac,其中也有裝 windows,就是利用 shared folder 進行資料的交換,不需要再 copy 一次,蠻好用的。
請問 virtual box 可以這麼做嗎?還是只有 vmware 才有 shared folder 的功能。
Re: 如何增進效能
virtualbox沒問題,shared folder好用的不得了。
Re: 如何增進效能
這個有趣,我之前試沒效果,是用 Ubuntu SERVER edition (有可能裝了有 BUG 旳 VBOX 工具)
現在用 Desktop 版本,數據很不同
我再來試試:
http://bit.ly/lUF53J
這樣來看,
如果你不用 LINUX 工具,或特殊原因,在 Windows 下加 FASTCGI + WINCACHE 是最好,不用弄這麼多東西,
否則選擇 VirtualBox
太好了,我最愛的 VirtualBox 能留下
上面的結果,作為 Dev 平台很足夠了
** (一會再新安裝 SERVER 版本在 VirtualBox 看看)
EDIT:
重新安裝 Ubuntu 11.04 SERVER,沒問題
Ubuntu 9.04 SERVER,即使是同一版本的 VBOX addon 都是慢
所以大家遇上慢,不妨多試試
Re: 如何增進效能
從 Kay 提供的資料,看起來 ubuntu 11.0.4 加上 VBox 真的不錯。
另外,加上 wincache 後的效能不錯嘛,這樣可以不用換到 linux。
感謝分析。
Re: 如何增進效能
補充:
當我重新安裝好一齊 LAMP 東西後,又慢了,
算是發現主因,跟 XDEBUG 有一點關係 ....
VBOX SHARED FOLDER 可能有 CACHE 問題,可以嘗試關閉 HOST I/O 去解決
@Superman >> 太抱歉,在你的主題說這麼多無關的東西
Re: 如何增進效能
@Kay.L >> 不要這麼說, 要產生有價值的東西之前,首先就要讓大家暢所欲言, 而且很感謝你宝貴經驗的分享
我從大家的分享中得到很多, 雖然還無法讓這些東西,消化成為知識, 因為我和你們的程度實在有很多的差距
可是你們的經驗, 可以給我學習的方向
分享帶給大家的就是另一個創造的開始
Re: 如何增進效能
web master >> 系統的時間是不是有問題, 我在10:26 post 的訊息, 怎麼到了server後,變成了13:24
Re: 如何增進效能
時區改好了, 怪怪, 升級的時候怎麼可能會去動到時區呢?
Re: 如何增進效能
@superman,
回到你的問題,
你要找出是 MYSQL / PHP 問題
如 DEVEL LOG:
Executed 52 queries in 5.63 ms. Queries exceeding 5 ms are highlighted. Page execution time was 179.5 ms. Memory used at: devel_boot()=0.59 MB, devel_shutdown()=3.29 MB, PHP peak=3.75 MB.
這段與 DB 相關
Executed 52 queries in 5.63 ms
這段與 PHP 有關
Page execution time was 179.5 ms
如果是 PHP 這邊,要用到 XDEBUG / XHProf