일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- botw
- 자 이제 시작이야
- 셋업
- 글루민
- 제발흰박
- Project 1
- 일지 시작한 지 얼마나 됐다고
- multi-oom
- alarm clock
- 글리치
- 바빠지나?
- 핀토스 프로젝트 2
- 끝
- 아직도 실험 중
- 황금 장미
- 핀토스 프로젝트 1
- PINTOS
- 마일섬
- 핀토스 프로젝트
- 가테
- 파란 장미
- 노가다
- 핀토스 프로젝트 4
- 핀토스 프로젝트 3
- 내일부터
- Today
- Total
거북이의 쉼터
#6 Power Management & Cooling 본문
Power와 Energy의 차이
단위 시간 당 Energy = Power
P = E/t
P = V*I이며 E = P*t이고 이 양에 따라 1달치 전기 요금을 부과
비슷해 보이지만 시스템에 적용되었을 때는 많이 달라지는 parameter
Power Density = power / area
파워 집적도가 높을수록 열이 많이 발생해 쿨링을 하기 위한 추가 비용이 들어가기 때문에 DC에서 고려해야할 요소이다.
이를 줄이기 위해서는 area를 높이거나 쿨링을 추가로 하거나
Area를 높이는 건 땅을 매입해야 하고
쿨링은 전기 비용을 고려하는 것 뿐만 아니라 그 전기 자체를 끌어올 수 있는지도 고려해야한다.
전력 대비 비효율의 원인
General Purpose Design
One size fit all solution은 없기에 workload에 맞춰서 특화시키지 않으면 어딘가에서는 비효율성이 생기게 된다.
꼭 나쁜거라고 하기에는 General Purpose로 만들면 통일시킬 수 있는 간편한 면이 있다.
Design for future
Common Case Faster와 궤를 같이 한다. 설계를 할 때, 적은 부분을 차지하는 연산에 최적화를 하는 설계를 한다고 해도 최적화의 효과가 명확히 나타나지 않는다. 현재 workload에서 많이 발생하지 않는 case에 대해 자원을 쓰는 것은 낭비
End-user experience
user-experience의 level이 언제나 가장 높도록 자원을 책정한다면 workload가 일정하지 않아 workload가 상대적으로 free할 때는 잉여 자원은 모두 낭비가 된다.
Design process structure
큰 서비스를 모듈화시켜 놓으면 개별의 부품은 유지보수가 더 쉬워지지만, 전체적인 그림으로 봤을 때는 작은 component간의 communication을 위한 overhead, 설계 자체를 위한 overhead가 생긴다. 너무 작은것도, 너무 큰 것도 문제가 된다.
제일 기본적으로는
active power / dynamic power -> 트랜지스터 내에 캐패시터를 charging or discharging 할 때 쓰이는 파워
Power Management
Workload에 따라 유동적으로 파워를 관리
일을 많이 할 때는 power를 많이 쓰고, 적게 할 때는 적게 쓰라는 것
monitoring 필요
ACPI
원격에서 명령으로 power configuration을 단계별로 할 수 있도록 한다.
L1 cache는 core와 실질적으로 하나이기 때문에 끌 때는 같이 꺼진다.
DVFS
frequency와 voltage는 같이 움직일 수 밖에 없다.
clock 신호를 빠르게 준다면 그만큼 capacitor에 전력을 많이 공급해 비트를 바꿔줘야 하고, 더 많은 전력이 소모되며 더 큰 voltage가 요구된다. 반대도 마찬가지
DDR3도 단계별로 component를 꺼서 power 소모를 조절한다.
DRAM에 DVFS를 넣는다면 어떨까?
효과는 있지만 적극적으로 활용하지 않는다.
안하는 이유를 하나를 대라면 computation에 비해 dynamic한 정도가 덜하기 때문이다.
DRAM의 cell은 주로 static한 bit를 들고 있는 것이 대부분이므로 frequency를 바꾼다고 해도 효과가 떨어진다.
저장장치가 포함된 유닛에서는 크게 효과를 보기 어려운 것이다. -> 아직은 안 써먹는다.
Hard Disk에도 같은 원리다. 단계별로 꺼서 전력 소모 감소
Flash에는? DVFS를 적용한다면? 극단적으로 전기가 공급되지 않아도 비트가 유지가 되기 때문에 큰 의미는 없다. 다만 SSD 자체에도 작은 연산 유닛이 있기 때문에 효과는 있긴 하다.
문제는 workload에 따라 energy 소모가 사람하고는 다르다는 것
일이 없어도 에너지 소모가 0으로 떨어지지 않고 workload가 바쁠 때의 50% 정도는 잡아먹는다. (not proportional)
때문에 CPU utilization이 2~30%에 주로 머무르는 데이터 센터의 특성상 전력이 많이 줄어들지는 않는다.
때문에 정말로 전력을 아끼려고 한다면 완전히 끄는 수밖에 없다 (leakage current 때문)
쿨링을 수냉 -> 공냉 이중으로 하는 이유
뜨거운 물을 찬 공기로 식히기는 정말 어려움에도 이렇게 하는 이유는?
공기와 물은 다른 것을 식힌다.
물은 열이 집중적으로 발생하는 프로세서(CPU)와 GPU에 파이프를 붙여서 수냉처리
그 외의 부품들(DRAM, SSD, 파워 서플라이)도 전기가 흐르는 이상 열이 나지만 모든 부품에 파이프를 붙이기엔 비효율적이므로 이 부품들은 공냉으로 식힌다.
어디까지 열을 빼줘야 하는가는 설계 상황에 따라 다르다.
에어컨으로 열교환
데이터센터의 역할은 고객이 원하는 computation을 수행하는 것
이상적으로는 공급한 전체 전기가 computation을 위해서 쓰여야 하겠지만 이러한 cooling 등에 들어가는 부수적인 문제 때문에 computation만을 위해 사용되지 않는다.
Total Energy = (Compuation + Cooling + Voltage Drop Loss...)
일반적으로 Total Energy / Computation 비는 1.6 ~ 1.8 정도. 정말 잘하면 1.1까지 떨군다.
PUE (Power Usage Effectiveness)
전력은 돈이 아무리 많아도 일정 한계가 있다.
때문에 효율적으로 쓰는 것이 중요
- conversion 할 때마다 loss가 생기므로 수를 줄이거나
- 가능한 V를 높인 상태에서 송전
- DC distribution? 직류가 애초에 더 효율적이다.
교류는 skin effect에 의해 전류가 전선의 가운데 부분을 이용하지 못하고 표면에서만 주로 흐르게 된다. 때문에 저항이 높아지는 효과를 가진다. 직류는 그런 것이 없다.
그럼에도 전체적으로 교류를 사용하는 이유는 변압이 용이하기 때문
맨 마지막으로 공급할 때와 맨 처음 생성할 때 전압이 다른 구조상 변압은 필연적이다.
교류에서는 감압 장치를 매우 간단하게 만들수 있는 반면, 직류로는 이것이 어렵다.
변압을 모두 마친 이후에는 직류로 공급하는 것이 현명할 것이다.
예전에는 칩 온도를 잡기 위해 cooling을 굉장히 강하게 했었는데 (~10도)
liquid와 온도 모니터링을 통해 최대한 cooling을 덜 해서 효율성을 높인다.
공기 흐름도 효율적으로 설계하거나 바깥 공기를 직접 사용하는 등 여러 가지 에너지 절약 방식이 있다.
(우리나라에서는 먼지 때문에 못 쓴다...)
immersion cooling -> 서버 전체를 비전도 액체에 두어 쿨링하는 방법
'코딩 삽질 > 데이터센터 필기' 카테고리의 다른 글
#8 Datacenter Management (0) | 2023.05.02 |
---|---|
#7 Availability & Reliability (0) | 2023.05.02 |
#5 Datacenter Networking (0) | 2023.05.02 |
#4 Large Scale Storage (0) | 2023.05.02 |
#3 Server 복습 및 추가 내용 (0) | 2023.05.02 |