클럭·대역폭·지연시간
하드웨어 성능표에는 GHz, GT/s, GB/s, ns가 함께 등장한다. 이 수치는 서로 바꿔 쓸 수 없다. 클럭은 상태가 변하는 기준 주기, 전송률은 초당 전달되는 전송 단위, 대역폭은 단위 시간에 옮길 수 있는 데이터량, 지연시간은 요청한 뒤 결과가 돌아오기까지 걸리는 시간이다.
CPU 클럭이 5GHz라는 말은 초당 50억 번의 기준 주기를 뜻하지만 한 주기에 명령 하나만 실행한다는 뜻은 아니다. 명령 종류, 실행 포트, 파이프라인, 캐시 적중률에 따라 주기당 처리량이 달라진다. 그래서 다른 마이크로아키텍처의 CPU를 클럭만으로 비교할 수 없다.
PCIe의 GT/s는 초당 전송 횟수다. 부호화와 Lane 수를 적용해야 GB/s로 바꿀 수 있다. DDR 메모리의 MT/s도 메모리 코어 클럭과 같은 숫자가 아니며, 버스 폭과 채널 수를 곱해 이론 대역폭을 계산한다.
대역폭과 지연시간은 다른 병목이다
대용량 파일 복사와 연속 스트리밍은 많은 데이터를 꾸준히 옮기므로 대역폭 영향을 크게 받는다. 작은 데이터에 연속 의존성이 있는 작업은 첫 응답이 돌아오는 시간, 즉 지연시간에 민감하다. NVMe SSD의 순차 읽기 속도가 SATA SSD보다 몇 배 높아도 일반 프로그램 실행 시간이 같은 비율로 줄지 않는 이유다.
대기열을 깊게 만들면 여러 요청을 겹쳐 총 처리량을 높일 수 있지만 요청 하나의 지연시간이 줄어드는 것은 아니다. 서버용 저장장치와 네트워크 수치에서 Queue Depth를 함께 기록하는 까닭이다.
단위를 읽는 습관
b는 bit,B는 byte다. 8bit가 1byte다.- SI 접두어 GB는 보통 10진수, GiB는 2진수다.
- 양방향 합계와 한 방향 대역폭을 구분한다.
- 원시 링크 속도와 프로토콜 payload 처리량을 구분한다.
- 평균 지연시간만 보지 말고 긴 꼬리 지연도 확인한다.
관련: PCI Express, SATA·SAS·NVMe