我正在虚拟化和更新运行内部开发的报告系统(Apache,MySQL,PHP)的旧Linux服务器。
旧的物理服务器运行64位Ubuntu 10.04.3 LTS,MySQL 5.1.41和PHP 5.3。该服务器配备Intel Xeon CPU X3460 @ 2.80GHz(4核),4GB RAM。
我们在HP DL380G6上运行ESXI 5.5,配备2 x Intel Xeon X5650 6 Core 2.66ghz和32GB RAM。
我创建了一个具有4核和4GB RAM的新VM,并且干净地安装了64位Ubuntu 16.04.4 LTS,MySQL 5.7.21和PHP 7.0,迁移了我们的应用程序,一切运行得慢得多。我相信这是MySQL,因为在旧物理服务器和新虚拟服务器上进行相同的直接查询时,查询可能需要8秒(VM)而不是1(物理)。这些表都有适当的索引,在每台服务器上运行“EXPLAIN”提供相同的结果,但其中一个速度要慢得多。当页面运行大量复杂查询时,可能需要一分钟+加载而不是几秒钟。
知道为什么会这样吗?相同的数据集,相同的查询,相同的引擎(MyISAM)。 VM拥有更新版本的所有内容,相同数量的内核和相同的RAM。我甚至尝试将VM CPU加倍到2个插槽,4个内核和8GB RAM,但它似乎没有产生实质性的影响。
我已经比较了MySQL的配置,并且没有任何东西在我身上突然发挥作用。
我在这里可能会缺少什么?它是虚拟主机硬件吗?
答案 0 :(得分:0)
您是否升级了vmware工具?如果不这样做。 然后,在此ESXi主机上,您是否有其他VM?如果是,我建议您创建资源池,然后配置资源限制。 在资源池中,您分配的资源量将以为VM保留的方式进行,因此您不必与其他VM共享。