[1] 복수의 HDD 동시 입출력시 throughput
ASUS P7P55D-E EVO 보드에 달린 하드디스크 7개를 동시에 검사하면서 발생하는 블록입출력 속도를 살펴보게 되었다. 7개의 HDD는 시게이트 ST3000DM001 모델이며, 처음 6개 (/dev/hd{a..f})는 P55 칩셋에서 기본지원되는 3Gbps SATA-II 포트 6개에 달려있고 7번째인 /dev/hdi는 보드(ASUS P7P55D-E EVO) 제조사에서 끼워넣은 JMB363의 3Gbps SATA-II 포트에 달려있다. 디스크 검사에는 아래의 명령을 사용했다. ( sudo badblocks -v -b 4096 -w /dev/sda 2>&1 ) > badblocks_log.sda & $ vmstat 5 총 670MB/s 정도의 출력이 이뤄지고 있다. 한 번에 작업을 시작하지 않고 하나씩 해보니 아래와 같이 나왔다. $ vmstat 5 HDD 하나에서 160MB/s 를 조금 넘는 정도의 순차쓰기가 가능했고, 4개까지는 하나당 160MB/s 정도로 증가하다가 이후 5개와 6개째는 10MB/s 수준의 작은 증가폭만 나타난다. P55 칩셋에서 CPU와 칩셋을 연결하는 DMI 인터페이스는 1GB/s 정도의 대역폭을 지원하는 모양이다. ( 참고1: Direct Media Interface, DMI는 1GB/s, DMI 2.0은 2GB/s. P55 칩셋은 1GB/s DMI를 채택) ( 참고2: http://en.wikipedia.org/wiki/List_of_device_bit_rates ) ( 참고3: 사용중인 린필드 i5-750 프로세서의 Intel 정보를 보니 DMI가 2.5 GT/s라고 나온다. ) ( 비교를 위해 아이비브리지 Xeon E3-1230V2를 찾아보니 DMI가 5GT/s로 동작함. ) 대역폭은 1GB/s이고, 실 Throughput은 670MB/s 정도인걸까? 위의 검사가 진행되는 동안, ASUS에서 끼워넣은 또 다른 SATA-III 콘트롤러인 88SE9123에 달린 다른 HDD(시게이트 ST1000DM003)에 대해 아래 명령으로 순차읽기 동작을 시켜보니 아래와 같은 결과가 나왔다. $ sudo dd if=/dev/sdg of=/dev/null bs=10485760 $ vmstat 5 읽기(bi)가 발생하는 동안 쓰기(bo) 속도는 약간의 변화만 생기는 정도였다. 그리고, 88SE9123에 달린 또다른 HDD에 대해서도 동시에 읽기 동작을 시켜보니 아래와 같은 결과가 나왔다. $ sudo dd if=/dev/sdg of=/dev/null bs=10485760 & $ vmstat 5 읽기는 380~390MB/s 정도의 속도가 측정되고, 쓰기속도는 역시 조금 줄어드는 정도였다. DMI는 양방향 동시에(Full-duplex) 각각 1GB/s 대역폭을 제공한다고 한다. 이번에는 읽기 작업만 차례로 해 보니 아래와 같이 800MB/s 정도의 throughput이 나왔다. 쓰기 작업은 (dd를 쓰든 badblocks를 쓰든) 아무리 많이 걸어도 670MB/s 이상은 나오지 않았지만 읽기는 조금 더 대역폭(1GB/s)에 가깝게 나왔다. sudo dd if=/dev/sda of=/dev/null bs=10485760 & $ vmstat 5 읽기와 쓰기 양쪽 모두 동시에 작업을 걸어보니 아래와 같이 나왔다. 우선 5개의 HDD에 쓰기작업을 걸어 660MB/s 정도의 속도가 나오는 상태에서 4개의 HDD에 대해 읽기 작업을 하나씩 실행해가며 변화를 본 것인데, 읽기 작업이 늘어감에 따라 쓰기 속도가 급격히 줄어드는 모습이 보인다. sudo dd if=/dev/zero of=/dev/sda bs=10485760 & $ vmstat 5 DMI가 양방향으로 1GB/s 를 제공한다고는 하는데.. 아마 내가 모르는 병목구간이 있는 것 같은데, 그냥 여기까지만 해보고 멈추기로 했다. 특이사항 하나: ST3000DM001을 Intel P55 내장 SATA에 연결하면 badblocks의 쓰기속도가 160MB/s 넘게 나오지만 JMB363의 eSATA에 연결하면 137MB/s 밖에 안 나온다. 읽기속도는 별 차이가 없는데 쓰기속도는 차이가 났다. procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- [2] 약간의 추가 자료 P55 DMI>CPU bandwidth? https://forum.beyond3d.com/threads/p55-dmi-cpu-bandwidth.46989/ 게다가 PCIe 레인도 PCIe 2.0 (5GT/s==500MB/s)을 지원하기는 하는데 동작은 PCIe 1.0 (2.5GT/s==250MB/s)으로 한다는 말이 나옴. Red flag on current SATA 6 Gbit/s! http://www.behardware.com/news/10424/red-flag-on-current-sata-6-gbit-s.html P7P55D-E EVO 보드에는 6Gbps SATA-III 를 지원하는 88SE9123 칩이 달려있는데 이 칩이 지원하는 SATA-III 2포트 * 6Gbps(600MB/s)의 속도와, 그 속도에 못미치는 이 칩의 PCIe 2.0 x1 인터페이스의 속도 (500MB/s : 1차병목) 그리고, 다시 또 그에도 못미치는 P55 칩셋의 PCIe 동작속도(250MB/s per lane : 2차병목)를 비교하며 분석한 글이다. 결론은 88SE9123의 2차병목인 P55 칩셋의 PCIe 동작속도(250MBps) 때문에 생기는 어이없는 병목현상을 PEX PLX8613 칩을 추가하여 해소했다는 것. 남은 것은 88SE9123의 자체 PCIe 인터페이스의 1차병목 뿐? ( [1]에서 실험해본 결과 390MB/s에 이르는 읽기가 가능했으므로 이 문서의 이론과 부합되는 셈이다. ASUS의 노력이 빛나는 순간. ) ( Gigabyte의 GA-P55A-UD3 보드는 CPU가 제공하는 PCIe 2.0 레인을 나눠쓰는 선택을 제공하는 식으로 이 문제를 우회할 수 있는 길을 열어둔 모양이다. 참고: http://chanik.egloos.com/3968257 ) 메인보드 내의 각 장치 구성을 간략히 살펴보면 아래와 같다. $ lspci -t -v $ lspci | grep PLX 연두색으로 표시한 부품이 위 글에 나오는 PLX PEX8608인 것 같다. 아래와 같이 lspci -v 명령으로 대략 확인 가능하다. 8-lane, 8-Port PCIe 2.0 스위치라고 나오는데, 이 칩에 88SE9123 칩이 NEC의 USB 3.0 콘트롤러 칩과 함께 매달려 있다. (4개의 lane은 P55 칩셋쪽으로, 나머지 4개의 lane은 콘트롤러 칩쪽으로 할당해두되 그 중 2개는 비워두고 2개는 88SE9123과 NEC 칩을 위해 쓴 걸까? 그냥 추측임) ==> 내용추가: PLX PEX8608의 남는 2개 레인은 보드상의 PCIe 2.0 x1 슬롯 두 개에 하나씩 쓴 것 같음. [사우스브리지] <-- (2.5GT/s x4) --> [PLX PEX8608] <-- (5GT/s x1) --> [88SE9123] ==> 보드에 제공되는 PCIe 슬롯은 아래와 같이 구성된 것 같음. - 5GT/s x16 * 2 : CPU가 지원. 한 슬롯만 쓰면 x16, 두 슬롯을 다 쓰면 각각 x8 - 5GT/s x1 * 2 : PLX PEX8608의 남는 2개 레인 - 2.5GT/s x1 * 1 : P55 칩셋에서 제공되는 PCIe 2.0 2.5GT/s 레인 8개 중 남는 것 1개 (PLX PEX8608용 4레인, 두 개의 리얼텍 온보드 NIC용 2개, JMB363용으로 1개 쓰고 남은 것) 참고: USB 3.0 콘트롤러인 NEC칩 (== Renesas uPD720200)도 SATA 콘트롤러인 88SE9123과 똑같은 식으로 PCIe 2.0 x1 을 지원하며 PLX PEX8608에 매달려 있다. 실험해보지는 않았으나 88SE9123의 경우처럼 메인보드 칩셋의 PCIe 2.0 슬롯이 5GT/s가 아닌 2.5GT/s 속도로 동작하는 한계를 넘어서 USB 3.0의 속도인 5Gbps에 근접하는 속도가 나오지 않을까 싶다.
|
카테고리
이전블로그
최근 등록된 덧글
이곳을 기억하고 있군요...
by 시험さま at 06/18 블로그에 자주 오지 않.. by 시험さま at 01/21 안녕하세요 chroot /mnt.. by k1 at 12/29 오래된 글인가보네요. .. by ㅎㅁㅇㄴㅀ at 11/15 찌아찌아어 모음에는 한.. by 0950261319 at 09/26 찌아찌아어 모음에는 한.. by 0950261319 at 09/26 덕분에 일주일쨰 못풀던.. by mjh at 08/22 감사합니다ㅠㅠㅠㅠㅠ.. by byoul at 07/27 도움이 되었다는 덧글을.. by 시험さま at 05/04 감사합니다! pyinstaller .. by ㅇㅇ at 04/22 다른 가볼 데
|