Computer >> 컴퓨터 >  >> 네트워킹 >> 인터넷

이 숫자는 모든 컴퓨터 엔지니어가 알아야 하는 숫자입니다.

2010년 Google의 Jeff Dean은 Stanford에서 멋진 강연을 하여 그를 꽤 유명하게 만들었습니다. 그 책에서 그는 컴퓨팅 시스템과 관련된 몇 가지 숫자에 대해 논의했습니다. 그런 다음 Peter Norvig는 인터넷에 처음으로 이 수치를 게시했습니다.

시간이 흐르고 숫자가 바뀌었습니다. 다음은 시간의 함수로 몇 년에 걸쳐 얼마나 많이 변했는지 알려주는 매우 훌륭한 대화형 웹 UI입니다.

이 기사는 Jeff Dean의 추정 데이터를 편집한 것일 뿐만 아니라 다양한 출처의 모든 수치를 모아놓은 것입니다. 이것은 시스템 디자이너와 아키텍트로서 당신에게 도움이 될 것입니다. 설계하는 동안 이 수치를 사용하여 시스템에 필요한 리소스의 양을 추정할 수 있습니다.

2019년 대기 시간 데이터의 대략적인 추정:

  1. L1 캐시 참조:1나노초.
  2. L2 캐시 참조:4나노초.
  3. 뮤텍스 잠금/해제:17나노초.
  4. 메인 메모리/RAM 참조:100나노초.
  5. Zippy(현재 Snappy라고 함)로 1KB 압축:2000나노초 또는 2마이크로초
  6. CPU 분기가 잘못 예측됨:3나노초.
  7. 솔리드 스테이트 드라이브(SSD) 랜덤 읽기:16마이크로초
  8. 디스크(하드 드라이브/마그네틱 드라이브) 탐색:3밀리초.
  9. 메인 메모리에서 순차적으로 1,000,000바이트 읽기:4마이크로초
  10. SSD에서 순차적으로 1,000,000바이트 읽기:62마이크로초
  11. 디스크에서 순차적으로 1,000,000바이트 읽기:947마이크로초
  12. 동일한 데이터 센터에서 왕복 네트워크 요청:500마이크로초.
  13. 상품 네트워크를 통해 2000바이트 전송:62나노초.

페이로드가 TCP를 통해 이동하는 데 걸린 시간:

다음은 데이터 손실이 없다고 가정할 때 전 세계의 일반적인 셀 네트워크에서 다양한 데이터 페이로드를 전송하는 데 필요한 시간입니다.

RTT — 왕복 시간 — 데이터 패킷(데이터 바이트 묶음)이 네트워크를 통해 발신자에서 수신자로, 수신자에서 발신자로 이동하는 데 걸린 총 시간입니다. 줄여서 핑타임이라고 합니다.

  1. 1바이트에서 13,000바이트(약 13KB) 데이터 전송에는 1 왕복 또는 1 RTT가 걸립니다. 소요 시간 — 미국:150밀리초, 인도:1200밀리초, 브라질:600밀리초
  2. 13,001바이트 — 39,000바이트(13KB ~ 39KB)에는 2개의 RTT가 필요합니다. 소요 시간 — 미국:300밀리초, 인도:2400밀리초, 브라질:1200밀리초
  3. 39,001바이트 — 91,000바이트(39KB ~ 91KB)에는 3개의 RTT가 필요합니다. 소요 시간 - 미국:450밀리초, 인도:3600밀리초, 브라질:1800밀리초
  4. 91,001바이트 — 195,000바이트(91KB ~ 195KB)에는 4개의 RTT가 필요합니다. 소요 시간 — 미국:600밀리초, 인도:4800밀리초, 브라질:2400밀리초

따라서 응답 크기가 클수록 더 많은 바이트, 더 긴 왕복 이동, 더 많은 API 지연 시간, 궁극적으로 덜 사용자 친화적인 앱을 의미합니다.

이 게시물은 새 번호 또는 업데이트된 번호가 발견되면 업데이트됩니다. 새로운 번호를 알고 계시다면 알려주세요.

이 기사는 원래 작가의 매체 담벼락에 게시되었습니다. 마음에 드시면 박수를 쳐주세요.

참조:

  1. https://colin-scott.github.io/blog/2012/12/24/latency-trends/
  2. https://blog.std.in/2015/05/23/http-response-sizes-and-tcp/
  3. https://medium.com/@kousiknath/must-know-numbers-for-every-computer-engineer-6338a12c292c