가상 머신이 기본 물리적 머신보다 느립니까? 서버 또는 DB

이 질문은 매우 일반적이지만 Ubuntu Enterprise Cloud를 실행하는 가상 머신이 가상화없이 동일한 물리적 머신보다 느릴 지 알고 싶습니다. 얼마 (1 %, 5 %, 10 %)?

웹 서버 또는 DB 서버 (가상 VS 물리적)의 성능 차이를 측정 한 사람이 있습니까?

구성에 의존하는 경우 64 비트 우분투 엔터프라이즈 서버를 실행하는 2 개의 쿼드 코어 프로세서, 12GB의 메모리 및 많은 SSD 디스크를 상상해 봅시다. 또한 가상 머신 1 대만 사용 가능한 모든 리소스를 사용할 수있었습니다.



답변

베어 메탈 \ 유형 1 하이퍼 바이저의 범용 서버 워크로드에 대한 일반적인 경험은 CPU 오버 헤드의 약 1-5 % 및 메모리 오버 헤드의 5-10 %이며 전체 IO로드에 따라 몇 가지 추가 오버 헤드가 있습니다. 이는 기본 하드웨어가 적절하게 설계된 VMware ESX \ ESXi, Microsoft Hyper-V 및 Xen에서 실행되는 최신 게스트 OS에 대한 경험과 거의 일치합니다. 최신 CPU 하드웨어 가상화 확장을 지원하는 하드웨어에서 실행되는 64 비트 서버 운영 체제의 경우 모든 유형 1 하이퍼 바이저가 해당 1 % 오버 헤드 수로 향할 것으로 예상합니다. KVM의 성숙도는 현재 Xen (또는 VMware)에 달려 있지 않지만 설명 한 예에서 현저히 나쁘다고 생각할 이유가 없습니다.

특정 유스 케이스의 경우 가상 환경의 전체 “집합”성능이 베어 메탈 서버를 초과 할 수 있습니다. 다음 은 베어 메탈 Oracle RAC보다 VMware Clustered Implentation이 더 빠르거나 저렴할 수있는 방법 에 대한 토론의 예입니다 . VMware의 메모리 관리 기술 (특히 투명한 페이지 공유)은 비슷한 VM이 충분한 경우 메모리 오버 헤드를 거의 완전히 제거 할 수 있습니다. 이 모든 경우에서 중요한 것은 가상화가 제공 할 수있는 성능 및 효율성 이점은 여러 VM을 호스트에 통합하는 경우에만 실현 될 수 있다는 것입니다. .

이것이 모두 유용하지만 서버 가상화 측면에서 실제 문제는 관리, 고 가용성 기술 및 확장 성을 중심으로하는 경향이 있습니다. 2-5 %의 CPU 성능 한계는 20, 40 또는 각 호스트에서 필요한 많은 VM으로 효율적으로 확장 할 수있는 것만 큼 중요하지 않습니다. 기준으로 약간 더 빠른 CPU를 선택하거나 클러스터에 더 많은 노드를 추가하여 성능 저하를 처리 할 수 ​​있지만 호스트가 실행할 수있는 VM의 수를 확장 할 수 없거나 환경을 관리하기 어려운 경우 서버 가상화 관점에서 볼 때 가치가 없습니다.


답변

“성능”에는 여러 가지 측면이 있습니다. n00bs는 OS의 부팅 시간을 측정합니다. 예를 들어 Windows 2012는 실제 HD에서 12 초, SSD에서 1 초로 부팅되기 때문에 정말 좋습니다.
그러나 이런 종류의 측정은 그다지 유용하지 않습니다. 성능은 OS 부팅 시간과 동일하지만 OS는 한 달에 한 번 부팅되므로 최적화하는 것이 의미가 없습니다.

그것은 매일의 사업이기 때문에 “성능”을 구성하는 다음 4 가지 부분을 지적 할 수 있습니다.

  1. CPU로드
    비교할 수 있어야합니다. 즉, 베어 메탈에서 1000ms가 걸리는 작업은 동일한 하드웨어의 유휴 VM 환경에서 1000ms의 프로세스 시간 및 아마도 1050ms의 클럭 시간으로 실행됩니다 (일부 자세한 내용은 나중에). Google은 프로세스 시간과 쿼리 성능 카운터에 대한 MSDN을 제공하며 VM이 CPU 시간을 얼마나 많이 소비하는지 보여줄 수 있습니다.

  2. SQL 성능
    SQL 성능은 IO를 사용하여 SQL 데이터가 저장된 데이터 스토어에 의존합니다. Buffalo 홈 NAS에서 찾을 수있는 1 세대 ISCSI와 DCE 및 실제 구식 FC 환경을 갖춘 ISCSI의 모든 수준에서 300 %의 차이를 보았습니다. FC 대기 시간은 달성 할 수있는 최저 수준이므로 TCP / IP 데이터 센터 향상을위한 FC 프로토콜의 “복사”로 이어지기 때문에 FC는 오늘날에도 여전히 승리합니다. 여기서 IOps와 대기 시간은 중요하지만 서버 프로세스에서 미디어까지의 IO 대역폭-앱이 No-SQL 또는 데이터웨어 하우징인지 또는 ERP 시스템과 같은 중간인지 여부에 따라 다릅니다. Sage KHK for small enterprises, SAP 거대한 사람들을 위해.

  3. 파일 시스템 액세스
    비디오 스트리밍과 같은 일부 응용 프로그램은 보장 된 최소 대역폭에 의존하고, 다른 응용 프로그램은 16 진 편집기에서 큰 파일을 열고 비디오 프로젝트를 가장 좋아하는 영화 제작 프로그램에로드하는 것과 같이 최대 IO 처리량에 의존합니다. VM의 일반적인 상황은 아닙니다 … IOps는 개발자에게도 중요 할 수 있습니다. 개발 환경은 매우 민감하므로 VM에서 그렇게하는 유혹이 높기 때문에 개발자는 종종 VM을 사용합니다. 큰 프로젝트를 컴파일하는 것은 종종 많은 작은 파일을 읽고, 컴파일러 작업을 수행하고, EXE와 그에 따르는 구성 요소를 빌드하는 것을 의미합니다.

  4. 클라이언트에 대한 네트워크 대기 시간
    여기에서 단어 2010, Openoffice Writer, LaTEX, GSView 등과 같은 WYSIWIG 프로그램의 유용성은 마우스 동작이 클라이언트에서 서버로 얼마나 빨리 전달되는지에 크게 의존합니다. 특히 CAD 응용 프로그램에서는 이것이 중요합니다 … LAN 문제는 아닙니다. 이것이 중요한 WAN을 통한 원격 액세스입니다.

그러나-수년간의 컨설팅 관점에서 말하면 관리자 암호를 가진 사용자가 있으며 (그리고 종종 BIG 예산과 BIG 포켓 북을 가진 BIG 회사의 직원)이 이에 대해 불평하지만 명확해야합니다. 어떤 성능 구성 요소가 그들에게 중요하고 그들이 사용하는 응용 프로그램의 관점에서 중요합니다.
아마도 메모장이 아니라 엔지니어링을위한 매우 정교한 응용 프로그램 일 것입니다.이 또한 비용이 많이 들며 VMware, HyperV 또는 Xenapp에서 옮겨야하며 예상대로 작동하지 않습니다.

그러나 그들은 순수한 CPU 성능을 위해 만들어지지 않은 블레이드에서 1.5GHz Xeon에서 실행될 수 있다는 점을 염두에 두지 않고 평균적으로 구축되었습니다. .

그리고 우리가 절충과 경제에 대해 이야기 할 때, 그것은 대부분 과잉 헌신으로 이어집니다. 초과 커밋은 CPU를 꽤 잘 처리 할 수있는 리소스 부족으로 이어지지 만 메모리 부족으로 인해 페이징, 코어 라우터에서 IO 부족으로 인해 모든 응답 시간이 증가하고 모든 종류의 스토리지에 대한 트랜잭션 과부하로 인해 모든 유용한 앱이 중지 될 수 있음 너무 빨리 응답하지 않습니다. 여기에는 모니터링이 필요하지만 많은 소프트웨어 공급 업체는 이러한 정보를 제공 할 수 없습니다. 반면에 3 개의 물리적 서버 리소스가있는 호스트는 물리적 서버와 동일한 레이아웃의 가상 머신 8 개를 처리 할 수 ​​있습니다 …

유휴 시스템의 CPU 트레이드 오프는 실제 시스템보다 성능이 50 % 더 느린 시스템을 야기하는 반면, 고객의 IT 담당자가 VM으로 옮기고 싶어하는 “실제”OS 및 “실제”앱을 설치할 수있는 사람은 없습니다. 상자. 그리고 VM 기술이 순수한 CPU 속도로 거래함으로써 유연성을 제공 할 수 있음을 분명히하기 위해서는 며칠이 걸릴 수도 있습니다 (몇 주일 수도 있지만 확실히 42 회의). 이것은 오늘날 더 큰 VM 환경을 호스팅하는 이러한 블레이드 시스템의 CPU에 내장되어 있습니다. 또한 메모리는 비교할 수 없으며 일부 장단점이 적용됩니다. DDR3 1600 CL10은 DDR2 800 ECC LLR보다 메모리 대역폭이 더 높으며, 인텔 CPU는 AMD CPU와는 다른 방식으로 이로부터 이익을 얻는다는 것을 모두 알고 있습니다. 그러나 생산적인 환경에서는 거의 사용되지 않습니다. 고국의 데이터 센터가 10 %의 가격으로 데이터 센터 서비스를 제공하는 3 세계 국가에서 호스팅되는 화이트 박스 또는 데이터 센터에서 더 많은 금액이 청구될 수 있습니다. Citrx 덕분에 데이터 센터는 최종 사용자와 데이터 센터 사이의 대기 시간이 150ms 미만이면 어디에나있을 수 있습니다.

그리고 가정 사용자 관점 ….

마지막으로, 일부 사람들은 Win7 또는 XP를 버리고 Linux로 바꾸고 싶어합니다. 실제로 Linux와 Windows에서 사용할 수있는 게임이 거의 없기 때문에 게임 문제가 발생합니다. 게임은 3D 가속에 크게 의존합니다. VMWare 6.5 워크 스테이션 및 연결된 무료 플레이어는 DirectX 9를 처리 할 수 ​​있습니다. 즉, VM의 Doom3은 호스트 그래픽 카드에서 전체 화면으로 실행될 수 있습니다. 게임은 대부분 32 비트 앱이므로 3GB를 넘지 않고 CPU를 3 개 이하로 소비합니다 (Crysis에서 확인). 최신 VM 플레이어와 WS는 더 높은 DirectX 버전과 아마도 OpenGL을 처리 할 수 ​​있습니다. VMware 6.5에서 UT와 UT2004를 게임했는데 호스트에는 ATI Radeon 2600 모바일과 T5440 CPU가있었습니다. 1280×800에서 안정적이며 네트워크 게임에서도 재생할 수 있습니다 ….


답변

예. 그러나 그것은 질문이 아닙니다. 차이는 일반적으로 무시할 만합니다 (1 % ~ 5 %).


답변

특정 상황에서는 가상화가 물리적 성능을 능가 할 수 있다고 지적합니다. 하드웨어 에뮬레이션이 특정 LAN 카드 인 경우에도 네트워크 계층은 기가비트 속도로 제한되지 않기 때문에 동일한 서버의 VM은 평균 네트워크 장비를 사용하는 여러 물리 서버의 속도를 넘어서 서로 통신 할 수 있습니다.


답변

동일한 테스트를 실행하는 동일한 소프트웨어 (많은 웹 트래픽과 상당한 SQL Server 액세스를 가진 .NET 기반 웹 응용 프로그램)에 대한 테스트 비교를 수행했습니다. 내가 본 것은 다음과 같습니다.

  • 물리적 시스템은 클래스를 인스턴스화하는 데 더 좋습니다 (시스템 수준에서 메모리 할당으로 변환 됨). 물리적 시스템은 메모리 관리 하드웨어를 통해이 작업을 수행하고 VM은 소프트웨어 (부분 하드웨어 지원이있는)를 통해이 작업을 수행하므로 VM에 적합합니다. , 앱은 생성자 (메모리가 할당되고 다른 작업은 수행되지 않음)에서 상당한 시간을 보냈습니다. 물리적 시스템에서는 생성자가 상위 1000에 포함되지 않았습니다.
  • 당신이 방법의 중간에있을 때, 둘은 동등한 것입니다-이것은 아마도 “같은 것”을 보여주는 대부분의 벤치 마크가 구성되는 방법 일 것입니다.
  • 네트워크 컨트롤러에 액세스 할 때 물리적은 VM을 약간 능가합니다. 물리적은 .NET 프로세스와 하드웨어 사이에 많은 부분을 차지하지 않습니다. VM은 각 트랜잭션이 이동해야하는 다른 “항목”을 추가합니다.
  • 실제로 디스크 액세스 (SQL Server가 다른 컴퓨터에 있음)에도 동일한 내용이 적용됩니다. 차이는 매우 작지만 모두 추가하면 눈에.니다. 네트워크 액세스 속도가 느리거나 디스크 액세스 속도가 느리기 때문일 수 있습니다.

다른 사람이 벤치 마크를 구축하여 1 %의 차이 또는 동일하거나 VM이 더 빠른 위치를 어떻게 확인할 수 있는지 쉽게 알 수 있습니다. 프로세스가 VM에서 소프트웨어로 시뮬레이션해야하는 로컬 하드웨어 지원의 이점을 활용하는 부분은 포함하지 마십시오.


답변

특정 물리적 하드웨어에 설치된 운영 체제, 소프트웨어 및 데이터를 동일한 원래 하드웨어의 하이퍼 바이저 내부에 설치된 동일한 운영 체제, 소프트웨어 및 데이터와 비교하려고합니다. 이 비교는 유효하지 않습니다. 왜냐하면 적어도 아무도 처음에는 그렇게하지 않기 때문입니다. 물론 속도가 느려질 수 있습니다. 고맙게도 서버를 가상화하는 가장 일반적인 요점을 완전히 놓친 것입니다.

더 좋은 예는 데이터 센터에서 2 개 이상의 구형 서버를 보는 것입니다. 성능은 좋지만 현재는 오래되었고 새로 고침주기가 시작되는 서버를 찾으십시오. 이 서버는 이미 구형 하드웨어에서 잘 작동하므로 무어의 법칙 덕분에 새로운 것을 얻을 수 있습니다.

그래서 당신은 무엇을합니까? 간단 해. 두 대의 새 서버를 구입하는 대신 하나만 구입 한 다음 이전 서버를 모두 동일한 실제 새 장치로 마이그레이션하십시오. 새 서버 구매를 준비 할 때 이전 서버와로드 바이저의로드를 처리 할 수있는 충분한 용량을 갖도록 계획하십시오. 성장 가능).

요약 : 가상 머신은 대부분의 상황에서 “충분한”성능을 제공하고 “폐기 된”컴퓨팅 성능을 피하기 위해 서버를보다 잘 활용할 수 있도록 도와줍니다.

이제 이것을 조금 더 확장하겠습니다. 이것들은 오래된 서버이기 때문에 아마도 당신을 교체하기 위해 몇 $ 1500 피자 박스 서버를보고 있었을 것입니다. 이 피자 상자 중 하나조차도 여전히 가상의 오래된 기계 두 대의로드를 쉽게 처리 할 수 ​​있지만 실제 하드웨어에 7500 달러 이상을 소비하기로 결정했다고 가정 해 봅시다. 이제 초기 비용이 5 인 스토리지 및 네트워킹 처리 방법에 따라 수십 개의 기존 서버를 쉽게 처리 할 수있는 장치가 있습니다. 또한 하나의 물리적 서버 만 관리하여 분리 할 수 ​​있다는 이점이 있습니다. 하드웨어의 소프트웨어 (예 : 하드웨어 새로 고침에 새로운 Windows 라이센스가 필요하지 않거나 다운 타임을 유발할 가능성이 적음), 전력을 절약하고 하이퍼 바이저가 성능보다 더 나은 정보를 제공 할 수 있습니다. ve는 과거에 있었다. 이 중 두 가지를 얻으십시오. 전체 데이터 센터가 두 대의 시스템으로 다운 된 규모에 따라 또는 두 번째 서버를 핫 스탠바이로 사용하여 더 나은 고 가용성 스토리를 제공하고자 할 수 있습니다.

여기서 요점 은 성능에 관한 것이 아니라는 것입니다. 완벽하게 좋은 프로덕션 서버를 사용하지 않고 동일한 하드웨어로 단독으로 가상화하지는 않습니다. 고가용 성과 같은 통합을 통해 얻을 수있는 비용 절감 및 기타 이점에 대해 자세히 설명합니다. 이러한 이점을 실현한다는 것은 서버를 다른 하드웨어로 옮기는 것을 의미하므로 하이퍼 바이저 처벌에 대한 설명을 포함하여 해당 하드웨어의 크기를 적절히 조정해야합니다. 예, 각 머신이 자체 물리적 장치에있을 때보 다 약간 더 많은 컴퓨팅 성능이 필요할 수 있습니다 (힌트 : 실제로 총 컴퓨팅 성능훨씬 적을 수 있음). 훨씬 저렴하고 에너지 효율적일 것입니다. 유지 보수가 더 쉬움 많은 물리적 서버를 실행하는 것보다 하나의 물리적 서버를 실행하는 것.


답변

방금 SSD (OCZ Vertex 2)로 업그레이드했으며 XP VM 개발 환경을 실행합니다. 저는 소프트웨어 개발자입니다. 내가 알았던 한 가지는 프로그램을 시작할 때 (로드하는 데 충분한 시간이 걸리는 것) 가상 CPU의 핵심이 페그 아웃된다는 것입니다. 이것은 IE를로드 할 때도 발생합니다. CPU가 페그 아웃되므로 병목 현상이 SSD가 아닌 CPU라고 가정합니다. 그러나 이상한 것처럼 보입니다. 물리적 컴퓨터에서 동일한 작업을 수행하면 더 빨리로드되고 VMWare가 디스크 액세스에서 CPU를 소비하는 추가 처리 오버 헤드가 있다는 느낌이 들었습니다.

예를 들어, 델파이를 사용하고 일반 HDD가있는 실제 머신에서 콜드 부팅을 시작하는 데 20 초가 걸릴 수 있습니다. SSD를 실행하는 VM에서는 콜드 스타트 ​​후 19 초 안에로드됩니다. 큰 차이는 없지만 SSD가 물리적 시스템에 있으면 더 빨리로드됩니다. 그러나 실제 머신의 CPU 사용량을 확인하지 않았으며 CPU에 병목 현상이 있었을 수도 있습니다.

그러나 VM의 느낌은 디스크 액세스가 VM에 세금을 부과한다는 것입니다.