EBS와 EFS가 마이크로초 수준의 지연 시간을 달성하는 방법

EBS와 EFS가 마이크로초 수준의 지연 시간을 달성하는 방법

EBS 볼륨에 연결된 EC2 인스턴스에서 읽기/쓰기 iowait를 모니터링한 적이 있는데, iowait 열 출력은 iostats200~500us에 불과합니다. EBS가 실제로 네트워크 볼륨이고 로컬 네트워크 지연 시간이 ~10ms여야 한다고 생각하기 때문입니다. 수준, EBS가 어떻게 1ms 미만의 지연 시간을 달성합니까?

EFS에 대해서도 동일한 질문이 있습니다. EFS를 테스트하지는 않았지만 성능 페이지에서 읽기 대기 시간이 250us만큼 낮을 수 있음을 보여줍니다.

https://docs.aws.amazon.com/efs/latest/ug/performance.html#performance-overview

답변1

당겨모든 프로그래머가 알아야 할 지연 시간 수치대략적인 대기 시간 근사치를 수행할 때. 정확하기 때문이 아니라 규모의 순서를 전달하기 때문입니다.

수십 마이크로초의 대기 시간을 지원하는 이더넷 스위치가 존재합니다. 동일한(거대한) 데이터 센터에 있는 스토리지 노드에 도달하려면 몇 개를 건너십시오. 이러한 라우터 사이의 전송 시간을 몇 마이크로초 더 추가합니다.

스토리지 스택과 관련하여 밀리초 미만의 총계는 첫 번째 계층에서 회전하는 녹을 배제합니다. 하드 드라이브 어레이는 최상의 상황에서도 검색하는 데 수 밀리초가 걸립니다. 분명히 솔리드 스테이트 스토리지가 사용 중이며 I/O 작업에 수십 마이크로초가 걸릴 수도 있습니다.

읽기에 250마이크로초를 가정하면 스토리지 스택의 다양한 계층을 탐색하는 데 많은 시간 예산이 남지 않습니다. IP 패킷을 블록 작업으로 변환하고 일부 운영 체제에서 이를 수행하도록 하고 클라이언트 OS에서 이를 수행하도록 합니다. 아마도 하이퍼바이저, OS, 드라이버 및 하드웨어를 최적화하려면 상당한 양의 엔지니어링 작업이 필요할 것입니다.

참고하세요EFS 성능표놀라운 낮은 대기 시간에 대해 "낮음"이라는 한정자가 있습니다. 이는 서비스 수준 계약이 아닙니다. 실제로는 그 일이 빨리 끝나고 있지만.

또한 다중 영역 스토리지에서는 쓰기가 1밀리초 더 느려질 수 있습니다. 이는 여러 건물에 데이터를 저장하는 데 따른 내구성 비용입니다. 단지10km 떨어진 광섬유의 빛의 속도아마도 전파 지연만 50us 정도 추가될 것입니다. 해당 경로에 있는 추가 스위치의 수를 알 수 없습니다. 한 영역보다 더 나은 내구성을 얻으려면 여러 영역에서 쓰기를 승인해야 합니다. 여전히 상당히 빠르지만, 동일한 랙의 모든 플래시 어레이가 빠른 것은 아닙니다.

면책 조항: 이 모든 것은 공유되지 않는 독점 블랙박스입니다. 그러나 같은 도시의 프라이빗 네트워킹은 생각보다 10배 이상 빠른 대기 시간을 달성할 수 있다는 점을 이해하는 것이 좋습니다. 엔지니어링이 충분합니다.

관련 정보