1. 메모리 내에서 계산할 수 없다.
1. 탐색 속도(메모리 vs 디스크)
- 메모리 내에서 계산할 수 없기 때문에 디스크에 두고 특정 데이터를 검색해야 한다. 하지만, 디스트는 느리므로 I/O에 시간이 걸린다.
※ 메모리 내의 특정 번지에 있는 데이터를 찾는 데이터 탐색 속도 vs 디스크의 특정 원반 내에 있는 데이터를 찾는 속도 :
메모리는 디스크보다 약 10의 5승배 이상 빠르다.
*디스크의 탐색 속도가 느린 이유 :
물리적인 동작인 원반의 회전을 통해 데이터를 찾기 때문에 수 밀리 초가 걸리는 것이다. 반면 메모리는 물리적인 동작 없이 실제 데이터 탐색의 오버헤드가 거의 없어 1회 탐색 시 마이크로초면 충분하다. 더욱이, 탐색에 사용되는 것이 CPU의 캐시에 올리기 쉬운 알고리즘이나 데이터 구조일 경우 메모리 내용이 CPU 캐시에 올라가 나노초 단위로도 처리가 가능하다.
2. 전송속도(메모리 vs 디스크)
데이터를 디스트에서 메모리로 보내거나 메모리에서 CPU로 보내는 전송속도와 관련하여
- 메모리와 CPU는 상당히 빠른 버스로 연결되어 있어 7.5GB/초 정도 나온다.
-반면, 디스크는 58MB/초 정도밖에 나오지 않음.
-> 결론 : 애플리케이션을 만들 때 메모리와 디스크의 속도차를 생각해서 만들어야 한다. 확장성 측면에서 생각할 때 본질적인 부분이기 때문이다.
'개발관련 도서 > 대규모 서비스를 지탱하는 기술' 카테고리의 다른 글
3-1. OS 캐시 (0) | 2021.05.03 |
---|---|
3장. 대규모 데이터를 다루기 위한 기초지식(#대규모 서비스를 지탱하는 기술) (0) | 2021.05.03 |
2-1.규모조정, 확장성(#대규모 서비스를 지탱하는 기술) (0) | 2021.05.02 |
1. 대규모 서비스에서 발생가능한 문제(#대규모 서비스를 지탱하는 기술) (0) | 2021.05.01 |
웹 개발자를 위한 대규모 서비스를 지탱하는 기술 (0) | 2021.05.01 |