CPU 코어가 많은 게 좋을까요, 빠른 코어가 좋을까요?

우리의 커뮤니티는 실제 세계의 이벤트에 따라 트래픽이 급증합니다. 정확히 말하면 아이스하키 경기로, 약 2.5~3시간 동안 특정 토픽에 1,000개의 메시지가 몰리는 상황이 발생합니다. 다른 토픽에서 논의되었듯이, 이러한 트래픽 급증을 처리하는 데 어려움을 겪고 있습니다.

이로 인해 제한된 예산 내에서 다른 호스팅 옵션을 탐색하게 되었습니다. 목표 예산은 월 50유로 정도입니다. 이전에 제안을 조사한 이후로 시장은 많이 변했습니다.

  • Hetzner에서는 단 42유로에 Ryzen 5 3600 CPU가 탑재된 전용 서버를 구할 수 있습니다. 6코어를 갖춘 상당히 강력한 CPU입니다. 마침 이 노트북에도 비슷한 CPU가 탑재되어 있는데, 일반적인 성능이 좋은 VPS보다 싱글스레드 처리 성능이 약 40~50% 더 빠릅니다.
  • 하지만 같은 가격대에서는 코어 수가 훨씬 많지만 성능이 다소 낮은 VPS를 구매할 수도 있습니다. Contabo는 단 27달러에 10코어를 제공하며, Hetzner는 62유로에 최대 16코어를 제공합니다. 이 외에도 수많은 다른 제공업체가 있습니다.

이러한 제안들을 보며, Discourse의 피크 출력 극대화를 위해 어떤 코어 구성이 이상적인지 궁금해졌습니다. 성능이 높은 소수의 코어일까요, 아니면 많은 수의 코어일까요?

이를 검색해 보았지만 대부분 제가 이전에 작성한 게시글들을 발견했습니다 :slight_smile: 초기에 간간이 논의되었던 주제이지만, 최근에는 충분히 논의되지 않은 것 같습니다. 수년에 걸쳐 코드가 많이 변경되었으므로, 소프트웨어의 동작 방식이나 일반적인 권장 사항도 변했을 수 있습니다.

맞아요, 오래된 게시글들이긴 하지만 추세는 일관된 것 같아요 :thinking:

게임 나이트를 위한 확장 가능한 인스턴스 어떨까요? 약간의 다운타임을 감수하면 백업을 하고 더 크거나 작은 인스턴스로 전환하는 것이 쉽습니다. Jitsi 인스턴스에서 비슷한 문제를 겪은 적이 있는데(참고로 훌륭한 컴포넌트입니다 :smile:), 대부분의 시간은 아무것도 하지 않고 대기 상태였지만, 일주일에 몇 번은…

현재 어떤 병목 현상에 직면해 있는지 정확히 알지 못하면 구체적인 가이드를 제공하기 어렵습니다.

Prometheus exporter plugin for Discourse를 사용하면 수많은 구성 요소 중 어떤 것이 문제인지 정확히 파악할 수 있습니다.

OP에서 우리의 사례를 소개하긴 했지만, 본래 의도는 일반적인 수준에서 이 문제를 논의하는 것이었습니다. 우리의 루트 케이스를 식별하든 하지 않든, 중기적으로 호스팅 시장에 진출할 수 있습니다.

Discourse의 경우, 코어의 수가 많기보다 빠른 코어를 우선시해야 합니다. 둘 다 가능하다면 더 좋습니다(로드 시나리오의 경우). 하지만 일반적인 상황에서는 느린 코어 4개보다 빠른 코어 2개가 전반적으로 더 나은 성능을 발휘합니다.

우리는 보통 빌드 시간을 기준으로 이를 측정하며, 여기에 몇 가지 예시가 있습니다. 하지만 어떤 싱글 스레드 벤치마크를 사용해도 무방합니다.

이상적으로는 빌드 시간이 4분(240초) 미만이어야 합니다.

저는 이 분야에 전문가가 아니지만, VPS의 가상 코어와 CPU의 물리적 코어가 서로 비교할 수 있는 수준인지 의문입니다. 대략적인 근사를 원하신다면 제공되는 RAM 양을 참고하고, 이 VPS들이 256Mo 컴퓨터에서 구동된다고 가정해 볼 수 있습니다. "10(가상) 코어"를 제공하는 Contabo는 60Mo의 RAM을 제공합니다. 아마도 그들은 256Mo의 Hetzner 전용 서버(질문하신 서버)와 대략 동등한 성능의 하드웨어에 이러한 서버 4대를 구동하고 있을 것입니다. 따라서 "10(가상) 코어"의 성능은 "6(물리적) 코어"의 약 4분의 1 수준일 것으로 추정됩니다. 만약 128Mo 컴퓨터에 2대를 구동한다면(해당 컴퓨터의 CPU가 Hetzner 장비보다 빠르거나 느릴 수 있으므로 확신할 수 없습니다) 최대 절반 정도라고 봐야 할 것입니다.

(실제로는 동일한 프로바이더의 다른 VPS 상품끼리만 "가상 코어"를 비교하는 것이 가능합니다. 서로 다른 프로바이더의 VPS끼리는 비교 자체가 의미가 없는지조차 확실하지 않습니다.)

확실히 알고 싶으시다면 1개월간 구독을 신청하고 벤치마크를 실행해 보셔야 합니다. 혹은 프로바이더에게 벤치마크를 실행해 달라고 설득하거나, 짧은 기간 동안 무료 체험을 제공해 달라고 요청할 수 있습니다. 정말로 성능이 중요하다면, VPS의 경우 이를 확인하는 유일한 방법입니다. 또는 더 정확한 정보를 얻을 수 있는 전용 서버를 선택하는 것도 방법입니다.

수정: Contabo와 같은 VPS 프로바이더는 일반적으로 KVM을 사용하여 가상화를 수행하며, 검색 결과에 따르면 실제로는 물리적 코어보다 많은 "가상 코어"를 표시할 수 있는 것으로 보입니다. 예시:

네, 사용 가능한 물리적 코어보다 많은 가상 CPU를 구성하고 실행할 수 있습니다. 이는 4코어 단일 CPU Intel X3210 머신에서 10개의 CPU를 표시하는 유휴 상태의 Windows Server 2008 (x86, 독일어) KVM 게스트입니다.
(출처: https://serverfault.com/questions/435231/can-kvm-cpu-assignment-count-differ-from-physical-hosts-cpu-count )

“코어” 수에 비해 제공하는 RAM 양이 매우 많다는 점을 고려하면, 그들이 이렇게 하는 것은 합리적인 선택으로 보입니다.

이 제안을 보고 :face_with_monocle: 흠, 괜찮은 거래인데, 하고 생각하다가 RAM이 ECC가 아니라는 걸 보고 급하게 웹에서 검색해봤습니다. 그리고 뭐가 뜨냐면? Jeff의 이 블로그 글입니다. :sweat_smile:
CPU 관련 영상이 정말 웃기게 만들더군요…

와, 저는 이미 Hetzner를 사용 중인데, 현재 Ryzen 기반 서버보다 가격이 더 비싸고 CPU는 느리면서 저장 공간도 적어요. 그래서 전환할 가치가 있어 보이네요… 알려주셔서 감사합니다!

블로그 링크 보내 주셔서 감사합니다. 잘 읽었습니다.

비디오가 천 개의 말보다 낫다는 데에도 동의합니다. 그리고… 정말 재미있기도 하죠.

L3 캐시 크기에 따라 다른 CPU로 테스트를 해본 분이 계신가요?

Ruby는 메모리에 매우 높은 요구사항을 가진 언어라는 언급을 몇 번 보았습니다. Discourse는 대규모 데이터셋으로 동작하기 때문에, 이는 CPU 캐시 크기가 미칠 수 있는 영향에 대한 힌트가 될 수 있습니다.

새로운 서버를 선정하고 올바른 CPU를 고르는 중입니다. 가장 높은 클럭 속도를 가진 CPU를 선택할지, 아니면 L3 캐시 크기도 고려해야 할지 고민입니다.

현재 Intel® Xeon® E-2174G를 보고 있는데, 4코어, 3.8GHz 클럭, 8MB 캐시를 갖추고 있습니다. 하지만 12MB 또는 16MB 캐시를 가진 더 비싼 옵션들도 있습니다. 그 가격만큼 가치가 있을까요?

감사합니다!

제 경험상 그것은 큰 차이를 만들지 않을 것입니다.