我注意到我们的Web项目(Drupal)在虚拟框中使用memcached时运行速度较慢。 如果没有使用memcached,页面加载时间会更快。 我没有注意到任何不自然的memcached行为。
虚拟的盒子是(使用stream浪汉):
Drupal的具体设置是:
$conf['cache_backends'][] = 'sites/all/modules/contrib/memcache/memcache.inc'; $conf['cache_class_cache_form'] = 'DrupalDatabaseCache'; $conf['cache_default_class'] = 'MemCacheDrupal'; $conf['memcache_key_prefix'] = 'oursite_';
只是为了将其与本机(非虚拟化)环境进行比较 – 在同一个项目上,memcached提高了10-20%的性能。
任何想法? 有什么地方可以继续调查吗?
你所看到的就是我所期望的。 人们告诉你VirtualBox“提供了与真实硬件相同的性能”,或者他们从来没有在VirtualBox和底层操作系统上运行任何真正的压力负载。
当然VirtualBox的性能和物理硬件一样(甚至可能略胜一筹),但这不是其中之一。
VirtualBox是一个2型pipe理程序 。
您在VirtualBox中执行的每个操作都必须打到仿真的硬件,并传递到系统底层的Real操作系统,以便实际处理请求。
有了额外的开销,我期望一个内存密集型程序(如memcache)在仿真中抓取。
在这种情况下,我真的没有任何改善virtualbox性能的build议。
您可以摆弄设置,将虚拟机内存分配给您的虚拟机实例,并告诉您的主机操作系统确定虚拟机进程的优先级,并且永远不会将其交换出去,但这些都不是最理想的。
我的build议是在你的virtualbox实例上closuresmemcache,除非你专门testing与memcache相关的function。
或者切换到1类虚拟机pipe理程序(VMWare,Hyper-V)或生产质量2类虚拟机pipe理程序(KVM)。 你可能会看到那些更贴近你在物理硬件上看到的性能。