애플리케이션에 대한 VMware 성능 요구 사항을 VMware 관리자에게 설명하는 방법은 무엇입니까?


23

종종 데비안 기반의 안정적인 애플리케이션 기반의 설치는 일반적으로 VMware ESXi에서 가상 머신에서 실행됩니다. 일반적으로 가상화 환경에 대한 가시성이나 영향을받지 않으며 VMware vCenter 클라이언트 또는 이와 동등한 제품에 액세스 할 수 없습니다. 여기서는 VMware가 가장 일반적이기 때문에 VMware에 중점을 둡니다.

우리는 :

  • 고객에게 VMware 관리자에게 알리십시오. 성능 기준 X, Y 및 Z를 충족하는 경우 VMware ESX 환경과 같은 애플리케이션을 실행할 수 있습니다.
  • 실행중인 시스템에서도 기준 X, Y 및 Z가 실제로 지속적으로 (예 : 지금도 ) 충족되는지 확인할 수 있습니다 (응용 프로그램을 중지하고 벤치 마크를 실행할 수 없으며 초기 벤치 마크로는 충분하지 않습니다. 가상 환경은 시간이 지남에 따라 변경됩니다).
  • 기준 X, Y 및 Z가 충족되면 만족스러운 성능으로 응용 프로그램을 실행할 수있는 적절한 가상 HW 리소스를 갖게 될 것입니다.

이제 X, Y 및 Z는 무엇입니까?

우리는 성능 문제가있을 때 문제가 애플리케이션이 아니라 가상화 환경에 있다는 것을 몇 번이고 보았습니다. 예를 들어 다른 가상 머신은 디스크가 실제로 저장되어있는 수많은 CPU, 메모리 또는 SAN을 사용하므로 애플리케이션 이외의 용도로 많이 사용됩니다. 현재이를 증명하거나 반증 할 방법이 없습니다.

이론적으로 때로는 응용 프로그램이 느릴 수도 있습니다 ... ;-)

성능 문제의 근본 원인 인 가상 환경 또는 애플리케이션을 어떻게 결정합니까?

CPU, 메모리 및 DISK I / O의 성능 문제에는 일반적으로 3 가지 영역이 있습니다.

CPU

예를 들어 VMware에서 관리자는 MHz로 표현 된 Reservation and Limit를 지정할 수 있지만 예를 들어 한 ESX 호스트의 512MHz가 다른 ESX 호스트의 512MHz와 정확히 동일하거나 완전히 다른 ESX 클러스터에 있습니까?

그리고 우리가 실제로 그것을 얻었는지 어떻게 측정합니까? 애플리케이션이 실행되는 동안 4 개의 CPU에서 CPU 사용률이 212 %임을 알 수 있습니다. 애플리케이션이 많은 작업을 수행하거나 동일한 호스트의 다른 VM이 CPU를 많이 사용하는 작업을 실행하고 모든 CPU를 사용하기 때문입니까?

기억 (풍선?)

예를 들어 16GB RAM을 요청하면 종종 구성되지만 벌룬으로 인해 실제로 4GB 만 가져오고 놀랍게도 응용 프로그램의 성능이 저하됩니다.

VMware 도구에 현재 풍선 도움말에 대해 문의 할 수 있지만 종종 풍선 모양이 틀리거나 최소한 부정확하다는 것을 알았습니다. 우리는 OS가 16GB의 총 RAM이 있다고 생각하는 예를 보았습니다. 모든 프로세스의 상주 메모리 (RSS)의 합은 4GB RAM이지만 VMware 도구에서 풍선이 없다고 말할 때에도 2GB의 RAM이 없습니다. -(

또한 공유 RAM이 쉽게있을 수 있으므로 RSS를 함께 추가하는 것은 유효하지 않습니다. 따라서 모든 프로세스에서 RSS를 빼서 사용 가능한 RAM의 양을 측정하여 신뢰할 수있는 열기를 감지 할 수는 없습니다. 벌룬의 경우를 감지 할 수 있지만 벌룬이 적용되지만이 방법으로 감지 할 수없는 다른 경우가 있습니다.

디스크 I / O

시간이 지남에 따라 디스크 읽기 및 쓰기 수, 읽고 쓴 바이트 수 및 IO 대기 %를 그래프로 나타낼 수 있습니다. 그러나 이것이 디스크 I / O의 정확한 그림을 제공할까요? 모든 CPU를 사용하는 다른 VM에서 비트 코인 채굴자가 실행되는 경우 기본 SAN이 정확히 동일한 성능을 제공하더라도 CPU 리소스가 다운되어 IO 대기 (IO 대기)하기 때문에 IO 대기 %가 증가한다고 상상합니다 ( % 단위로 측정 ) 증가합니다.

요약하면, VMware 관리자와 같이 어떤 언어를 이식성 있고 측정 가능한 방식으로 설명 할 수 있습니까?


응용 프로그램의 실제 요구 사항은 무엇입니까? 지금까지 설명한 내용은 내 환경의 리소스 요구 사항을 정확하게 측정하기에 충분하지 않으며 VMware에 정통합니다. 타겟 고객은 훨씬 더 어려운 시간을 보낼 것입니다. 실제로 vRealize Operations Manager를 사용하여 기록 메트릭과 관찰을 기반으로 공급 업체 요구 사항과 측정 / 적합 규모 VM을 무시합니다.
ewwhite

1
@ewwhite : 저는 하드웨어 전문가가 아닙니다. 그러나 구체적으로 말하면 8GB RAM이 있는 Core i7-5820K 에서 제대로 실행됩니다 . 자기 디스크 2015는 괜찮고 SSD는 좋습니다 (필요한 경우 여기에서 더 구체적으로 할 수 있음). 80GB의 디스크 여유 공간이 필요합니다.
Peter V. Mørch

2
"관리자는 몇 개의 코어를 할당해야합니까? 실제 RAM 요구 사항은 무엇입니까? IOP 및 처리량 관점에서 스토리지 요구 사항은 무엇입니까? 스토리지의 성장률은 무엇입니까? 씬 프로비저닝 등? "
ewwhite

성능 관점에서 응용 프로그램에 필요한 것은 무엇입니까? 응용 프로그램에 대한 벤치 마크가 있습니까? 말하는 "It runs fine with x, y, and z"것이 정확하지 않습니다. 고객에게 애플리케이션에 필요한 사항을 정확하게 알려줄 수 있어야합니다. 그들이 당신에게 그 자원을 제공하고 응용 프로그램이 제대로 수행하지 않으면 질문은 "What do we need from a resource perspective?"아니지만"Why is it performing poorly even though the proper resources have been allocated?"
joeqwerty

1
@ewwhite : "해결됨"? 아니요. 여전히 VMware 관리자에게 제공 할 수있는 25 단어 마법이 없습니다. "알고 있듯이"예측 가능한 성능을 얻을 수 있는지 테스트하고 알 수 있습니다. 그러나 나는 정확하고 측정 가능한 요구 사항이 불가능하다고 생각하고 귀하의 정보가 올바른 언어를 말하기 위해 먼 길을 가고 있기 때문에 귀하의 답변을 수락했습니다. 앞으로 "성능 문제를 해결하려면 최소한 vCenter에 대한 액세스 권한을 확인해야합니다"경로로 이동하는 것이 좋습니다.
Peter V. Mørch 8

답변:


23
  • 진심으로, 대부분의 VMware 관리자는이 점에 능숙하지 않습니다. 리소스 관리에 대한 이해 부족, 종종 Linux 지식 (도움이 없음) 및 시간 대역폭 부족. 대부분의 사내 관리자는 깊은 가상화 지식을 유지하는 데 어려움을 겪고 있습니다.

  • 다행히 읽을 수있는 책이 있습니다 !

  • 대부분의 VMware 환경은 좋지 않습니다. 열악한 클러스터 설계, 잘못된 리소스 계획 , 하위 표준 스토리지 (예 : Synology NAS), 잘못 구성된 HA, 모니터링 또는 패치 없음.

  • 조직으로서의 VMware는 우리에게 실패합니다. 특히 최신 정보를 유포하고 모범 사례를 홍보하는 데 특히 나쁩니다. 일반적인 질문에 대한 기본 검색은 프로세스와 설계가 시간이 지남에 따라 변경되었다는 사실에도 불구하고 2009 및 이전 버전의 VMware에서 결과를 생성합니다.

이 모든 것이 당신에게 불리하게 작용할 것입니다.

솔루션의 실제 요구 사항을 결정해야합니다. 어플라이언스에 2 vCPU, 8GB RAM 및 500 IOP 스토리지 성능 이 필요하다는 것을 정확하게 알 수 있다면 나와 같은 사람에게 먼 길을 갈 것입니다.

다른 접근법은 건강하거나 이상적인 환경을 관찰하고 거기에서 지표를 추정하는 것입니다.

특정 배포와 관련된 문제를 설명했습니다. 문제와 병목 현상은 무엇입니까?


적절한 크기의 VM의 예 :

300 명의 사용자 조직을위한 Exchange 서버

  • 6 주간의 워크로드 / 스트레스 히트 맵과 시간이 있습니다.
  • 6 개의 vCPU는 스파이크를위한 버퍼 공간이있는 스트레스 영역을 유지합니다.
  • 32GB RAM은 우리를 스트레스 값보다 높게 유지하지만 실제로 필요한 것보다 부당한 것은 아닙니다.

여기에 이미지 설명을 입력하십시오

  • 몇 GB의 RAM과 vCPU를 회수 할 수 있지만이 모든 것이 효율적인 VM입니다.
  • 이상적인 조건에서 이러한 유형의 애플리케이션 모니터링을 얻는 것이 좋습니다.

여기에 이미지 설명을 입력하십시오


VM 리소스 모니터링의 예

좋은 점 :-VM의 크기가 적당합니다. -클러스터에서 CPU가 오버 커밋되었지만 경쟁이 일어나지 않았습니다.

여기에 이미지 설명을 입력하십시오

나쁜 것 :

  • VM은 구성된 모든 RAM을 얻지 못합니다.
  • VM이 이미 RAM을 교체하고 있습니다.
  • CPU가 과도하게 구성되었습니다.

여기에 이미지 설명을 입력하십시오


2
답변 감사합니다. 논쟁의 여지가 있지만 한 고객에게는 2 개의 vCPU, 8GB RAM 및 500 IOP 스토리지 성능 (답변에서)으로 훌륭하게 실행됩니다. VMware 관리자에 따르면 다른 고객 사이트에서도 같은 것을 요청하고 얻습니다. 그러나 2vCPU는 17 개의 다른 CPU 배고픈 VM과 공유되며 8GB RAM도 풍선 모양입니다. VM 디스크를 잘 이해하지 못하므로 실제로 그렇게한다고 가정 해 봅시다. 우리의 앱은이 두 가지 ESXi 환경 중 첫 번째 환경에서 훌륭하게 작동하고 다른 환경에서는 크게 성능을 발휘합니다. VM 내부와의 차이를 어떻게 측정합니까?
Peter V. Mørch

1
VM 내에서 " CPU Steal "을 모니터링 하여 CPU가 너무 과도하게 커밋되었는지 확인할 수 있습니다. RAM 벌룬 / 스와핑의 경우 성능 저하를 제외하고 VM 내부에서 알기가 어렵습니다. 하지만 vCenter에 대한보기 및 VM에 대한 리소스를 요청할 수 있습니다. 예는 위를 참조하십시오.
ewwhite

1
CPU 훔치기를 살펴 보겠습니다. 우리는 때때로 애플리케이션에서 VMware 관리자가 손가락을 가리키고 느린 VMware 환경에서 손가락을 가리키게됩니다. 그러나 대부분 vSphere에 대한보기 액세스 권한이없는 경우가 많으며 다른 설치에서 제대로 작동하면 문제 해결이 어려워집니다. 내가 한 가지 방법이 될 수있을 것 같아요 : "당신이 우리를 원하는 경우 문제 해결 성능에, 우리는해야합니다 귀하의 VCENTER에 적어도보기 액세스 권한의"
피터 V. Mørch

3
대부분의 VMware 관리자는 이러한 내용을 읽는 방법조차 모릅니다. 나는 그들을 쫓아 많은 시간을 보냅니다. 따라서 공급 업체로서 설정에 대한 액세스 또는 통찰력을 요구하기가 어렵습니다. 그러나 요구 사항을 강화한 다음 시행하는 것이 가장 좋습니다. 일반적으로 예약 설정을 권장하지 않지만 응용 프로그램이 중요한 경우에는 의미가 있습니다. 또는 최소한 "공유 우선 순위"를 설정하십시오. 응용 프로그램은 무엇을합니까?
ewwhite 2016 년

1
소규모, 중형 및 대규모 권장 구성의 VMware 어플라이언스로 배포하는 것을 고려해 보셨습니까?
ewwhite 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.