2014-01-19 107 views
1

我正在使用FuelPHP框架構建網站,默認情況下會在頁面底部打印執行時間和內存使用情況。現在,我只注意到我的本地機器上,我有一個非常小的內存佔用:FuelPHP網站使用遠程服務器上的10倍內存

Page rendered in 0.0304s using 0.721mb of memory. 

我部署正是這個網站(包括數據庫的快照)到我的遠程測試服務器,並通過一個突然的內存使用量增加10倍:

Page rendered in 0.0963s using 7.099mb of memory. 

我無法解釋從執行的單獨的細節差別這麼大,所以我覺得偏差必須在環境中。 不幸的是,我主要是一個程序員,並不是一個真正的服務器管理員,所以我真的不知道從哪裏開始尋找。所以我會問一些一般性問題,希望能給我一些有用的指導:我應該從哪裏開始尋找?代碼是完全一樣的,據我所知,這兩臺機器(本地筆記本電腦和遠程服務器)都是使用PHP5的相當標準的Apache安裝。歡迎任何提示可能會導致此問題的特定Apache或PHP設置的答案,或特定行在日誌中搜索的答案。

我意識到這是一個相當普遍的問題,可能會讓我得到一些贊同,任何建設性的批評都會受到歡迎。基本上,我現在無法在哪裏開始尋找。

更新:我決定先排除框架的罪魁禍首,所以我跑在兩臺機器上以下單行腳本:

本地我得到約115的值,而遠程服務器報告約600.

更新2:剛注意到我在本地運行PHP5.5,但服務器只在5.3。也許稍後修復的一些錯誤 - 將首先升級。

+1

相同的本地和遠程? – 2014-01-19 21:13:23

+0

服務器/ php的配置?另一方面,他們使用了大量的靜態,通常意味着不好的框架。奇怪的內存使用情況確認了這一點。我建議你看看Symfony2或Zend Framework 2。 –

+0

@Dagon差不多,本地運行Ubuntu 13.10,而服務器運行12。04 LTS版本。 – CompuChip

回答

3

感謝您的建議傢伙,我解決了這個問題。 正如在原帖的更新中指出的那樣,我意識到我在本地運行PHP5.5,但服務器只有5.3。在使用apt以及其他一些關於SO的其他問題的幫助之後,我用PHP 5.5.x安裝了Apache 2.4。現在,我居然看到

Page rendered in 0.0261s using 0.582mb of memory. 

本地和遠程

Page rendered in 2.3184s using 1.238mb of memory. 

假設2倍由服務器爲64位,而不是我的機器造成的,我可以用剩下的差異相處。

+0

爲什麼您的遠程服務器需要兩個數量級的時間才能生成頁面?我認爲你需要進一步調查與Xdebug –

+0

是的,我也發現了一些緩存問題。現在把它降到同樣的數量級。 – CompuChip

+0

可能是磁盤io。如果它真的是一臺服務器,它可能是一個慢速的服務器硬盤,而不是本地的SSD。 –

1

使用Xdebug找出哪些函數正在使用您的所有內存。

最有可能是框架中的錯誤或設計缺陷。

根據您的服務器,Xdebug可能很難甚至不可能工作。但有時它是預先安裝和簡單的。

+0

非常感謝Abhi。目前的問題已經解決,但我會考慮安裝Xdebug,並在某個時候通過框架,看看我是否能找到任何奇怪的東西,並可能擠出更多的性能。目前我的首要任務是完成開發和測試。 – CompuChip

相關問題