2011-09-15 83 views
1

在許多不同的來源中,您可以閱讀有關在虛擬機中保持時間問題的信息。由於每個基準都依賴於時間保持,所以我不確定如何解釋apache基準測試或xdebug profiler vmware上的結果以及它們的可信度。基準測試,在虛擬機上進行性能分析

http://communities.vmware.com/docs/DOC-5581

VMware的建議,以建立性能測試一種特殊的VM。另外還有許多技巧,這似乎是解決方法(安裝VMware Tools,特殊配置等)。

特別是當涉及到磁盤I/O性能問題時,我非常關心結果的準確程度。拉斯姆斯·勒多夫談論它在drupalcon,說一些關於他的統計的性能改進要求在他的VMware基準地圖無法看到,因爲VMware擁有特殊的磁盤緩存您不容比較物理磁盤:

http://www.nowpublic.com/tech-biz/rasmus-lerdorf-simple-hard-drupalcon-2008-key-note

畢竟,我不確定VMware是否有能力進行任何基準測試。

+0

這是一個問題或陳述?我不知道我在那裏看到一個問題... – Simon

+0

這是一個問題。我想知道更多關於vms基準測試的問題,以及您是否可以信任結果。在每一次apache基準測試中,我都得到了不同的結果,它們的差異高達10%,對於profiler來說也是如此。當我沒有明確的參考比較時,如何比較關於性能的代碼更改?我的假設是,VMware是原因,但我不知道其他人是否已經注意到同樣的問題。 –

回答

0

很大程度上取決於你正在嘗試做什麼。

  1. 只要保持測量,以尋找回歸
  2. 抽空水渠您可以修復,以提高性能

很多人認爲這些是相同的,但我認爲來自於實際經驗有限(2)。我做的方式(2)不是測量,而是在幾個隨機時間點詢問發生了什麼以及爲什麼。爲此,如果它在虛擬機上,它並不重要。 如果它做了一些鬼鬼祟祟的事,需要很長時間,你會看到它是否在虛擬機上。 確切的分數並不重要。揭露偷偷摸摸的活動是重要的。

以下是example in python,但您可以使用任何語言。

0

那麼它可能是真實的磁盤緩存和性能下降沒有vmware工具。
但我發現Vmware在開發中非常有幫助,因爲我有一臺Linux虛擬機作爲我的開發服務器,而我在Windows中編碼。
而且我可以輕鬆地進行基準測試,並找到我的代碼中的潛在瓶頸。

它可能不完美,可能會遺漏一些東西,但仍然比設置專用的Linux機箱更容易,更便宜。

更新
ApacheBench是用於測試的可擴展性和指標生RequestPerSeconds一個很好的工具。

但是爲了找到PHP腳本中的瓶頸並測試代碼優化效果,我總是使用XDebug以及WebgrindWinCacheGrind來查看分析器輸出。

如果你有一個linux系統的話,你可以使用pecl install xdebug安裝XDebug,或者你可以在windows上找到xdebug站點上的預編譯二進制文件。

我使用下面的配置爲Xdebug的

[xdebug] 
xdebug.profiler_enable = 0 
xdebug.profiler_enable_trigger = 1 
xdebug.profiler_output_dir = "/opt/lampp/htdocs/profiles" 
xdebug.profiler_output_name = "cachegrind.out.%s.%t" 

profiler_enable_trigger如果需要通過使XDEBUG_PROFILE作爲查詢字符串參數I可以選擇性輪廓。
此外,我已經建立了webgrind,所以我可以直接在瀏覽器中查看輸出graphiclly。