windows 数据库/Web 服务器作为虚拟机还是裸机?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/450917/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Database/Web servers as a Virtual Machines vs Bare Metal?
提问by Matias Nino
I manage a database (Oracle 8i) and web server (IIS) for about 50 simultaneous users on average and a theoretical limit of 100 simultaneous users. A mid level system.
我为平均大约 50 个并发用户管理一个数据库 (Oracle 8i) 和 Web 服务器 (IIS),理论限制为 100 个并发用户。一个中级系统。
We just got a dual-socket Quad-core XEON - 16GB RAM - SAS-RAID-10 beast and I am exploring the possibilities of taking these two separate servers and merging them into two virtual machines both running on the new server (Server 2009 Hyper-V).
我们刚刚获得了一个双插槽四核 XEON - 16GB RAM - SAS-RAID-10 野兽,我正在探索将这两个独立的服务器合并到两个在新服务器上运行的虚拟机(Server 2009 Hyper -V)。
1) In general, what are the performance penalties (as well as any gotchas and hidden consequences) of running both the database and web servers as virtual machines on one mega server vs running them on two separate slower boxes? Is it a big NO-NO or it is something worth trying for a mid-level system that will never need to scale?
1) 一般来说,在一台大型服务器上将数据库和 Web 服务器作为虚拟机运行与在两个单独的较慢的机器上运行它们的性能损失(以及任何问题和隐藏的后果)是什么?对于一个永远不需要扩展的中级系统来说,这是一个很大的NO-NO还是值得尝试的东西?
2) What are the general performance penalties (in percentage) and gotchas for virtualizing just the database server? We run Oracle 8i (but are considering moving to MS SQL Server).
2) 仅虚拟化数据库服务器的一般性能损失(百分比)和陷阱是什么?我们运行 Oracle 8i(但正在考虑迁移到 MS SQL Server)。
3) If only stress tests can determine an reasonable answer, what would be the easiest way to test these scenarios (tools / configuration).
3)如果只有压力测试可以确定一个合理的答案,那么测试这些场景(工具/配置)的最简单方法是什么。
Thanks in advance for any generous knowledge-sharing.
在此先感谢您提供任何慷慨的知识共享。
回答by kemiller2002
If you are looking to do this, I would check Microsoft's site and best practices on how to do it. There is a podcast on Deep Fried Bytes that talks about how the Microsoft.com site is setup to use virtual servers and some of their practices on how they implement it. They don't seem to have performance penalties on how they run it, but I am not certain of the details (it also talks about how they use server virtualization like a real organization would and not a company with unlimited amounts of money to throw at a problem).
如果您想这样做,我会查看 Microsoft 的站点和有关如何执行此操作的最佳实践。Deep Fried Bytes 上有一个播客,其中讨论了 Microsoft.com 站点如何设置为使用虚拟服务器以及他们如何实现它的一些实践。他们似乎对如何运行它没有性能损失,但我不确定细节(它还谈到他们如何像真正的组织一样使用服务器虚拟化,而不是一家拥有无限资金投入的公司一个问题)。
I believe this is the podcast:
我相信这是播客:
http://deepfriedbytes.com/podcast/episode-8-behind-the-scenes-at-microsoft-com/
http://deepfriedbytes.com/podcast/episode-8-behind-the-scenes-at-microsoft-com/
回答by Matt Rogish
I think at your level of concurrent user connections, and the power of the machine, you won't have too many performance issues running SQL Server on a VM.
我认为在您的并发用户连接级别和机器的功能方面,在 VM 上运行 SQL Server 不会有太多性能问题。
We have a mix of VMWare ESX VMs and bare-metal OS' running app, web, and DB servers and without a doubt the heaviest loaded DBMS system is on bare-metal machine (Quad proc quad core, etc.). All the little guys, though, live on VMs, and we haven't noticed any problems (even using iSCSI over GigE).
我们混合了 VMWare ESX VM 和裸机操作系统的运行应用程序、Web 和数据库服务器,毫无疑问,负载最重的 DBMS 系统位于裸机机器(Quad proc 四核等)上。然而,所有的小家伙都生活在虚拟机上,我们没有注意到任何问题(即使使用 iSCSI over GigE)。
One thing to consider is you won't get any fault tolerance out of a single setup like this because a CPU failure will bring down the entire box, thus blowing up your whole app.
需要考虑的一件事是,您不会从这样的单个设置中获得任何容错能力,因为 CPU 故障会导致整个机器瘫痪,从而炸毁整个应用程序。
More info on SQL Server HA and Hyper-V, just FYI: http://blogs.technet.com/andrew/archive/2008/11/10/sql-server-2008-hyper-v-and-high-availability.aspx
有关 SQL Server HA 和 Hyper-V 的更多信息,仅供参考:http: //blogs.technet.com/andrew/archive/2008/11/10/sql-server-2008-hyper-v-and-high-availability。 aspx
回答by warren
Be aware that Oracle has its own guidelines on running in a virtual machine.
请注意,Oracle 有自己的关于在虚拟机中运行的指导方针。
The product I work with utilizes Oracle on the back-end, and for heavy use, the overhead of a VM has had negative effects on it.
我使用的产品在后端使用 Oracle,对于大量使用,VM 的开销对其产生了负面影响。
8i is well past EOL, and was around before virtualization was a Big Thing(tm), so moving to a new edition of Oracle might also be a good plan at the time your migrate to virtualization.
8i 已远远超过 EOL,并且在虚拟化成为大事 (tm) 之前就已经存在,因此在您迁移到虚拟化时迁移到新版本的 Oracle 也可能是一个不错的计划。
Oracle blog article on 11g in a VM - http://blogs.oracle.com/MingMan/2007/11/oracle_database_11g_successful.html
关于 VM 中的 11g 的 Oracle 博客文章 - http://blogs.oracle.com/MingMan/2007/11/oracle_database_11g_successful.html
If you're concerned about timing, also be aware of known clock-drift issues in hypervisors, and available fixes (either from the OS or virtualization vendors).
如果您担心时间问题,还要注意管理程序中已知的时钟漂移问题以及可用的修复程序(来自操作系统或虚拟化供应商)。
回答by Joel Coehoorn
With regards to databases, see this question:
Virtualized SQL Server: Why not?
关于数据库,请参阅此问题:
Virtualized SQL Server:Why not?
Note that this is specific to sql server, but many of the same principles will apply for oracle.
请注意,这是特定于 sql server 的,但许多相同的原则将适用于 oracle。
As for web servers, virtualization is a great idea. It can make it easier to increase reliability and scalability.
对于 Web 服务器,虚拟化是一个好主意。它可以更轻松地提高可靠性和可扩展性。
回答by kristof
I recently came across an article dealing with Virtualization Security. I thought it would be worth mentioning here.
我最近看到了一篇关于虚拟化安全的文章。我认为这里值得一提。