A Hardware Guide to PostgreSQL Performance – 파워 & 케이스 편

2020.12.11

“A Hardware Guide to PostgreSQL Performance”는 라인웍스에서 사용할 CDM 데이터 분석 전용 PostgreSQL 서버를 구축할 때 하드웨어를 어떻게 선택하였는지 공유하는 글 시리즈입니다. 4편 글 (https://blog.linewalks.com/archives/7204) 에서 메인보드와 쿨러에 70만원을 사용하고 나서는 예산이 40만원밖에 남지 않았습니다. 이번 편에서는 디스크, CPU, RAM, 메인보드, 쿨러 등이 모두 동작할 수 있도록 전기를 공급하는 파워 서플라이와 그 부품들을 고정시키고 보호해주는 케이스에 대하여 알아보겠습니다.

파워서플라이편

PSU (파워 서플라이) 는 110V~240V 교류를 12V 직류로 변환해주는 장치입니다. 4편 글에서 언급한 Puget Systems의 데이터에 의하면 PSU는 메인보드 다음으로 고장률이 높습니다. PSU가 터지면 시스템에 연결된 모든 부품들이 같이 사망할 수 있기 때문에 주어진 예산 안에서 안정성이 높은 PSU를 구매하는 것이 중요합니다.

PSU를 선택할 때 가장 중요한 것은 TDP (Thermal Design Power) 계산입니다. TDP 는 시스템의 모든 부품들이 풀로드 상태에서 얼마나 많은 전력 (W) 을 소비할지의 예상 수치입니다.

보통 총 TDP를 계산할 때는 CPU와 GPU들의 TDP만 합하여 사용합니다. 메인보드, RAM, SSD 등 다른 부품들의 TDP는 상대적으로 매우 낮기 때문입니다. 서버급 CPU들은 보통 사양서에 정확한 TDP가 기재되어있습니다. 하지만 Desktop/Workstation급 CPU들은 TDP가 흔히 base clock 기준으로 측정되어있어, CPU 기종에 따라 실제 풀로드시 TDP는 기재된 TDP의 1.5~2배일 수도 있습니다.

CPU TDP 예시:

GPU TDP 예시:

시스템의 총 TDP를 계산하고 나서는 그것의 1.5배~2배 용량의 PSU를 구매하면 됩니다. 저희 같은 경우는 Threadripper CPU의 TDP가 280W이고, GPU 없이 사용할 시스템이므로 560W 정도만 있으면 됐지만, 넉넉히 750W로 정했습니다.

PSU 품질을 결정하는 가장 중요한 요소는 브랜드입니다. 추천을 드리자면, 시소닉이 원탑이고, 그 다음으로는 EVGA, CORSAIR, Superflower, FSP를 추천하겠습니다.

만약에 타 브랜드의 PSU를 구입한다면 고온 (105도) 에서 신뢰도를 보장하는 커패시터 (일본산 nichicon/chemi-con 의 성능이 좋다고 알려져있습니다), 최소 5중 보호 회로 (과부하보호 (Over Power Protection, OPP), 단락보호 (Short Circuit Protection, SCP), 과열보호 (Over Temperature Protection, OTP), 과전압보호 (Over Voltage Protection, OVP), 저전압보호 (Under Voltage Protection, UVP)), 유체 베어링 (Fluid Dynamic Bearing, FDB) 팬, 그리고 적어도 5년 이상 무상 A/S 기간이 적용된 PSU를 구매하겠습니다.

저희는 시소닉 사의 FOCUS Platinum PX-750 파워 서플라이를 선택하였습니다. 105도 일본산 커패시터, 6중 보호 회로 (5중 보호 회로 + 과전류보호(Over Current Protection, OCP)), FDB 팬, 10년 무상 A/S 기간을 갖춘 최상위급 PSU이고, 20만원에 구매하였습니다.

케이스편

케이스는 크게 두가지 역할을 합니다. 첫번째로는 시스템의 모든 부품들을 고정시켜주고, 진동이나 외부 먼지로부터 시스템을 보호해줍니다. 두번째로는 시스템의 부품들에게 airflow를 제공하고, 시스템 내부의 쿨러나 방열판들에서 발생하는 열을 제거하는 역할을 합니다. 케이스를 고를 때는 원하는 모든 부품이 장착되고, 발열이 가장 잘 잡히는 제품을 선택하면 됩니다.

케이스와의 호환성을 체크할 때 가장 기본은 메인보드 장착 여부입니다. 데스크탑/Workstation급 CPU에 사용되는 메인보드들은 대부분 표준화된 규격으로 나옵니다 (e.g. ATX, Micro-ATX). 더 큰 규격을 지원하는 케이스는 하위 호환성을 보장하기 때문에 선택한 메인보드 규격 이상 지원하는 케이스를 선택하면 됩니다.

그 다음으로는 PCIe 슬롯 호환성과 HDD/SSD 호환성을 봐야합니다. GPU 또는 PCIe 규격 NVMe SSD를 구성하셨다면 선택한 케이스의 PCIe 슬롯이 충분한지 봐야합니다. HDD 또는 2.5인치 규격 SSD를 구성하셨다면 drive cage에 몇 개까지 꽂을 수 있는지 확인해야 합니다.

발열이 잘 잡히는 케이스는 두가지 요소를 갖추고 있습니다.

첫 번째는 통풍입니다. 보통 전면 전체가 mesh (타공망) 재질로 되어있는 케이스가 가장 통풍이 잘 됩니다. Mesh는 공기가 잘 통할 뿐만 아니라, 그 자리에 팬도 장착할 수 있기 때문입니다. 상단, 하단, 측면에도 mesh 로 되어있는 케이스는 발열억제에 더욱 뛰어납니다.

두 번째는 팬이 많아야합니다. 대부분의 케이스는 앞에서 뒤로 공기가 흐르도록 디자인되어있기 때문에 팬을 전면 흡기, 후면 배기로 설치하시는 것이 좋습니다. 또한, 뜨거운 공기는 자연스럽게 위로 올라가려고 하기 때문에 상단팬들은 배기, 하단 팬들은 흡기로 설치하시는 것이 좋습니다.

효율적인 airflow를 만들기 위해서는 양압 (Positive Pressure), 음압 (Negative Pressure) 도 고려하면 좋습니다. 배기하는 총 CFM (공기배출량) 이 흡기하는 총 CFM 보다 많으면 음압이고, 반대면 양압입니다. 총 CFM을 계산할 때는 각 팬의 사양서에 기재되어있는 CFM 측정치를 합하면 됩니다. 양압/음압도 아닌 중립 압력으로 구성하는 것이 가장 좋으나, 먼지청소를 하지 않을 시스템이면 조금 양압으로 하시는 것이 좋습니다. 음압의 경우, 먼지필터가 커버하지 못하는 케이스 틈세로 공기가 유입되면서 먼지도 같이 빨아들이기 때문입니다.

저희는 Corsair 사의 Air 540 케이스를 선택하였습니다. 전면, 상단, 후면이 모두 mesh로 되어있고, 팬을 총 5개 장착할 수 있습니다. 팬은 전면 2개, 상단 1개, 후면 1개를 설치해서 중립 압력을 만들었습니다. 20만원에 구매하였습니다.

결론

PostgreSQL 버전이 올라가고, 새로운 하드웨어가 출시되면서 본 가이드의 세부 내용은 많이 바뀔 수 있습니다. 하지만 I/O의 본질적인 중요성 및 부품들을 선택하는 방법은 변함 없을 것 같습니다. 무엇보다 중요한 것은 DB의 데이터 access 구조를 파악하는 것, 시장조사를 하는 것, 그리고 실제 benchmark를 찾아보는 것입니다. 서버에 투자할 예산이 많다면 당연히 성능 좋은 서버를 구축할 수 있을 것입니다. 그러나, 위와 같은 정보를 분석하여 전략적으로 투자한다면 제한된 예산으로도 좋은 서버를 도입할 수 있을 것입니다.

William Jung

Backend Engineer at Linewalks, Rising Junior at Yale University

William Jung