그럼 DB서버의 메모리가 충분하면 디스크종류는 큰 상관이 없나요?

최창현   
   조회 6517   추천 0    

날마다 새로운걸 배워가는 회원입니다.

 

아래의 질문글에서 SQL서버에서 쿼리시 알아서 버퍼캐쉬에 올라간다고 들었습니다.

 

그렇다면, DB의 주 사용데이터가 1기가 미만이고 서버의 물리적 메모리용량이 충분하다면 (ex : 16기가 or 32기가)

 

DB서버의 데이터를 저장하는 디스크는 SSD,SAS,SATA 어떤 것이던, RAID구성을 어떻게 하던 크게 차이가 없다는 뜻인가요?

(물론 약간의 차이는 있겠지만 일반적인 체감속도요..)

 

(위와같이 데이터양이 적은경우)단순히 DB서버에서 고가의 SAS와 RAID를 꾸미는건 데이터의 안전한 보관이 가장 큰 의미를 가지게 되는건가요?

 

이래저래 충격적입니다. 흑흑

 

짧은글 일수록 신중하게.
박문형 2011-09
실제로 데이터가 어디서 처리되는지 처리된 데이터가 어디로 저장되는지를 잘 따져 보셔야 할 것으로 보입니다.
보통 디비서버는 브렌드 제품만 사용합니다. 이유는 검증된 제품이냐와 책임 소재 때문이죠.
어린왕자 2011-09
메모리는 데이터 처리시 사용하는 임시공간이라
디스크 구성이 성능에 항상 영향을 주게 됩니다.
(읽기, 쓰기가 최종적으로 Disk에 이루어 지기 때문에)

DB가 변화가 없는 read only형 이다고 한다면 체감속도에 차이는 무시해도 될 정도가 되겠죠.
정희섭 2011-09
그러니까 읽기/쓰기 버퍼에 올라가도록 처리되는건 맞지만 시작/최종단계에서 디스크로 I/O 가 발생할테니 당연히 속도에 영향을 받지 않겠습니까? ^^;
memory db 같은경우엔... 아예 메모리에 자리를 잡고 처리가 되니까 I/O 가 전부 메모리 안에서지만
일반적인 하드디스크의 경우엔 버퍼/캐시가 있더라도 읽기/쓰기 과정이 있기 때문에 memory db 만큼은 안나옵니다
보통 벤치마크해서 나오는 성능, 지금 쓰시는 성능 다 버퍼/캐시가 개입이 이미 되어 있는것이죠.
제가 memory db 형태로 쓴다면 무정전 전원 공급, 버그로 OS 가 멈추지 않을거라는 확신, DB 프로그램이 무결하다는 확신이 있어야 쓸거 같네요...
도석림 2011-09
아무리 물리적 데이타의 용량이 많아도..처리할 데이타와 처리한 데이타를 디스크에서 불러오거나 기록해야됩니다
이때..디스크 속도가 느리면 불러오는 시간이나..기록하는 시간도 늦어지게 되고..그에 따른 딜레이 때문에 전체적인 성능이 떨어지죠...

레이드는 1차적으로 안정성..2차적으로 속도라는 2마리 토끼를 잡기 위한 방법입니다..
레이드의 0레벨-스트라이프는 속도..
        1레벨-미러는 자동백업...만 지원하는 레이드카드는 저렴합니다만...
        그 이후의 5레벨..50..60 레벨등은 2가지 조건을 만족시키기에 카드 가격도 비싸지는거죠..

간단한 레이드의 개념도입니다..
http://blog.naver.com/inpiniti10?Redirect=Log&logNo=40134787699
김윤술 2011-09
DB사이즈가 적고 insert 되는양도 얼마되지 않으며 조회 산출 목적인 DB같은데 메모리와 시피유 빨로 나가는게 정답이죠. 실질적으로 성능모니터 걸어보면 디스크 사용율을 거의 많지 않다는걸 알수 있습니다. DB는 메모리와 시피유 빨입니다. DB가 많이 있고 사이즈도 크다면 디스크 I/O를 고려할수 있지만 위사항은 거의 응용 어플단에서 쿼리 소스만 봐도 답이 나옵니다. 레이드는 그냥 일반적인 1 이나 5 정도이고 나머진 DB 성능 진단입니다. DB는 크지 않은 데이터 값으로 계산하고 산출하고 조건을 반영하는데서 연산작업이 많습니다. 즉 메모리와 시피유에 많은 영향이 간다는거죠. 데이터 값을 실시간으로 업데이트 하는것도 아니니 디스크에 투자하는건 낭비일수 밖에 없습니다.
milyman 2011-09
SUN의 경우 SSD를 탑재하여 DB성능을 향상시킨 장비를 판매하고 있습니다.
(딱지는 오라클이겠지요)
주사용량이 1GB정도라고 해도 전체 크기는 10GB 단위겠지요
TEMPDB를 SSD에 운영해서 TPMC를 올리는 방법등
디스크 성능도 DB운영에 중요한 요소입니다.
조우연님의 말씀처럼 DB 특성을 검토해 보셔야 겠습니다.
김상진 2011-09
버퍼캐쉬로 올리는건 오라클에서도 사용하는 용어이긴하네요
다만, 주로 사용되는 데이터가 1기가라고하시는데...
그게 어떠한것이냐에 따라서 좀 달라집니다.
해당되는 테이블 전체가 1기가이다면...테이블을 통으로 메모리에 올릴수있는 옵션으로 버퍼풀을 KEEP할수있고

주로 쓰는게 테이블단위가 아니라 일부 데이터라면 캐쉬옵션을 줄수있긴합니다.

11g R1인가 R2 부터는 저장장치를 SSD일경우 옵션으로 설정하면 디스크와 다른 SSD 접근 패턴으로 바뀌줘서 좀더 성능상 잇점을 발휘한다고 하더군요
(뭐...제가 본 사이트중에서 SSD를 쓰는곳을 못봤으니...오라클 엑사데이터 제외하구요)

이런식으로 데이터베이스도 나름 느린 디스크속도를 극복하기 위해서 여러가지 옵션들을 넣었죠

어떤 DB를 쓰는지 확인하신후에 적절한 옵션을 주시는게 좋겠네요....

다만, 이런 특성은 각 DB 벤더들의 특성이니....공부는 좀 하셔야될듯하네요

그리고, DB라는 녀석은....데이터 저장용으로 디스크를 쓰기도 하지만, TEMP나 REDO, ROLLBACK 같은.....트랜젝션이나 복잡한녀석들 정렬같은...DB에서 자체적으로 쓰는녀석들이 있는데...이녀석들은 절대적으로 디스크 성능을 따라가며, 이것들은 메모리를 안쓴다고 보시는게 맞습니다.
김상진 2011-09
근데..웃기는건.....1기가라고해서 메모리에 전부 올리더라도...사용량이 많고 튜닝이 안되어있다며....
성능저하는 발생되며....튜닝은 하셔야됩니다.
결국...성능이란....H/W적인 성능도 중요하지만, S/W적인 성능도 중요합니다.
심심풀이로...부하테스트해보면....성능 튜닝여부로....100배 이상도 성능 차이가 납니다.
사용량이 많아질수록 차이가 더많아지죠....
아무래도...이곳이 H/W사이트여서....H/W적으로 성능향상을 생각하실수도 있지만...결국 DB도 S/W라서...
H/W + S/W 최적화가 가장중요합니다.

개인적으로는 DB만은 S/W 최적화가 우선순위가 높다고봅니다.
(물론 다른 분야도 그럴수있겠지만)
그러고 나서, 그 한계에 봉착했을때에 하드웨어 빨로 밀어버리는게 최선이구요....
GoodWolf 2011-11
김상진님 말씀에 공감하며~ 백만표쯤 던지고 싶습니다. ^^
..


QnA
제목Page 3967/5716
2014-05   5202587   정은준1
2015-12   1735242   백메가
2006-10   6515   장현모
2014-08   6515   정은준1
2005-04   6515   박찬민
2022-05   6515   fprrmsl
2014-10   6515   방o효o문
2018-11   6516   크리보
2015-09   6516   발품
2018-07   6516   에잉이
2013-09   6516   서현석
2016-05   6516   회원K
2005-07   6516   우승엽
2004-12   6516   이원기
2005-04   6516   정힘찬
2005-01   6517   김철환
2013-02   6517   조성현입니다
2005-03   6517   김영호
2011-02   6517   차평석
2017-03   6517   니포
2014-12   6517   푸른하늘아래
2011-05   6517   김건우