가상 머신 호스트를 구축할 때 어떤 요소를 고려해야 합니까?

가상 머신 호스트를 구축할 때 어떤 요소를 고려해야 합니까?

가상 머신을 호스팅하는 데 사용할 서버를 구축하고 싶습니다. 이러한 가상 머신은 다음과 같은 다양한 역할을 수행합니다.

  • 데이터베이스 서버
  • JBoss 애플리케이션 서버
  • Eclipse 개발 인스턴스(Java EE, Scala 등)

서버에 접속할 수 있는 사용자 수는 한 번에 5명 정도입니다. 운영 체제는 Windows 또는 Linux 중 더 잘 작동하는 것이 될 수 있습니다. 사용자에게는 Eclipse 개발 인스턴스에 대한 그래픽/데스크톱 액세스가 필요합니다.

  • 특정 수의 사용자 및 가상 머신을 적절하게 지원하는 데 필요한 하드웨어 사양을 어떻게 알 수 있습니까? 사용자당 최소 리소스 등에 대한 지침이 있나요?
  • 개발자가 물리적으로 서버 근처에 있다고 가정하면 여러 디스플레이/키보드/마우스 세트가 포함된 다중 좌석 상자를 설정하고 각 사용자에게 게스트, 키보드, 마우스 및 디스플레이 헤드를 할당하는 것이 가능합니까? 이 설정의 소프트웨어와 하드웨어는 어떻게 구성됩니까?

답변1

특정 수의 사용자 및 가상 머신을 적절하게 지원하는 데 필요한 하드웨어 사양을 어떻게 알 수 있습니까? 사용자당 최소 리소스 등에 대한 지침이 있나요?

실행하려는 소프트웨어에 대한 다양한 사례를 살펴보겠습니다.

  • 데이터베이스 서버

모든 개발자가 하나의 데이터베이스 서버를 공유하는 경우 가능한 한 많은 CPU 코어와 RAM에 액세스하여 데이터베이스 서버를 실행해야 합니다. 빠른(그러나 반드시 큰 것은 아님) 디스크가 중요합니다. 디스크 크기는 개발을 위해 전체 프로덕션 규모 데이터를 저장할 계획인지, 아니면 몇 기가바이트 정도만 저장할 수 있는지에 따라 달라집니다. 데이터베이스 병목 현상이 발생하는 것은 나쁜 일이지만 개발 데이터베이스 워크로드는 프로덕션 데이터베이스 워크로드와 매우 다를 수 있다는 점을 명심하십시오. 전자는 규모가 더 작고 더 비효율적인 쿼리를 포함할 가능성이 있는 반면(쿼리는 여전히 개발 중이고 데이터는 임시 쿼리에 의해 탐색되는 동안), 프로덕션 데이터베이스는 최적화된 쿼리를 실행하고 운영할 가능성이 높습니다. (희망적으로) RAM에 대부분 캐시되는 거대한 데이터 세트입니다.

  • JBoss 애플리케이션 서버

JBoss는 주로 CPU 시간(서블릿을 실행하는 동안), 많은 RAM(Java이기 때문에) 및 네트워크 대역폭을 사용할 것입니다. 데이터베이스와 마찬가지로 고급 애플리케이션 서버는 다중 코어의 이점을 누릴 수 있습니다. 할당할 적절한 가상 코어 수를 파악하는 가장 좋은 방법은 다양한 수의 코어에서 테스트하는 것입니다. 그러나 일반적으로 실제 코어보다 더 많은 가상 코어를 할당하지 마십시오.

  • Eclipse 개발 데스크탑 환경

이것은 까다 롭습니다. Eclipse 자체는 수백 메가의 RAM을 소비하지만, 모든 플러그인이 로드되면 그 숫자는 상당히 정적이고 수준 있게 유지되어야 합니다. 따라서 실행하는 플러그인 수에 따라 필요한 RAM 용량을 확인하고 싶을 수도 있습니다. 가장 간단한 Eclipse RCP 애플리케이션은 10MB 또는 20MB 정도의 RAM을 사용할 수 있지만 GEF 도구, 버전 제어 도구 및 데이터베이스 도구를 갖춘 완전한 JavaEE 환경은 기가바이트 이상의 메모리를 사용할 수 있습니다. Java 소스 파일의 컴파일은 네이티브 코드만큼 CPU에 의존하지 않지만 여전히 다중 코어의 이점을 누릴 수 있습니다. 그러나 일반적으로 Eclipse 인스턴스는 데이터베이스나 JBoss 인스턴스보다 상대적으로 적은 리소스(CPU, RAM, 디스크)를 사용합니다.

전반적으로 5명의 사용자와 리소스를 많이 사용하는 것으로 알려진 일부 서버측 애플리케이션을 사용하면 고급스러워 보일 것입니다. 브랜드 이름을 지정하지 않고 쿼드 코어, 24GB 이상의 RAM, SSD 또는 HDD의 빠른 하드웨어 RAID 어레이와 같은 것입니다.

개발자가 물리적으로 서버 근처에 있다고 가정하면 여러 디스플레이/키보드/마우스 세트가 포함된 다중 좌석 상자를 설정하고 각 사용자에게 게스트, 키보드, 마우스 및 디스플레이 헤드를 할당하는 것이 가능합니까? 이 설정의 소프트웨어와 하드웨어는 어떻게 구성됩니까?

먼저 몇 가지 머리말:여기그리고여기.

당신이 빨리 배울 것은많은 옵션이 있습니다그리고 이 분야에는 강력한 리더가 없습니다. 99.9%의 사람들이 사용하는 확실한 방법은 하나도 없습니다. 일부는 가상화를 전혀 사용하지 않습니다. 일부는 Xorg의 여러 인스턴스를 사용합니다. 일부는 Windows Multipoint Server를 사용합니다. 어떤 용도는 ... 당신은 아이디어를 얻습니다. 특히 5명의 사용자에게만 가능한 구성입니다. 장점은 각 사람이 데스크톱 PC를 가질 필요가 없고 모니터/키보드/마우스만 있으면 된다는 것입니다. 단점은 모든 사용자를 지원하려면 더 강력한 중앙 서버가 필요하고 소프트웨어 구성이 더 복잡하다는 것입니다.

다중 좌석 구성의 경우 필요한 모든 모니터에 충분한 포트를 확보할 수 있도록 충분한 그래픽 카드가 필요합니다. 또한 모든 키보드와 마우스를 위한 USB 허브가 필요합니다.

다중 시트 구성을 결정하면 개발자가 서버에 물리적으로 위치하도록 하는 그래픽 카드(및 다중 시트 소프트웨어)에 투자하게 된다는 점에 유의하십시오. 따라서 나중에 세계 다른 지역에서 일하는 다른 개발자를 데려오기로 결정한 경우 의자를 끌어 올리고 키보드/마우스/모니터를 가져오는 것만으로는 기존 설정에 (쉽게) 참여할 수 없습니다. 비디오 카드 포트 제한에 도달하면 더 많은 개발자에게 설정을 확장하는 것도 어려울 수 있습니다.

관련 정보