초대형 데이터 센터(Hyperscale Data Center, HDC)는 수천 대의 서버, 랙 및 네트워크 장비가 들어 있는 거대한 건물로, 종종 축구장 몇 개 크기입니다. 메타는 이러한 HDC를 캠퍼스에 많이 보유하고 있으며, H자 모양과 I자 모양을 비롯한 다양한 디자인을 사용합니다.
문제
새 HDC를 디자인할 때, 메타는 모든 연결된 기능에서 지연 또는 병목 현상 없이 잘 작동하는지 확인해야 했습니다. 고려해야 할 중요한 요소 중 하나는 건물 내 랙과 관련된 워크플로우를 개선하는 방법이었습니다.
랙과 관련된 워크플로우에는 세 가지 유형이 있지만, 이 사례 연구에서는 "입고"에 중점을 두고 있습니다. 이 워크플로우는 데이터 센터가 온라인으로 가동되고 랙이 해당 데이터 센터로 가져올 때 발생합니다.
워크플로우를 지원하는 팀은 매우 숙련된 자원들입니다. 따라서 이러한 워크플로우와 작업을 단계별로 계획하는 방법은 최적화되어야 합니다.
하지만, 메타는 HDC 디자인에서 운영 제약 사항을 시각화하고 시뮬레이션하는 데에 좋은 프로세스를 가지고 있지 않아서, 병목 현상과 처리 능력을 이해할 수 없었습니다.
해결책
새 HDC의 요구 사항을 더 잘 이해하기 위해, 메타는 모델링 접근 방식을 도입하기로 결정했습니다. 첫 번째 단계는 에이전트 기반 모델의 3D 시각화를 생성하여 랙 플로우 데이터 유효성 검사를 용이하게하고 팀의 워크플로우와 자원 학습을 가속화하는 것이었습니다. 따라서 그들은 그 일이 일어날 공간 내에서 전체 워크플로우를 볼 수 있었습니다. 이 모든 것은 HDC 건설 이전에 미리 수행되었습니다.
3D 시각화는 이산사건 시뮬레이션모델 설정에 필요한 매개변수 및 최적화를 위한 인사이트를 제공했습니다.
이산사건 시뮬레이션을 위해 다음과 같은 몇 가지 가정이 필요했습니다.
- HDC는 AnyLogic 플랫폼에서 여러 매개변수를 가진 객체이며, 다양한 HDC 유형의 처리량을 예측할 수 있습니다.
- 모델링하는 프로세스는 여러 팀 (수령 및 배치 - 팀 1, 가동 - 팀 2, 케이블링 - 팀 3, 프로비저닝 - 자동화) 사이에 분산된 여러 단계로 이루어진 랙 수령입니다.
- 시뮬레이션 기간은 1주일이며, 처리량은 총량 대비 백분율로 측정됩니다.
- 각 팀의 리소스 수는 구성 가능하며 이용률은 60-80%로 설정됩니다.
- 근무 시간은 오전 8시에 시작하며 연장 근무가 허용됩니다.
- 팀 1의 프로세스는 트럭에서 내리기, 포장 해제 및 서류 작업, 도크 대기열, 데이터 홀 이동, 엘리베이터 용량, 1층 또는 2층 (50/50 확률)을 포함합니다.
- 팀 2 및 팀 3에 대해 정규 분포가 적용됩니다.
- 프로비저닝에는 스위치 및 서버 두 가지 단계가 있으며, 둘 다 80%로 설정됩니다 (즉, 20%의 시간이 다시 작업해야 함을 의미합니다).
AnyLogic는 다양한 기능 중 하나인 모델용 UI 개발 기능을 제공합니다. 이를 통해 각 사용자는 팀마다 인원 수를 변경하거나, 초과 근무를 추가하거나, 언로딩 시간을 변경하는 등의 매개변수를 조정하여 결과를 볼 수 있습니다. Meta는 이러한 UI를 입고 모델용으로 만들었습니다.
결과
이산사건 시뮬레이션
Meta가 이산사건 시뮬레이션을 사용하여 일반 매개변수로 모델을 실행했습니다. 목표 처리량은 100%이었지만, 평균 기간이 3.7일이고 처리량이 40%에 불과했습니다. 케이블링 및 랙 내 위치 지정 과정에서 병목 현상이 확인되었습니다.
실험 최적화
이러한 문제를 해결하기 위해 각 매개변수의 최적값을 식별하는 것이 필요했습니다. 이를 위해 최대 처리량을 극대화하는 목적으로 최적화 실험을 수행했습니다.
아래 표에서 최적값을 식별하기 위해 최적화 실험이 수행되었습니다. 이를 바탕으로 팀은 모델을 다시 실행하여 2.2일 평균 기간으로 92%의 처리량을 달성할 수 있었습니다. 이는 초기 모델보다 1.5일 감소한 것입니다. 결과적으로, 주당 더 많은 랙을 수령할 수 있었습니다.
또한 병목 현상이 없었으며 100%가 아닌 이유는 시간이 일주일로 설정되어 있고, 프로비저닝(자동화된 과정)이 이 시간 제약 내에서 완료되지 못했기 때문입니다.
그러나 최적화된 모델을 갖는 것만으로는 전체적인 이야기를 전달하는 데에는 한계가 있습니다. 왜냐하면 실제 세계에서는 불확실성 요소가 존재하기 때문입니다.
몬테카를로 실험
Meta는 이를 이해하고, 모델의 출력물을 생성하기 위해 입력값의 무작위 샘플을 사용하는 확률적 방법인 Monte Carlo 실험을 사용하기로 결정했습니다.
Monte Carlo 실험을 여러 번 실행하면 출력값의 분포를 얻을 수 있으며, 하나의 시나리오가 아닌 여러 시나리오를 얻을 수 있습니다.
Meta는 모델을 10,000번 실행하고 결과를 아래 그림에서 확인할 수 있습니다. X축은 throughput이고, Y축은 해당 throughput의 확률입니다. 차트는 throughput이 90%인 경우 40%의 시간 동안 발생한다는 것을 보여줍니다. 또한, 30%의 throughput이 발생할 가능성도 20%로 표시됩니다. 이러한 결과는 90%의 throughput이 보장되는 것은 아니지만, 이 모델의 가장 가능성이 높은 결과입니다.
다음 단계
- 모델에 랙 재분배 및 업데이트 과정을 포함시키세요.
- 전원 공급, 케이블링 및 프로비저닝 단계에 더 많은 세부 정보를 추가하세요.
- 모델에 민감도 분석을 추가하여 매개변수에 대한 최적 값을 이해하세요.
이러한 단계를 모델에 추가한 후, 팀은 시뮬레이션 시간을 1년으로 늘리고 결과를 분석할 수 있습니다.
이 사례 연구는 Meta의 Peter Lopez, Mohammad Shariatmadari, Marcin Starzyk 및 Lakhwinder Singh이(가) 2022 AnyLogic 컨퍼런스에서 발표했습니다.
PDF 형태의 슬라이드가 제공됩니다.