2만원대로 만드는 SSD 캐시 시스템 구축 테스트중...
2013.02.19 10:14
mSATA 포트가 달린 H77 또는 Z77 칩셋 메인보드 사용자라면 그것이 어려운 일은 아닙니다만, 이러한 칩셋을 전혀 쓰지 않는 PC 사용자는 최소한 5만원대의 SSD 캐시용 모델을 따로 사야 합니다. 저도 그런 것을 조금 써봤지만, 다중 운영체제에서의 오작동 문제로 포기했습니다.
그러다 '버릴 거 생각하고 초 저가형 SSD 하나 넣어 장난 좀 쳐보자'는 생각이 들어 어제 8GB Half Slim 모델을 사다 엽기(?) 하이브리드 SSD 환경을 꾸몄습니다.
쓰이는 SSD 캐싱 툴은 Romex FancyCache라는 것입니다. 이것은 원래 '램 캐시' 툴입니다. 보통 남는 메모리 영역을 램 디스크로 만들어 임시 디렉토리로 쓰는데, 그것도 해당 임시 디렉토리를 쓰는 어플리케이션에서만 가치가 있는 문제가 있습니다. 그래서 아예 그 공간을 하드디스크의 캐시로 쓰자고 한 것이 FancyCache입니다. 메모리를 하이브리드 HDD의 캐시 메모리로 쓰는 개념이지만, 2차 캐시로 SSD를 지정할 수 있어 SSD 캐시용으로도 쓸 수 있습니다. 이 툴은 현재 베타 버전으로, 180일 시험판을 무료로 다운로드할 수 있습니다. 해외쪽에서는 나름대로 이름이 나오고 있는데, 국내에서는 이상하리만큼 정보가 적은 툴이기도 합니다.
일단 간이 테스트이기에 상세 설정을 하지 않고 대충 캐시만 지정해 돌려본 것입니다.
- CPU: Intel Core i7 860@3.4GHz
- Motherboard: ASUS P7H55
- Memory: Samsung 12GB PC3-10600
- HDD(테스트에 쓰는 것만): Samsung HD502HJ, Samsung 830 SSD 128GB
- Cache SSD: Biwon 8GB Half-Slim
- OS: Windows 7 Professional x64 Japanese
■ 하드디스크만 썼을 경우
대충 이런 결과가 나옵니다. 구형 저용량 하드디스크가 다 그렇죠.^^
■ 삼성 830 SSD의 성능
시리얼 ATA II 모드일 때 성능으로는 그냥 평범한 수준입니다.
■ 128MB 메모리 캐시 + 7GB SSD 캐시 모드
기록 성능의 향상은 거의 없으나(이는 설정의 문제로 보입니다.), 순차 및 512K 랜덤 액세스의 성능이 획기적으로 좋아집니다. 물론 이것이 당장 체감 성능 향상으로 이어진다는 법은 없답니다.
■ 128MB 메모리 캐시 모드
여기에서 의문이 들 법 한데, 성능 개선이 128MB 메모리 캐시가 원인이 아닐까 하는 것입니다. SSD 2차 캐시를 빼고 메모리 캐시만 남겼을 때 성능은 이렇습니다.즉, 저용량 메모리 캐시만으로는 성능에 큰 도움이 되지 않습니다.
■ 1GB 메모리 캐시 모드
메모리 캐시 모드에서 성능 향상을 느끼려면 적어도 1GB 정도는 캐시를 잡아야 합니다. 그렇게 되면 랜덤 액세스 성능은 확연히 나아집니다. 물론 순수한 SSD만큼은 아니지만, 그래도 성능 향상이 눈에 보일 정도입니다.
■ 1GB 메모리 캐시 + 7GB SSD 캐시 모드
거의 '괴물'처럼 성능이 올라갑니다. 메모리가 8GB 또는 그 이상인 환경이라면 충분히 해볼만한 조합인 셈입니다.
다만, 아직 설정 문제인지 처음에 부팅이 완료되는 시간이 두 배 이상 걸립니다. 이는 캐시에 일단 자주 쓰는 데이터를 한번 새로 기록하는 것 때문으로 추정됩니다. 이는 설정의 문제로 보이기에 시간을 두고 테스트는 필요할 듯 합니다.
코멘트 15
-
꼬소
02.19 10:38
-
iris
02.19 13:11
Write의 경우 설정 문제인지 근본적인 한계인지는 더 테스트가 필요합니다. 해외 포럼쪽 글을 볼 때 후자에 더 가깝지 않을까 합니다만.
-
꼬소
02.19 13:29
근본적인 문제로 생각 됩니다.
cache의 확장이지 하드웨어의 성능 향상이 아니기 때문이죠..
그리고 read의 경우 cache hit로 대체 가능하지만, write는 메모리에서 디스크 블락(block)에 저장되기 전까지는 의미가 없거든요.
-
purity
02.19 13:39
라이트 스루냐 라이트 백이냐의 차이인 것으로 보입니다. 아무래도 안정성을 위해서 라이트시에는 동기화, 즉 라이트 스루로 처리하는 것 같습니다. 해당 캐시 툴의 설정란에 마치 SRT의 성능 모드 선택과 같이 추상화된 구문으로 라이트 캐시 정책과 관련된 항목이 있을 듯도 싶고요.
검색해 보니 설정이 있군요. http://www.romexsoftware.com/en-us/fancy-cache/help.html 에 보시면 Defer Write란 명칭으로 라이트 백 캐시로 전환하는 내용이 있습니다.
해당 링크에서는 설명하고 있지 않지만(잘 읽어보니 설명하고 있네요;;;) 성능 향상과 관련하여 장치관리자에서 캐시 대상 HDD의 캐시 버퍼 플러시 설정 On. Off에 따른 차이도 점검해 보시면 좋을 것 같습니다. 어차피 캐시 툴이 3차 캐시로 작동하면서 2차 캐시로 작동하는 윈도우 버퍼 플러시가 무용지물이 되버리게 되기 때문에(지연된 데이터가 기록 완료 및 플러시 되기 전에 꺼지면 날라가니~) 무시하고 꺼버리는 것이 조금더 좋은 효과가 날 듯도 싶거든요. -
꼬소
02.19 14:00
그래도 결국 메모리 상에 남는 cache이기 때문에 SSD가 아닌 일반 하드디스크라면 성능에 큰 차이는 없을 것 같습니다.
SSD야 기본적인 I/O 속도가 높기 때문에 메모리에서 어느정도 받아 먹을 순 있지만, 하드디스크의 경우 메모리 속도와
비교하면 굼벵이와 같으니 체감성능이 확 떨어 질 겁니다.
그리고 절차적으로 설명 했을 때 cache 메모리에 다 차 버리면 FS에서 flush를 하여 하드디스크에 sync를 하게 될 터인데..
sync 시 속도는 하드웨어 I/O 속도에 따라 결정되는 부분이라 cache의 속도가 아무리 빠르다고 한들 느린 하드디스크 때문에
속도는 한없이 늘어지게 될 겁니다..
-
purity
02.19 14:17
속도야 당연히 실제의 SSD와 비교될 수는 없겠지요. 말씀처럼 특징상 아무리 묘수를 써도 결국 제한된 용량 안에서 지지고 볶는 것이니까요 ㅎㅎ;; 그나마 약간의 성능 향상을 이루는 방법 정도 뭐 이런 것일 겁니다. 대용량의 파일을 다루지 않는 상태로 소규모의 파일 억세스만을 반복적으로 하는 이상적인 상태 정도의 제한적인 상황에서 효율이 발휘될 것 같아요. SSD의 기준을 참조삼아 짐작해보면... SSD 수명 측정에 기준하는 1일 쓰기량을 10GB(근래의 TLC 840 벤치 사례)~50GB(과거 MTRON SLC 사례)로 보고 있으니 Flush & Sync 시의 오버헤드를 고려한다해도 얼마간의 성능 향상은 유추될 듯 해요. 다만... 개인적으로는 노트북이라던가 UPS를 사용한다던가 등의 예비전략이 있지 않은 상태에서 휘발성 메모리 캐시에 의존하는 것은 그다지 권장할 만한 것은 아닌 듯 합니다.
*아... 그리고 이건 혹시 오해하시는 듯 해서 적는 추가문입니다만, 저는 저 소프트웨어 제작사와 무관하며 써본적도 없습니다. SRT의 경우와 캐시 라이트 정책을 연상해서 떠올려본 생각이었고 제작사의 해당 안내 페이지를 링크했을 뿐이에요. 마치 제가 성능 향상이 있다고 주장하고 꼬소님이 그를 지적하시는 듯 한 모양새가 되어버려서 약간 당황스러운 것이 사실입니다. 혹 제가 오해살 만한 행동을 했던 것이라면 글 솜씨의 일천함 때문이니 이를 꾸짖어 주시고 부디 너그럽게 양해하여 주시기를 부탁드립니다. 감사합니다.
-
꼬소
02.19 15:01
아뇨 암것도 없는데욤.. ㅎㅎㅎ
그리고 맨날 데이터를 저장소에 떨어뜨린다고 해서 sink를 쓰다보니 입에 붙어 버렸네요;;
sync 인데..
역시 머리도 용불용설이에요;;
후다닥 수정 ㅋㅋ
-
purity
02.19 15:42
그렇다면 다행이고요 ㅎㅎ;;
-
강주병
02.19 12:16
이것과 Readyboost가 비슷한 경우 아닌가요? XP시절에 비슷한 다른 프로그램으로 사용한 적이 있지만 win7는 그냥 readyboost 설정하고 그냥 사용중인데...
-
iris
02.19 13:10
비슷하면서도 다릅니다. 일단 ReadyBoost는 'USB 메모리'라는 제한이 붙고, 주로 4K 랜덤 액세스 성능을 미미하게나마 개선하는 데 초점을 맞춥니다. SSD 캐싱은 그 보다는 진화한 것이며, 인텔에서는 SRT로 부릅니다. 이는 훨씬 더 많은 용량, 더 성능이 뛰어난 저장장치를 쓰면서 전반적인 읽기/기록 성능 전체를 높이는 것에 초점이 맞춰져 있습니다.
-
Lock3rz
02.19 12:17
좋은팁 감사합니다. 램 디스크밖에 몰라서, Window Temp영역 및 크롬 캐시만 램디스크로 잡고있었는데 FancyCache라는 것이 있었군요~ -
yohan666
02.19 13:07
가격대비 성능비가 멋지네요... 데탑 시스템에서 이렇게 구축한다면 멋질것 같습니다.
-
꼬소
02.19 14:04
근데 NAS는 언제 써 주시는건가요??
완전 기대하고 있는데....
-
iris
02.19 14:39
때가 되면 될겁니다.^^(지금 위의 저 글은 회사 업무와 살짝 관계가 있는 내용이라 미리 살짝 데이터를 적어본겁니다.)
-
이비토
02.19 21:01
오 ... 이런 가성비 좋은 방법이 존재했다니 ... 능력자분이시네요 ;; ㄷㄷ
하드디스크의 버퍼의 부족한 부분을 캐쉬로 해결 보는것 같은데, read일 경우만 확 빨라지네요..
결국 메모리 내에서 읽는 cache hit이니 빨라 질 수 밖엔 없지만 특이한 분야에서만 그 체감적인 부분을 느낄 수 있을것 같네요..
아무래도 같은 내용을 반복적으로 읽어서 서비스 하는 어플리케이션이나
큰 이미지를 올려 놓고 동작하는 게임에선 체감성능이 확 올라 갈 듯 합니다.