A Hardware Guide to PostgreSQL Performance – 메인보드 & 쿨러 편

2020.12.09

“A Hardware Guide to PostgreSQL Performance”는 라인웍스에서 사용할 CDM 데이터 분석 전용 PostgreSQL 서버를 구축할 때 하드웨어를 어떻게 선택하였는지 공유하는 글 시리즈입니다. 3편 글 (https://blog.linewalks.com/archives/6809) 에서 CPU에 170만원을 사용하고 나서는 예산이 110만원밖에 남지 않았습니다. 이번 편에서는 PostgreSQL 쿼리 성능을 내는데는 직접 관여하지 않지만, 디스크, CPU, RAM이 원활하게 동작할 수 있도록 서포트해주는 메인보드와 쿨러에 대하여 알아보겠습니다.

메인보드편

메인보드는 CPU, 램, 디스크가 서로 소통할 수 있게 해주는 기판입니다. 하이엔드 Workstation/서버 제조업체 Puget Systems 에 의하면 메인보드의 고장률은 그 어떤 부품보다 더 높습니다:

그러므로 메인보드는 신중히 골라야합니다.

메인보드의 품질을 논하기 전, 먼저 해야할 것은 CPU와의 호환성 확인입니다. 1) 소켓과 2) 칩셋을 확인하면 됩니다. 소켓은 메인보드에 CPU가 삽입되는 곳이고, 칩셋은 3편 글 (https://blog.linewalks.com/archives/6809) 에서 언급했다시피 추가 PCIe Lane, USB, WiFi 등 기능을 제공하는 메인보드 상의 칩입니다. CPU는 한가지 소켓과만 호환되지만, 여러 개의 칩셋과 호환됩니다. 인텔 i7 10700의 예를 들면, B460, H470, Z490 3가지 칩셋과 호환됩니다. 각 칩셋은 지원하는 기능이 많이 다르고, 어떤 칩셋을 사용했는지에 따라서 메인보드의 가격대도 많이 다릅니다. 선택하신 CPU가 어떤 칩셋들을 지원하는지 찾아보신 다음, 원하는 모든 기능이 들어가있는 모델을 고르시면 됩니다.

그리고 이번 글에서 지속적으로 다루게되는 Throttling 의 개념을 간단히 설명하고 지나가겠습니다. 발열과 연관된 시스템의 대부분의 부품들은 각자 온도 센서를 가지고 있으며 과열현상이 일어나는 경우 스스로를 보호하기 위하여 그 성능을 스스로 대폭 낮추는 행동을 하는데 이를 Throttling 이라고 합니다.

메인보드 품질을 결정하는 가장 중요한 부품은 VRM 입니다. VRM은 Voltage Regulator Module의 약자고, 한국에서는 “전원부” 라고도 부릅니다. VRM은 PSU (파워 서플라이) 에서 나오는 12V 직류를 CPU가 요구하는 1.0~1.5V로 낮춰주는 강압 변압기입니다.

좋은 VRM과 안 좋은 VRM을 구분할 수 있는 가장 좋은 기준은 발열입니다. Throttling 이 발생하는 경우 VRM 에서 전력공급량을 줄이기 때문에 CPU 가 전력을 제대로 공급받지 못하여 성능이 저하됩니다. 이 때문에 서로 연관이 없어 보이지만 발열 때문에 자주 throttling 되는 VRM은 CPU 성능을 크게 저하시킵니다.

VRM의 품질을 판별하는 대략적인 가이드라인을 드리고자 합니다. VRM의 발열을 좌우하는 요소는 크게 두가지가 있습니다.

첫번째는 VRM 설계입니다.

VRM은 여러개의 페이즈(phase)로 구성되어있습니다:

위 그림에서 보시다시피, 각 페이즈는 Driver, Low-side MOSFET (전계효과 트랜지스터), High-side MOSFET, Choke (유도자) 으로 구성되어있고, 페이즈를 통해서 변환된 에너지를 저장하는 커패시터도 여러개 있습니다. MOSFET, Choke, 커패시터가 무엇인지, 그리고 VRM에서 어떻게 동작하는지는 전자공학적인 설명이 필요해서 본 글에서 다루지 않겠습니다. 궁금하시면 아래 링크의 설명을 참조하시기 바랍니다:

Voltage Regulator Module (VRM) – WikiChip

페이즈가 여러개 있는 VRM은 각 페이즈가 부담해야하는 일을 줄여주므로서 전반적인 발열을 줄입니다. 그러므로 페이즈가 많은 메인보드를 선택하시는 것이 좋습니다.

<Source: http://blog.logicalincrements.com/2019/02/what-are-how-many-motherboard-vrms-power-phases/>

VRM에 들어가는 부품들에 대한 조언은 아래와 같습니다:

  • DrMOS (Driver MOSFET) 가 들어가있다고 써있는 메인보드가 좋습니다. DrMOS는 페이즈의 Driver, Low-side MOSFET, High-side MOSFET 3가지를 하나로 합친 칩입니다.
  • MOSFET 과 Choke은 얼마나 많은 전류를 공급할 수 있는지에 따라서 급이 나뉘는데, 적어도 50A, 가능하면 60A 등급이 들어간 VRM을 선택하시면 됩니다.
  • 커패시터는 대만산 혹은 중국산을 많이 쓰는데 일본산 nichicon/chemi-con 커패시터를 사용한 메인보드가 안정성 면에서 더 뛰어나다고 알려져 있습니다.

두번째는 방열판입니다. 방열판은 보통 크면 클수록 좋습니다. 더 많은 표면적을 사용함으로써 효과적으로 열을 분산시킬 수 있기 때문입니다.

<Source: http://prod.danawa.com/info/?pcode=11408037&keyword=%EB%B0%95%EA%B2%A9%ED%8F%AC%20b460m&cate=112751#bookmark_product_information>

저희는 AMD Threadripper CPU와 호환되는 sTRX4 소켓과 TRX40 칩셋을 가진 Gigabyte 사의 TRX40 AORUS PRO WIFI 메인보드를 선택하였습니다. DrMOS, 70A MOSFET, nichicon 커패시터 등 고품질 부품들로 구성되어있는 12 페이즈 VRM과 대형 방열판이 탑재된 최상위급 메인보드입니다. 추가로, 저희가 구매한 3개의 m.2규격의 NVMe SSD도 모두 장착 가능한 것을 확인하였습니다. 55만원에 구매하였습니다.

쿨러편

쿨러의 역할은 시스템 안에 있는 부품이 동작하면서 발생하는 열을 시스템 밖으로 배출하는 것입니다 (보통은 넓은 표면적으로 분산시켜서 이를 수행합니다). GPU에 붙어있는 쿨러, 메인보드의 VRM 방열판, NVMe SSD 방열판도 다 일종의 쿨러지만 보통 쿨러라고 하면 CPU 쿨러를 지칭합니다.

대부분의 현대 CPU는 clock speed (동작주파수) 가 동적으로 변합니다. 시스템이 대기 상태에서는 낮은 base clock (e.g. 3.6GHz) 으로 동작하다가, 무거운 작업을 처리해야하면 일시적으로 더 높은 boost clock (e.g. 5GHz) 에서 동작합니다. clock이 높아지면 전력소모도 올라가고, 발열도 심해집니다. 여기에서도 발열이 잘 해소되지 못하면 throttling 이 발생합니다 (clock을 낮춥니다). 그러므로 비싼 CPU의 제성능을 뽑으려면, 좋은 CPU 쿨러로 발열을 잘 잡아서 CPU가 boost clock 을 유지할 수 있게 해줘야합니다.

CPU 쿨러는 공랭쿨러, 일체형 수랭쿨러 크게 두가지가 있습니다 (커스텀 수랭쿨러는 이 가이드에서 커버하지 않겠습니다).

아래는 우리가 일반적으로 듣게되는 수랭쿨러에 대한 인식입니다. 맞는 부분도 있고 틀린 부분도 있습니다. 간단히 하나하나 확인해보고 지나가겠습니다:

  1. 수랭쿨러를 쓰면 방온도가 내려간다: 잘못된 정보입니다. 수랭쿨러를 사용하면 더 효율적으로 열을 케이스 밖으로 배출시키기 때문에 공랭쿨러 대비 방온도는 더 올라갈 수 있습니다.
  2. 수랭쿨러는 조용하다: 절반정도는 맞습니다. 일반적으로 저가형 공랭쿨러와 수랭쿨러를 비교했을 때는 수랭쿨러가 더 조용합니다. 하지만 고급형 공랭쿨러는 훨씬 더 조용합니다. (수랭쿨러는 팬 소음 이외에 펌프 소음도 있습니다.)
  3. 수랭쿨러는 항상 공랭쿨러보다 성능이 좋다: 일반적으로 맞기는 하지만 가성비를 생각해봐야 합니다. 쿨링은 표면적으로 승부합니다. 일체형 수랭쿨러는 보통 240mm, 280mm, 360mm 사이즈가 있는데, 280mm, 360mm 의 성능이 압도적으로 좋습니다. (가격은 비슷합니다.)
    그러므로 케이스에 280mm 이상급 수랭쿨러를 장착할 수 없다면 대형 공랭쿨러 (140mm의 팬을 2개 사용. e.g. Noctua NH-D15, Deepcool Assassin III) 를 고민해보시는 것이 좋습니다. 240mm 수랭쿨러와 성능이 비슷하지만, 가격은 2배 가까이 저렴하기 때문입니다.
  4. 수랭쿨러는 누수가 일어날 수 있다: 맞습니다. 어떤 회사의 수랭쿨러든지 누수가 절대 안 일어난다고 보장할 수 없습니다. 그러므로 5년 이상 A/S 기간과 좋은 누수 손해배상 정책이 적용된 수랭쿨러를 고르는 것이 좋습니다.

공랭쿨러는 히트파이프가 몇 개 있고, 팬이 몇개 달려있는지 여부보다 전반적인 빌드 퀄리티가 더 중요합니다. 저는 Noctua 사의 제품들을 추천하겠습니다. 타사 대비 빌드 퀄리티도 우수하고, 소음대비 발열 해소능력도 뛰어나다고 합니다.

일체형 수랭쿨러를 고르신다면 NZXT나 Corsair의 제품들을 추천드리겠습니다. 가장 오랫동안 수랭쿨러를 만들어왔던 두 회사고, 누수 정책, A/S 기간, 빌드 퀄리티 등이 전반적으로 훌륭합니다.

한가지 유의할 점은, Xeon Scalable, Epyc, Threadripper 같이 물리적으로 큰 CPU를 사용하신다면 full coverage 공랭을 구매하는 것이 가장 좋습니다 (e.g. TR4 전용, DX-3647 전용). 대부분의 일체형 수랭 쿨러들은 coldplate 가 작은 데스크탑용 CPU에 맞춰 제작되어있어서 Threadripper 같은 CPU의 넓은 표면적을 다 커버하지 못하기 때문입니다.

저희는 Noctua사의 NH-U14S TR4-SP3 제품을 선택하였습니다. Threadripper 전용 full coverage 공랭 쿨러이고, 12만원에 구매하였습니다.

메인보드와 쿨러에 대략 70만원을 사용하였고, 예산은 40만원 정도 남았습니다.

남은 예산으로는 파워, 케이스를 구매하였습니다.

본 시리즈의 마지막 글인 다음 편에서 소개하도록 하겠습니다.

William Jung

Backend Engineer at Linewalks, Rising Junior at Yale University

William Jung