일반 설치와 가상 머신 - 멀티 코어에 더 나은 것은 무엇입니까? [폐쇄]

일반 설치와 가상 머신 - 멀티 코어에 더 나은 것은 무엇입니까? [폐쇄]

현재 우리는 하이퍼스레딩을 지원하는 64GB RAM과 8코어를 갖춘 새 서버를 구입했습니다. 우리는 다음을 사용하여 시스템을 구축할 것입니다.

  • nginx.
  • 아파치.
  • mysql.mysql.
  • PHP

따라서 문제는 성능입니다. 코어를 가장 효율적으로 사용하는 방법은 무엇입니까?

단일 운영 체제를 설치하고 개별 애플리케이션을 조정하는 것이 더 낫습니까, 아니면 여러 가상 머신을 생성하고 각 머신이 해당 리소스(예: 코어)를 활용하도록 하는 것이 더 낫습니까?

답변1

가상머신을 사용함으로써 얻을 수 있는 이점은 성능 자체의 향상이 아닙니다. 주요 아이디어는 많은 경우 시스템 격리를 원한다는 것입니다. 즉, 한 시스템이 다른 시스템을 방해하는 것을 원하지 않습니다. 공급자는 다양한 고객을 위해 장치를 호스팅할 수 있으며 물론 안전하게 분리되어야 하기 때문에 이는 클라우드 컴퓨팅에서 중요한 역할을 합니다. 각 고객이 자신의 시스템을 보유하고 있는 베어메탈 접근 방식을 사용하는 경우 시스템을 완전히 활용하지 못할 수 있습니다. 단일 물리적 시스템에서 여러 가상 시스템을 호스팅하면 보안 환경을 제공하는 동시에 활용도가 향상됩니다.

그러나 가상 머신을 호스팅하는 데에는 고유한높은. 소프트웨어는 가상화된 하드웨어에서 비효율적으로 실행될 수 있고, 가상 머신은 호스트 머신에서 관리되어야 하며, 가상 머신 간에 중복성이 많이 있습니다. 이로 인해 보상이 아닌 성능 저하가 발생합니다.

귀하의 경우 보안이나 유지 관리상의 이유로 각 서비스를 별도의 가상 머신에서 실행하고 싶을 수도 있습니다. 서비스 중 하나가 손상되더라도 다른 서비스는 영향을 받지 않을 수 있습니다. 또한 각 가상 머신에 대한 스냅샷을 쉽게 생성할 수 있어 유지 관리 등이 단순화됩니다. 하지만 성능 향상에 대해서는 장담하지 않습니다.

VM의 대안은운영 체제 수준 가상화예를 들어, 최근 Linux에서 인기를 끌고 있는 컨테이너 기술은루스트어바웃. 여러 개의 완전한 운영 체제를 실행할 필요 없이 여러 개의 독립적인 사용자 공간 인스턴스를 허용하여 성능 저하를 크게 줄이면서 가상 머신의 많은 이점을 제공합니다. Docker 컨테이너는 배포가 쉽고 스냅샷도 지원합니다.

답변2

그렇다면 문제는 성능입니다. 코어를 가장 효율적으로 사용하는 방법은 무엇입니까?

이 상자에서 다른 것이 실행되고 있지 않으면 간단한 설치를 수행하겠습니다. 하지만 모든 것을 하나의 상자에 담는 것을 좋아하지는 않습니다. "로컬"로 실행하는 것과 비교할 수 있는 것은 거의 없습니다. @Benjamin B.가 말했듯이 Docker는 오버헤드 수준이 매우 낮은 가상화입니다. 하지만 가상화할 이유가 없다면 이렇게 간단한 설정으로는 구현하지 않을 것입니다. 최소한 프로젝트에 추가적인 조직 오버헤드가 추가됩니다.

단일 운영 체제를 생성하고 앞서 설명한 구성 요소를 효과적으로 확장하는 것이 더 낫습니까, 아니면 여러 가상 머신을 생성하고 각 머신이 해당 코어를 활용하도록 하는 것이 더 낫습니까?

왜 이것이 더 좋아야합니까? 컴퓨터에서 Ubuntu를 실행하고 있고 Ubuntu를 사용하여 가상 컴퓨터를 설치한다고 가정합니다. Guest-Ubuntu가 일반 설치와 다르게 동작하는 이유는 무엇입니까?

운영 체제는 리소스를 효율적으로 관리하도록 구축되었으므로 간단한 설치로 모든 것을 실행하면 됩니다.

인스턴스/서비스를 쉽게 시작하고 종료하려는 경우 또는 보다 세분화된 격리 수준이 필요한 경우 가상화가 흥미로울 수 있습니다.

그러나 유일한 상자이기 때문에 간단하게 설치할 수 있습니다.

OT: 왜 Apache와 nginx를 사용하나요?

관련 정보