2011-09-15 64 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。