이 문제에 대한 관련 질문이 있지만 너무 복잡하고 커져서 문제를 NFS와 로컬 문제로 분리하기로 결정했습니다. 나는 또한 zfs-discuss 메일 링리스트에서 이것에 대해 많은 성공을 요구하지 않았다.
동일한 서버의 NFS / CIFS 디렉토리 간 느린 복사
개요 : 설정 방법 및 예상 사항
- 4 개의 디스크가있는 ZFS 풀이 있습니다. 2TB RED는 스트라이프 된 2 개의 미러로 구성됩니다 (RAID 10). Linux에서는 zfsonlinux입니다. 캐시 또는 로그 장치가 없습니다.
- 미러간에 데이터 균형 조정 (ZFS에 중요)
- 각 디스크는 147MB / sec에서 병렬로 읽을 수 있으며 (raw w / dd), 처리량은 588MB / sec입니다.
- 비슷한 4TB RED 디스크의 벤치 마크를 기준으로 각 디스크에서 약 115MB / 초의 쓰기, 138MB / 초의 읽기 및 50MB / 초의 순차 데이터 다시 쓰기를 기대합니다. 요즘 어떤 디스크도 그렇게 할 수 있기 때문에 100MB / sec 이상의 읽기 또는 쓰기를 기대합니다.
- 로드하거나 순차적 데이터를 쓸 때 4 개의 디스크 모두에서 100 % IO 사용률을 볼 것으로 생각했습니다. 그리고 디스크는 100 % 사용률로 100MB / sec 이상을 차지합니다.
- 풀이 단일 디스크에서 2 배속 쓰기, 2 배속 다시 쓰기 및 4 배속 읽기 성능을 제공한다고 생각했습니다. 틀렸습니까?
- NEW 같은 풀의 ext4 zvol이 ZFS와 거의 같은 속도 일 것이라고 생각했습니다.
내가 실제로 얻는 것
수영장의 읽기 성능이 예상보다 높지 않습니다.
며칠 전부터 풀에서 보니 ++ 벤치 마크
버전 1.97 ------ 순차 출력 -------순차 입력--랜덤- 동시성 1 -Chr 당 ---- 블록--다시 쓰기 -Chr 당 ---- 블록--찾기- 기계 크기 K / 초 % CP K / 초 % CP K / 초 % CP K / 초 % CP K / 초 % CP / 초 % CP igor 63G 99 99232132 47118787 27336 97 257072 22 92.7 6
zpool에서 자체의 단일 4TB RED 드라이브의 bonnie ++
버전 1.97 ------ 순차 출력 -------순차 입력--랜덤- 동시성 1 -Chr 당 ---- 블록--다시 쓰기 -Chr 당 ---- 블록--찾기- 기계 크기 K / 초 % CP K / 초 % CP K / 초 % CP K / 초 % CP K / 초 % CP / 초 % CP igor 63G 101 99 115288 30 49781 14326 97138250 13 111.6 8
이에 따르면 읽기 및 다시 쓰기 속도는 단일 4TB RED 드라이브 (두 배)의 결과에 따라 적절합니다. 그러나 필자가 기대 한 읽기 속도는 약 550MB / 초 (4TB 드라이브 속도의 4 배)였으며 적어도 약 400MB / 초가되기를 바랍니다. 대신 나는 약 260MB / 초를보고있다.
아래 정보를 수집하면서 지금 바로 수영장에서 보니 ++ . 이전과 동일하지 않으며 아무것도 변경되지 않았습니다.
버전 1.97 ------ 순차 출력 -------순차 입력--랜덤- 동시성 1 -Chr 당 ---- 블록--다시 쓰기 -Chr 당 ---- 블록--찾기- 기계 크기 K / 초 % CP K / 초 % CP K / 초 % CP K / 초 % CP K / 초 % CP / 초 % CP igor 63G 103 99 207518 43108810 24342 98302350 26 256.4 18
쓰기 중 zpool iostat 나에게 괜찮은 것 같습니다.
용량 작업 대역폭 풀 할당량 무료 읽기 쓰기 읽기 쓰기 -------------------------------------------- ------ ---- ----- ----- ----- ----- 수영장 2 1.23T 2.39T 0 1.89K 1.60K 238M 거울 631G 1.20T 0 979 1.60K 120M ata-WDC_WD20EFRX-68AX9N0_WD-WMC300004469--0 1007 1.60K 124M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX--975120120M 거울 631G 1.20T 0 953 0 117M ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536--0 1.01K 0 128M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE--0 953 0 117M
다시 쓰기 중 zpool iostat 나에게 괜찮은 것 같아요 .
용량 작업 대역폭 풀 할당량 무료 읽기 쓰기 읽기 쓰기 -------------------------------------------- ------ ---- ----- ----- ----- ----- 수영장 2 1.27T 2.35T 1015923125M 101M 거울 651G 1.18T 505 465 62.2M 51.8M ata-WDC_WD20EFRX-68AX9N0_WD-WMC300004469--198438 24.4M 51.7M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX--306384 37.8M 45.1M 거울 651G 1.18T 510457 63.2M 49.6M ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536--304 371 37.8M 43.3M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE--206423 25.5M 49.6M
내가 무슨 일인지 궁금해
읽기 중 zpool iostat
용량 작업 대역폭 풀 할당량 무료 읽기 쓰기 읽기 쓰기 -------------------------------------------- ------ ---- ----- ----- ----- ----- 수영장 2 1.27T 2.35T 2.68K 32 339M 141K 거울 651G 1.18T 1.34K 20169M 90.0K ata-WDC_WD20EFRX-68AX9N0_WD-WMC300004469--748 9 92.5M 96.8K ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX--623 10 76.8M 96.8K 거울 651G 1.18T 1.34K 11170M 50.8K ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536--774 5 95.7M 56.0K ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE--599 6 74.0M 56.0K
동일한 읽기 작업 중 iostat -x IO %가 100 %가 아닌 방법에 유의하십시오.
장치 : rrqm / s wrqm / sr / sw / s rkB / s wkB / s avgrq-sz avgqu-sz await r_await w_await svctm % util sdb 0.60 0.00 661.30 6.00 83652.80 49.20 250.87 2.32 3.47 3.46 4.87 1.20 79.76 sdd 0.80 0.00 735.40 5.30 93273.20 49.20 251.98 2.60 3.51 3.51 4.15 1.20 89.04 sdf 0.50 0.00 656.70 3.80 83196.80 31.20 252.02 2.23 3.38 3.36 6.63 1.17 77.12 sda 0.70 0.00 738.30 3.30 93572.00 31.20 252.44 2.45 3.33 3.31 7.03 1.14 84.24
zpool 및 테스트 데이터 세트 설정 :
- 한 번 꺼져
- 압축이 해제되었습니다
- 교대는 0입니다 (자동 감지-이해하면 괜찮습니다)
- zdb에 따르면 디스크는 모두 교대
- 모듈-옵션 zfs zvol_threads = 32 zfs_arc_max = 17179869184
- 동기화 = 표준
편집-2015 년 10 월 30 일
좀 더 시험해 봤어
- 데이터 셋 bonnie ++ w / recordsize = 1M = 226MB 쓰기, 392MB 읽기가 훨씬 우수
- 데이터 세트 dd w / record size = 1M = 260MB write, 392MB read 훨씬 더 잘
- zvol w / ext4 dd bs = 1M = 128MB 쓰기, 107MB 읽기가 왜 그렇게 느립니까?
- 데이터 세트 2 프로세스 병렬 = 227MB 쓰기, 396MB 읽기
- dd direct io는 데이터 세트와 zvol에서 다르지 않습니다.
레코드 크기가 커지면 성능이 훨씬 좋아집니다. 풀의 거의 모든 파일은 1MB를 넘습니다. 그래서 그대로 두겠습니다. 디스크는 여전히 100 % 사용률을 얻지 못하므로 디스크 속도가 훨씬 빠를 지 궁금합니다. 그리고 이제 zvol 성능이 왜 그렇게 가벼운 지 궁금합니다.
의견 / 응답에 요청 된 정보를 제공해 드리겠습니다. 내 다른 질문에 게시 된 많은 정보가 있습니다 . 동일한 서버의 NFS / CIFS 디렉토리간에 느린 복사
나는 단지 무언가를 이해하지 못하고 이것이 전혀 문제가되지 않을 것이라는 것을 완전히 알고 있습니다. 미리 감사드립니다.
그것은 명확하게하기 위해, 질문은 : 왜는 ZFS가 빠른 속도로 내가 예상대로 풀 아닌가요? 그리고 다른 문제가 있습니까?
dd
어떤 종류의 성능을 얻는 지 사용하십시오. 캐싱의 이중 버퍼링이 성능에 영향을 줄 수있는 스트리밍 속도에 도달 할 때 직접 IO를 시도 할 수도 있습니다. FWIW, 이론적 총 원시 4 디스크 읽기 성능의 3/4이 좋습니다.
%util
숫자를 설명 할 수 있습니다.