플래터가 물리적으로 움직이는 기존의 디스크 보다 적은 전력, 적은 소음, 빠른 성능을 장점으로 내세우며 많은 이슈가 되고 있는 SSD에 대해서 간단한 성능 테스트를 하였습니다.
CPU 및 메모리는 날이 갈수록 고 클럭으로 발전하지만, 디스크는 15Krpm이 나온지 오래 되었지만 아직도 비슷한 스펙의 디스크를 사용하고 있습니다.
아직까지는 SSD의 GB당 가격이 비싸기에 대중적으로 사용하고 있지는 않지만, 조만간 대중적으로 사용할 제품이라고 생각되며, DB시스템 환경에서 하드웨어 리소스 중 가장 많이 문제가 되는 것 중에 하나인 IO 문제를 해결할 수 있는 가장 좋은 대안이라고 생각됩니다.
다행히 예전부터 계속 써보고 싶던 SSD를 거북엄마님께서 1달간 대여해주셔서 관련 테스트를 해볼 수 있게 되었습니다.
(감사합니다. 잘 써서 무사히 돌려 보내겠습니다.)
서버에서 사용하는 컨트롤러가 아닌 일반 PC의 보드 내장 컨트롤러이기에 테스트 결과 중 일부는 잘못될 수도 있습니다.
아래는 테스트한 SSD 생산 업체에서 제공하는 스펙입니다.
랜덤 IOPS가 16000정도에 달하며, 응답시간은 0.1msec라고 합니다.
보통의 15K 디스크가 300정도의 IOPS를 보여주는 것에 비교하면 대략 50배 이상 성능이 좋은 것을 볼 수 있습니다.
또한 응답시간이 1msec도 안 걸리 것도 SSD만의 장점이라고 볼 수 있습니다.
그럼 과연 어느 정도의 속도를 보여줄 지 Microsoft에서 제공하는 SQLIO라는 IO성능 도구로 테스트 하였습니다.
테스트는 총 4가지로 하였습니다.
- 랜덤 8KB 읽기 (thread 2 / outstanding 4)
- 랜덤 8KB 쓰기 (thread 2 / outstanding 4)
- 순차 1024KB 읽기 (thread 2 / outstanding 4)
- 순차 1024KB 쓰기 (thread 2 / outstanding 4)
테스트 결과는,
순차 읽기, 쓰기 작업은 100 IOPS 즉 초당 전송속도가 100MB정도입니다.
위 스펙에서 보여지고 있는 수치와 동일한 것을 알 수 있습니다.
하지만 중요한 건 랜덤IO 작업입니다. OLTP환경에서는 대부분의 IO가 랜덤으로 동작하게 됩니다.
물론 Write Cache를 지원하는 컨트롤러를 사용하게 되면 어느 정도 랜덤 쓰기 작업을 순차 작업으로도 변경가능하긴 합니다.
아무튼 이러한 외부 요인을 생각하지 않는다면 DB시스템에서 사용하기에 조금 무리가 있는 결과를 보여주었습니다.
랜덤 읽기의 경우 대략 6800 IOPS를 보여주고 있습니다. 스펙보다는 적지만 일반 디스크 수십 장으로 구성하여야지만 나타낼 수 있는 성능입니다.
하지만 랜덤 쓰기 IOPS의 경우 57을 보여주고 있습니다. 테스트한 제품이 SLC기반의 SSD이기에 쓰기 작업도 좋은 성능을 보여줄 것이라고 판단하였지만 예상과는 전혀 다른 결과를 보여주었습니다.
서버에서 사용하는 컨트롤러를 사용하였다면 다른 결과를 보여줄 수 있겠지만, 아래의 데이터만 본다면
일반적인 OLTP환경에서는 약간 쓰기가 부담스러워 보입니다.
EMC, 최근에는 HP에서도 SAN제품에 SSD를 장착 할 수 있는 제품을 발표하였고, 점점 SSD가격도 내려가고 있습니다.
몇 년 후면 지금 보다 더욱 빠른 SSD를 사용하는 DB가 많아질 것 입니다.
그런 날이 빨리 오기를 기대해 봅니다.
sqler.pe.kr // sqlleader.com
hyoksong.tistory.com