Mam powiązane pytanie dotyczące tego problemu, ale stało się to zbyt skomplikowane i zbyt duże, więc postanowiłem podzielić problem na NFS i problemy lokalne. Próbowałem również zapytać o to na liście dyskusyjnej ZFS-omówić bez większego powodzenia.
Powolne kopiowanie między katalogami NFS / CIFS na tym samym serwerze
Zarys: Jak się konfiguruję i czego oczekuję
- Mam pulę ZFS z 4 dyskami. 2 TB RED skonfigurowany jako 2 lustrzane paski (RAID 10). W systemie Linux: zfsonlinux. Nie ma urządzeń pamięci podręcznej ani dzienników.
- Dane są równoważone między serwerami lustrzanymi (ważne dla ZFS)
- Każdy dysk może odczytywać (nieprzetworzony w / dd) z prędkością 147 MB / s równolegle, co daje łączną przepustowość 588 MB / s.
- Oczekuję około 115 MB / s zapisu, 138 MB / s odczytu i 50 MB / s przepisania kolejnych danych z każdego dysku, w oparciu o testy porównawcze podobnego dysku RED o pojemności 4 TB. Oczekuję nie mniej niż 100 MB / s odczytu lub zapisu, ponieważ każdy dysk może to zrobić w dzisiejszych czasach.
- Myślałem, że zobaczę 100% wykorzystania IO na wszystkich 4 dyskach, gdy pod obciążeniem odczytuje lub zapisuje dane sekwencyjne. I że dyski pracowałyby z prędkością ponad 100 MB / s przy 100% wykorzystaniu.
- Myślałem, że pula da mi około 2x zapisu, 2x przepisywania i 4x odczytu na jednym dysku - czy się mylę?
- NOWOŚĆ Myślałem, że Zvol ext4 na tej samej puli będzie miał mniej więcej taką samą prędkość jak ZFS
Co właściwie dostaję
Uważam, że wydajność odczytu puli nie jest tak wysoka, jak się spodziewałem
test porównawczy bonnie ++ na basenie sprzed kilku dni
Wersja 1.97 ------ Wyjście sekwencyjne ------ - Wejście równoważne - - Losowo - Współbieżność 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Rozmiar maszyny K / s% CP K / s% CP K / s% CP K / s% CP K / s% CP / s% CP igor 63G 99 99 232132 47 118787 27 336 97 257072 22 92,7 6
bonnie ++ na pojedynczym dysku RED o pojemności 4 TB samodzielnie w zpool
Wersja 1.97 ------ Wyjście sekwencyjne ------ - Wejście równoważne - - Losowo - Współbieżność 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Rozmiar maszyny K / s% CP K / s% CP K / s% CP K / s% CP K / s% CP / s% CP igor 63G 101 99 115288 30 49781 14 326 97 138250 13 111,6 8
Zgodnie z tym prędkości odczytu i przepisywania są odpowiednie na podstawie wyników z jednego napędu RED o pojemności 4 TB (są dwa razy większe). Jednak oczekiwana prędkość odczytu wynosiłaby około 550 MB / s (4x prędkość napędu 4 TB) i miałbym przynajmniej nadzieję na około 400 MB / s. Zamiast tego widzę około 260 MB / s
bonnie ++ w puli od teraz, zbierając poniższe informacje. Nie do końca taki sam jak wcześniej i nic się nie zmieniło.
Wersja 1.97 ------ Wyjście sekwencyjne ------ - Wejście równoważne - - Losowo - Współbieżność 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Rozmiar maszyny K / s% CP K / s% CP K / s% CP K / s% CP K / s% CP / s% CP igor 63G 103 99 207518 43 108810 24 342 98 302350 26 256,4 18
zpool iostat podczas zapisu. Wydaje mi się OK.
przepustowość operacji przepustowości przydział puli bezpłatny odczyt zapis odczyt odczyt zapis -------------------------------------------- ----- - ---- ----- ----- ----- ----- pool2 1,23 t 2,39 t 0 1,89 tys. 1,60 tys. 238 mln lustro 631G 1.20T 0979 1.60K 120M ata-WDC_WD20EFRX-68AX9N0_WD-WMC300004469 - - 0 1007 1,60 K 124M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX - - 0 975 0 120 M lustro 631G 1,20T 0 953 0 117 mln ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536 - - 0 1,01 K 0 128 M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE - - 0 953 0 117 mln
zpool iostat podczas przepisywania. Wydaje mi się, że to dla mnie w porządku .
przepustowość operacji przepustowości przydział puli bezpłatny odczyt zapis odczyt odczyt zapis -------------------------------------------- ----- - ---- ----- ----- ----- ----- pool2 1,27 t 2,35 t 1015 923 125 mln 101 mln lustro 651G 1,18T 505465 62,2M 51,8M ata-WDC_WD20EFRX-68AX9N0_WD-WMC300004469 - - 198438 24,4M 51,7M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX - - 306 384 37,8M 45,1M lustro 651G 1,18T 510 457 63,2M 49,6M ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536 - - 304371 37,8M 43,3M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE - - 206 423 25,5M 49,6M
Zastanawiam się, co się dzieje
zpool iostat podczas odczytu
przepustowość operacji przepustowości przydział puli bezpłatny odczyt zapis odczyt odczyt zapis -------------------------------------------- ----- - ---- ----- ----- ----- ----- pool2 1,27 T 2,35 T 2,68 K 32 339 M 141 K. lustro 651G 1,18 T 1,34 K 20 169 M 90,0 K. ata-WDC_WD20EFRX-68AX9N0_WD-WMC300004469 - - 748 9 92,5M 96,8K ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX - - 623 10 76,8M 96,8K lustro 651G 1,18 T 1,34 K 11 170 M 50,8 K. ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536 - - 774 5 95,7M 56,0K ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE - - 599 6 74,0 M 56,0 K
iostat -x podczas tej samej operacji odczytu. Zauważ, że IO% nie wynosi 100%.
Urządzenie: rrqm / s wrqm / sr / sw / s rkB / s wkB / s avgrq-sz avgqu-sz czekają 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
ustawienia zpool i test zestawu danych:
- atime jest wyłączony
- kompresja jest wyłączona
- ashift ma wartość 0 (autodetekcja - rozumiem, że było w porządku)
- zdb mówi, że wszystkie dyski są przesunięte w poprzek = 12
- moduł - opcje zfs zvol_threads = 32 zfs_arc_max = 17179869184
- sync = standard
Edycja - 30 października 2015 r
Zrobiłem trochę więcej testów
- zestaw danych bonnie ++ w / recordsize = 1M = 226 MB zapisu, 392 MB odczytu znacznie lepiej
- zestaw danych dd w / record size = 1M = 260 MB zapisu, 392 MB odczytu znacznie lepiej
- zvol w / ext4 dd bs = 1M = 128 MB zapisu, 107 MB odczytu, dlaczego tak wolno?
- zestaw danych 2 równolegle przetwarzanych = 227 MB zapisu, 396 MB odczytu
- dd direct io nie różni się ani w zbiorze danych, ani w zvol
Jestem znacznie bardziej zadowolony z wydajności dzięki zwiększonemu rozmiarowi płyty. Prawie każdy plik w puli ma ponad 1 MB. Więc zostawię to w ten sposób. Dyski wciąż nie są w 100% wykorzystywane, co sprawia, że zastanawiam się, czy mogłoby to być znacznie szybsze. A teraz zastanawiam się, dlaczego wydajność Zvola jest tak kiepska, ponieważ tego (lekko) używam.
Z przyjemnością udzielę wszelkich informacji wymaganych w komentarzach / odpowiedziach. W moim drugim pytaniu jest także mnóstwo informacji: powolne kopiowanie między katalogami NFS / CIFS na tym samym serwerze
Jestem w pełni świadomy, że po prostu coś nie rozumiem i że może to wcale nie stanowić problemu. Z góry dziękuję.
Aby to wyjaśnić, pytanie brzmi: dlaczego pula ZFS nie jest tak szybka, jak się spodziewam? A może coś jeszcze jest nie tak?
dd
aby zobaczyć, jaki rodzaj wydajności uzyskasz. Możesz także wypróbować bezpośrednie we / wy w miarę zwiększania prędkości przesyłania strumieniowego, gdzie podwójne buforowanie z buforowania może mieć wpływ na wydajność. FWIW, 3/4 teoretycznej wydajności odczytu surowego 4 dysków jest dobra.
%util
liczby.