У мене є відповідне запитання щодо цієї проблеми, але воно стало занадто складним і занадто великим, тому я вирішив розділити цю проблему на NFS та місцеві проблеми. Я також намагався запитати про це в списку розсилки zfs-обговорювати без особливого успіху.
Повільне копіювання між каталогами NFS / CIFS на одному сервері
Контур: Як я налаштовуюсь і що я очікую
- У мене є басейн ZFS з 4 дисками. Червоний 2 Тб, сконфігурований як 2 дзеркала з смугастим (RAID 10). У Linux, zfsonlinux. Немає пристроїв кешу чи журналу.
- Дані збалансовані через дзеркала (важливо для ZFS)
- Кожен диск може читати (необроблений w / dd) зі швидкістю 147 Мб / сек паралельно, даючи комбіновану пропускну здатність 588 МБ / сек.
- Я очікую приблизно 115 Мб / сек запису, 138 МБ / сек зчитування та 50 МБ / сек перезапис послідовних даних з кожного диска, грунтуючись на орієнтирах подібного 4 ТБ червоного диска. Я очікую не менше 100 Мб / сек для читання чи запису, оскільки будь-який диск може зробити це сьогодні.
- Я думав, що побачу 100% використання IO на всіх 4 дисках під час читання або завантаження послідовних даних. І що диски випускатимуть понад 100 Мб / сек при 100% використанні.
- Я думав, що пул дасть мені близько 2x запису, 2x переписання та 4-кратну швидкість читання на одному диску - я помиляюся?
- NEW Я думав, що ext4 zvol на тому ж пулі буде приблизно такою ж швидкістю , як ZFS
Що я насправді отримую
Я вважаю, що показник читання пулу не є настільки високим, як я очікував
bonnie ++ орієнтир у басейні від декількох днів тому
Версія 1.97 ------ Послідовний вихід ------ - Послідовний вхід- - Випадковий- Паралельність 1 -Per Chr- --блок-- -записати- -Per Chr- --блок-- - дивиться-- Розмір машини K / sec% CP K / sec% CP K / sec% CP K / sec% CP K / sec% CP / sec% CP igor 63G 99 99 232132 47 118787 27 336 97 257072 22 92.7 6
боні ++ на одному 4-кратному червоному приводі самостійно в зопулі
Версія 1.97 ------ Послідовний вихід ------ - Послідовний вхід- - Випадковий- Паралельність 1 -Per Chr- --блок-- -записати- -Per Chr- --блок-- - дивиться-- Розмір машини K / sec% CP K / sec% CP K / sec% CP K / sec% CP K / sec% CP / sec% CP igor 63G 101 99 115288 30 49781 14 326 97 138250 13 111.6 8
Відповідно, швидкість читання та перезапису доцільна, виходячи з результатів одного червоного приводу 4 ТБ (вони подвійні). Однак швидкість читання, яку я очікував, складе близько 550 Мб / сек (4 рази швидкість 4 ТБ приводу), і я, принаймні, сподіваюся на близько 400 МБ / сек. Натомість я бачу близько 260 Мб / сек
Bonnie ++ у басейні з цього часу, збираючи інформацію нижче. Не зовсім так, як раніше, і нічого не змінилося.
Версія 1.97 ------ Послідовний вихід ------ - Послідовний вхід- - Випадковий- Паралельність 1 -Per Chr- --блок-- -записати- -Per Chr- --блок-- - дивиться-- Розмір машини K / sec% CP K / sec% CP K / sec% CP K / sec% CP K / sec% CP / sec% CP igor 63G 103 99 207518 43 108810 24 342 98 302350 26 256.4 18
zpool iostat під час запису. Мені здається нормально.
пропускна спроможність операцій pool alloc безкоштовно читати читати читати писати -------------------------------------------- ----- - ---- ----- ----- ----- ----- басейн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 124М ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX - - 0 975 0 120М дзеркало 631G 1.20T 0 953 0 117M ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536 - - 0 1,01K 0 128М ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE - - 0 953 0 117М
zpool iostat під час перезапису. Здається , добре до мене, я думаю .
пропускна спроможність операцій pool alloc безкоштовно читати читати читати писати -------------------------------------------- ----- - ---- ----- ----- ----- ----- басейн2 1,27T 2,35T 1015 923 125M 101M дзеркало 651G 1.18T 505 465 62.2M 51.8M ata-WDC_WD20EFRX-68AX9N0_WD-WMC300004469 - - 198 438 24.4M 51.7M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4MLK57MVX - - 306 384 37.8M 45.1M дзеркало 651G 1.18T 510 457 63.2M 49.6M ata-WDC_WD20EFRX-68AX9N0_WD-WCC1T0429536 - - 304 371 37.8M 43.3M ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VYKFCE - - 206 423 25.5M 49.6M
Тут мені цікаво, що відбувається
zpool iostat під час читання
пропускна спроможність операцій pool alloc безкоштовно читати читати читати писати -------------------------------------------- ----- - ---- ----- ----- ----- ----- басейн2 1.27T 2.35T 2.68K 32 339M 141K дзеркало 651G 1.18T 1.34K 20 169M 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 11 170M 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
іостат -x під час тієї ж операції зчитування. Зверніть увагу, як IO% не на 100%.
Пристрій: rrqm / s wrqm / sr / sw / s rkB / s wkB / s avgrq-sz avgqu-sz очікуємо r_await w_await svctm% util sdb 0,60 0,00 661,30 30,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,50 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 та тестових наборів даних:
- аніме вимкнено
- стиснення вимкнено
- ashift дорівнює 0 (автовідкриття - я розумів, що це нормально)
- zdb каже, що всі диски швидко змінилися = 12
- модуль - параметри zfs zvol_threads = 32 zfs_arc_max = 17179869184
- sync = стандарт
Редагувати - 30 жовтня 2015 року
Я зробив ще кілька тестувань
- набір даних Bonnie ++ w / recordsize = 1M = 226MB write, 392MB читати набагато краще
- набір даних dd w / size size = 1M = 260MB write, 392MB читати набагато краще
- zvol w / ext4 dd bs = 1M = 128MB написати, 107MB читати, чому так повільно?
- набір даних 2 процесора паралельно = 227 Мб запису, зчитування 396 МБ
- dd direct io не відрізняється як на наборі даних, так і на zvol
Я набагато щасливіший за продуктивність із збільшеним розміром запису. Практично кожен файл у пулі перевищує 1 Мб. Тож я залишу це так. Диски все ще не отримують 100% використання, що змушує мене замислитись, чи все ще це може бути набагато швидше. І тепер мені цікаво, чому продуктивність zvol настільки хитра, як це я (злегка) використовую.
Я радий надати будь-яку інформацію, яку вимагають у коментарях / відповідях. Також є багато тонн інформації, розміщеної в іншому моєму запитанні: Повільне копіювання між каталогами NFS / CIFS на одному сервері
Я цілком усвідомлюю, що, можливо, я просто щось не розумію і що це може зовсім не бути проблемою. Заздалегідь спасибі.
Щоб зрозуміти, питання: Чому пул ZFS не такий швидкий, як я очікував? А може, є ще щось не так?
dd
щоб побачити, яку якість ви отримуєте. Можливо, ви також хочете спробувати прямий IO, коли ви встаєте в швидкість потоку, де подвійне буферизація з кешування може вплинути на продуктивність. FWIW, 3/4 від загальної теоретичної загальної 4-дискової швидкості читання.
%util
цифри.