1. 하드웨어 성능
흔히 컴퓨팅 파워라고 하는 것은 하드웨어의 어떤 부분에서 어떤 성능이 나오느냐를 평가하는 각 부분의 지표가 있지만 데이터 관점에서의 성능은 어떤 속도로 데이터를 읽어드리고, 처리하고 기록하느냐의 관점입니다.즉, 조회 성능, 정렬 및 그룹화 성능, 기록성능 등이 있겠지요. 뭐 트랜잭션 처리 성능을 평가하기도 합니다.
컴퓨터 구성품 중 속도에 영향을 미치는 항목
그리고 이러한 성능들의 근원은 cpu, disk, memory, bus, network의 5가지 장비의 성능에 기인합니다. 이러한 성능들은 각각의 단위를 갖고 있고, 그 단위 중 일부는 주파수로 공개되고 있어 용량으로 환산할 수 없기에 공개된 기록을 기반으로 각각의 속도에 대해 알아보겠습니다.
데이터 전송 속도 비교
가) 하드웨어의 현재 공개된 최고 쓰기 속도
장치 | 초당 읽기/쓰기 속도 |
CPU | 2344.8GB/s |
SSD | 1.25GB/s |
MEMORY(MCDRAM) | 460GB/s |
BUS | 460GB/s |
NETWORK | 12GB/s |
위 표에서 가장 주요하게 봐야 할 점은 SSD 즉 데이터 저장소의 속도가 가장 늦다는 것 입니다. (보편적으로는 500MB/s밖에 나오지 않습니다. ) 가장 속도가 늦는 장치가 데이터를 저장하고 있으니, 보편적인 데이터의 조회 속도는 저장소의 최저 속도가 기준이 될 수밖에 없습니다. 데이터가 메모리에 적재되지 않는 이상 조회도 연산도 할 수 없습니다.
과거의 RDBMS에서는 이 문제를 해결하고자 메모리를 비대화 시켜 자주 쓰는 데이터는 메모리에 올려놓고, 찾아서 쓰는 방식을 선택했습니다. (HDD 120mb/s가 최고이던 시절) 그리고 스토리지 전략을 통해서 한 번에 여러 노드에서 데이터를 읽는 프로세스를 생각해냈습니다. 이 전략은 지금도 유효합니다.
2. 스토리지 전략
앞서 설명했던 스토리지 전략의 하나인 RAID입니다. 여러 개의 디스크를 묶어 하나의 디스크처럼 사용할 수 있게 하는 기술이며, 파일 하나를 각각의 디스크에 여러 조각으로 분산시켜 각각의 디스크에서 병렬로 읽게 만들어 읽기 성능을 비약적으로 향상시키는 장치입니다.
각각의 DISK에서는 500MB/s의 작은 속도밖에 내지 못하지만, 저장 파일을 각 노드에 분산하고, 병렬로 읽고, 결합하여 디스크 하나에서 읽는 속도보다 수배의 속도가 나옵니다.
정확한 원리를 바탕으로 구성된 스토리지 클러스터는 데이터 접근 성능을 크게 향상 시켜 빅데이터의 원활한 처리의 밑거름이 될 것입니다.
정확한 원리를 바탕으로 구성된 스토리지 클러스터는 데이터 접근 성능을 크게 향상 시켜 빅데이터의 원활한 처리의 밑거름이 될 것입니다.
3. 왜 스토리지 전략이 중요한가?
물론 메모리에 주요 데이터를 올려서 처리하는 메모리 기반 프로세스는 언제고 필요한 전략입니다. 디스크는 메모리를 따라잡을 수 없으니까요. 하지만 스토리지 전략이 가장 기초가 돼야 하는 이유는 메모리를 아무리 늘렸다 한들 빅데이터 전체를 커버 할 수는 없기 때문입니다.
예를 들자면 이런 겁니다. 가령 센서를 통해서 데이터가 주기적으로 발생한다고 칩시다.
장치 ID와 특정 값을 발생시키는 태그유형 예
이 센서 데이터가 1초마다 발생 시 일일 발생 건수는 86,400건 CSV 파일로 치면 약 2MB 매우 작은 양이지만, 연간으로 치면 750MB. 단일 SSD에서 1초에 조회할 수 있는 용량을 넘어버립니다. 그리고 이런 센서는 공장 하나에 수백~ 수천 개가 있기 때문에 연간 누적 데이터양은 100GB를 초월하게 되지요. 저희는 1000개가 넘어서 약 12Tera의 데이터가 쌓입니다.
100개만 있다고 해도 71GB의 용량을 갖게 됩니다. 이 데이터에 대한 연간 집계를 내려면 데이터를 메모리에 올리는 것도 단일 SSD에서는 142초가 걸리게 되며, 메모리 용량이 충분치 않을 경우 MEMORY와 DISK의 SWAP이 일어나면서 속도는 더 지연되게 됩니다.
하지만 레이드를 통한 분산저장이 되어있을 경우 위 그림과 같이 4GB를 초당 로드한다면 17초로 8.2배의 로드 속도 향상이 발생합니다. SWAP은 동일하게 일어나더라도 읽고 쓰는 속도가 커버할 수 있는 크기가 되죠. 그리고 속도는 더욱 향상될 수 있습니다.
그리고 이 구성을 클러스터 형태로 더 크게 구성할 경우 소수점 이하의 시간 내에 로드가 가능해집니다.
최근 빅데이터 플랫폼 테스트베드의 기준이 되어가고 있는 아마존 AWS의 경우 이러한 처리들이 이미 되어있기에 실제 하드웨어를 구매하지 않고도 표준화 된 성능 테스트를 수행할 수 있기 때문입니다.
저장만 하는 관점에서는 전혀 필요 없지만, 분석이 필요한 시점에는 가장 필요한 프로세스가 됩니다.
그리고 이 구성을 클러스터 형태로 더 크게 구성할 경우 소수점 이하의 시간 내에 로드가 가능해집니다.
최근 빅데이터 플랫폼 테스트베드의 기준이 되어가고 있는 아마존 AWS의 경우 이러한 처리들이 이미 되어있기에 실제 하드웨어를 구매하지 않고도 표준화 된 성능 테스트를 수행할 수 있기 때문입니다.
저장만 하는 관점에서는 전혀 필요 없지만, 분석이 필요한 시점에는 가장 필요한 프로세스가 됩니다.
이상 스토리지 전략은 이 정도로 마치겠습니다.
읽어주셔서 감사합니다.
빅데이터 개념잡기 '빅알자'는 여러 페이지로 이루어질 것 입니다.