首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在虚拟机中运行Server的最佳实践是什么?

在虚拟机中运行Server的最佳实践是什么?
EN

Database Administration用户
提问于 2011-03-03 18:51:44
回答 1查看 24.1K关注 0票数 21

在虚拟机中运行Server的最佳实践是什么?我的在线事务活动非常少,但是为了向多个网站提供报告数据,需要进行大量的数据处理。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2011-03-03 22:19:48

和物理机器一样,IO是王者。虚拟化会产生明显的IO攻击(打击的多少取决于您选择的技术),因此请确保您没有做任何会加剧这一问题并进一步损害IO性能的操作。

  • 始终使用固定大小的磁盘,而不是动态虚拟磁盘,并确保底层驱动器/阵列足够。与固定大小的磁盘相比,动态vdisks的性能更低。
  • 如果VM中的数据不是任务关键,那么打开VM解决方案来缓存写操作(实际上是欺骗客户操作系统什么时候实际写入磁盘)以获得额外的性能。这对于开发和测试机器非常有用,在这种机器中,数据很容易被替换,或者主服务器本地的只读副本,如果它们遇到任何问题,就可以重新创建,但是对于生产和备份系统,建议不要使用这些选项,因为如果机器意外关闭,这些选项会增加数据丢失(或更糟的是损坏)的可能性。
  • 确保每个VM都有足够的RAM专用于它,以便每个数据库的正常工作集都能在内存中有相当大的空间,以避免不必要的IO。另外,确保系统管理程序不会在任何时候分页删除VMs (例如,大多数VMWare产品都可以这样做,这允许您运行比在相同硬件上更大的VM集,但是性能下降可能很大--有一个选项可以调优或关闭这种行为)。
  • 如果主机使用RAID5数组,请考虑迁移到RAID10。这将减少可用的空间,但消除RAID5 (或6)中可能出现的写性能问题。
  • 对于可能会看到大量IO活动的VM,可以考虑给它们自己的驱动器或阵列,或者只让它们与低活动的数据共享驱动器(S)/array。

当然,如果您的整个DB (以及VM运行的其他所有内容)都符合分配给VM的RAM,而且它很少看到写活动,那么IO性能可能就不是什么问题了。

编辑:还有几点:

  • 如果使用虚拟磁盘,请确保最佳控制器类型用于性能。一些虚拟化解决方案为更好的客户兼容性提供了几种虚拟控制器类型,您可能会发现,由于它们正在模拟的设计中的协议限制和客户操作系统驱动程序中的限制,一些虚拟控制器类型的效率可能低于其他方案。
  • 如果您的虚拟化解决方案为虚拟驱动器控制器提供了特定的驱动程序,请确保您的客户操作系统正在使用它们--这些可以通过减少内存到内存副本的数量和主机<->hypervisor<->涉及某些操作的来宾上下文开关来加快大容量IO。
  • 如果您使用的是简单SMB共享或iSCSI之类的网络存储,那么上面的两点适用:确保您使用的是提供的最有效的虚拟网络控制器,并且您的客户操作系统正在使用推荐的驱动程序,否则延迟和带宽可能比虚拟化层所需要的更有限。
票数 18
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/1554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档