Назад | Перейти на главную страницу

Медленное последовательное чтение в большом пуле zfs

Мы запускаем пул zfs в качестве временного хранилища для научных данных с 24 дисками по 10 ТБ в 4 vdev, каждый из которых состоит из 6 дисков в конфигурации raidz2 (размер записи 128 КБ).

~ # zpool status
  pool: tank
 state: ONLINE
  scan: scrub canceled on Mon Jun  3 11:14:39 2019
config:

        NAME                        STATE     READ WRITE CKSUM
        tank                        ONLINE       0     0     0
          raidz2-0                  ONLINE       0     0     0
            wwn-0x5000cca25160d3c8  ONLINE       0     0     0
            wwn-0x5000cca25165cf30  ONLINE       0     0     0
            wwn-0x5000cca2516711a4  ONLINE       0     0     0
            wwn-0x5000cca251673b88  ONLINE       0     0     0
            wwn-0x5000cca251673b94  ONLINE       0     0     0
            wwn-0x5000cca251674214  ONLINE       0     0     0
          raidz2-1                  ONLINE       0     0     0
            wwn-0x5000cca251683628  ONLINE       0     0     0
            wwn-0x5000cca25168771c  ONLINE       0     0     0
            wwn-0x5000cca25168f234  ONLINE       0     0     0
            wwn-0x5000cca251692890  ONLINE       0     0     0
            wwn-0x5000cca251695484  ONLINE       0     0     0
            wwn-0x5000cca2516969b0  ONLINE       0     0     0
          raidz2-2                  ONLINE       0     0     0
            wwn-0x5000c500a774ba03  ONLINE       0     0     0
            wwn-0x5000c500a7800c3b  ONLINE       0     0     0
            wwn-0x5000c500a7800feb  ONLINE       0     0     0
            wwn-0x5000c500a7802abf  ONLINE       0     0     0
            wwn-0x5000c500a78033cb  ONLINE       0     0     0
            wwn-0x5000c500a78039c7  ONLINE       0     0     0
          raidz2-3                  ONLINE       0     0     0
            wwn-0x5000c500a780416b  ONLINE       0     0     0
            wwn-0x5000c500a7804733  ONLINE       0     0     0
            wwn-0x5000c500a7804797  ONLINE       0     0     0
            wwn-0x5000c500a7805df3  ONLINE       0     0     0
            wwn-0x5000c500a7806a0b  ONLINE       0     0     0
            wwn-0x5000c500a7807ccf  ONLINE       0     0     0

errors: No known data errors

Когда мы настроили это несколько месяцев назад, производительность выглядела удовлетворительной со скоростью от 500 МБ до 1 ГБ / с. Тем временем мы заметили несколько проблем с производительностью, но предположили, что это связано с другими возможными узкими местами. Теперь мы хотим переместить наши данные в окончательное хранилище и обнаружить, что мы можем только обойти 60 МБ / с последовательно (размер файла> 100 ГБ) из пула.

Тест на производительность диска

~ # echo 1 > /proc/sys/vm/drop_caches
    for i in $(zpool status | grep wwn- | awk '{print $1}'); do                                                                   
      echo $i;dd if=/dev/disk/by-id/$i of=/dev/null status=progress bs=1G count=1 seek=1G; echo; echo; sleep 1      
    done
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 4.81339 s, 223 MB/s
... (similar rates for all 24 disks)

ОЗУ:

~ # free -h
              total        used        free      shared  buff/cache   available
Mem:            62G        2.1G         35G         18M         25G         59G

Все свойства файловой системы, из которой мы копируем (существует еще одна, более крупная)

zfs get all tank/storage/bulk
NAME               PROPERTY               VALUE                              SOURCE
tank/storage/bulk  type                   filesystem                         -
tank/storage/bulk  creation               Fr Mär  1  9:48 2019              -
tank/storage/bulk  used                   3.96T                              -
tank/storage/bulk  available              23.7T                              -
tank/storage/bulk  referenced             3.96T                              -
tank/storage/bulk  compressratio          1.17x                              -
tank/storage/bulk  mounted                yes                                -
tank/storage/bulk  quota                  none                               default
tank/storage/bulk  reservation            none                               default
tank/storage/bulk  recordsize             128K                               default
tank/storage/bulk  mountpoint             /storage/bulk                      inherited from tank/storage
tank/storage/bulk  sharenfs               rw=@10.40.20.201,rw=@10.40.20.202  local
tank/storage/bulk  checksum               on                                 default
tank/storage/bulk  compression            on                                 inherited from tank
tank/storage/bulk  atime                  off                                inherited from tank
tank/storage/bulk  devices                on                                 default
tank/storage/bulk  exec                   off                                inherited from tank
tank/storage/bulk  setuid                 off                                inherited from tank
tank/storage/bulk  readonly               off                                default
tank/storage/bulk  zoned                  off                                default
tank/storage/bulk  snapdir                hidden                             default
tank/storage/bulk  aclinherit             restricted                         default
tank/storage/bulk  canmount               on                                 default
tank/storage/bulk  xattr                  sa                                 inherited from tank
tank/storage/bulk  copies                 1                                  default
tank/storage/bulk  version                5                                  -
tank/storage/bulk  utf8only               off                                -
tank/storage/bulk  normalization          none                               -
tank/storage/bulk  casesensitivity        sensitive                          -
tank/storage/bulk  vscan                  off                                default
tank/storage/bulk  nbmand                 off                                default
tank/storage/bulk  sharesmb               off                                inherited from tank
tank/storage/bulk  refquota               none                               default
tank/storage/bulk  refreservation         none                               default
tank/storage/bulk  primarycache           all                                default
tank/storage/bulk  secondarycache         all                                default
tank/storage/bulk  usedbysnapshots        2.40M                              -
tank/storage/bulk  usedbydataset          3.96T                              -
tank/storage/bulk  usedbychildren         0                                  -
tank/storage/bulk  usedbyrefreservation   0                                  -
tank/storage/bulk  logbias                latency                            default
tank/storage/bulk  dedup                  off                                default
tank/storage/bulk  mlslabel               none                               default
tank/storage/bulk  sync                   standard                           default
tank/storage/bulk  refcompressratio       1.17x                              -
tank/storage/bulk  written                0                                  -
tank/storage/bulk  logicalused            4.55T                              -
tank/storage/bulk  logicalreferenced      4.55T                              -
tank/storage/bulk  filesystem_limit       none                               default
tank/storage/bulk  snapshot_limit         none                               default
tank/storage/bulk  filesystem_count       none                               default
tank/storage/bulk  snapshot_count         none                               default
tank/storage/bulk  snapdev                hidden                             default
tank/storage/bulk  acltype                posixacl                           inherited from tank
tank/storage/bulk  context                none                               default
tank/storage/bulk  fscontext              none                               default
tank/storage/bulk  defcontext             none                               default
tank/storage/bulk  rootcontext            none                               default
tank/storage/bulk  relatime               on                                 inherited from tank
tank/storage/bulk  redundant_metadata     all                                default
tank/storage/bulk  overlay                off                                default
tank/storage/bulk  com.sun:auto-snapshot  true                               local

Версии

srv01 ~ # apt policy zfsutils-linux               
zfsutils-linux:
  Installed: 0.6.5.6-0ubuntu27
  Candidate: 0.6.5.6-0ubuntu27
  Version table:
 *** 0.6.5.6-0ubuntu27 500
        500 http://de.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     0.6.5.6-0ubuntu8 500
        500 http://de.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
srv01 ~ # uname -a
Linux srv01 4.15.0-50-generic #54~16.04.1-Ubuntu SMP Wed May 8 15:55:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Использование диска

~ # iostat -x 3  /dev/disk/by-id/wwn-0x????????????????
Linux 4.15.0-50-generic (bbo3102)       04.06.2019      _x86_64_        (48 CPU)

[...]

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.12    0.00    2.09    0.29    0.00   94.50

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdn               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdr               0.00     0.00  487.00    0.00 10744.00     0.00    44.12     0.56    1.16    1.16    0.00   0.51  24.93
sdt               1.67     0.00  484.33    0.00 12640.00     0.00    52.20     0.52    1.09    1.09    0.00   0.44  21.47
sdu               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdv               0.00     0.00    0.67    0.00     8.00     0.00    24.00     0.00    6.00    6.00    0.00   6.00   0.40
sdw               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdx               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdy               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdo               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdq               0.00     0.00  472.33    0.00 10812.00     0.00    45.78     0.64    1.35    1.35    0.00   0.59  27.73
sdb               0.00     0.00  469.33    0.00 10908.00     0.00    46.48     0.10    0.22    0.22    0.00   0.14   6.53
sdc               0.00     0.00  192.33    0.00  4696.00     0.00    48.83     0.05    0.25    0.25    0.00   0.12   2.27
sdg               0.33     0.00  281.33    0.00  6978.67     0.00    49.61     0.07    0.27    0.27    0.00   0.15   4.13
sdh               0.67     0.00  449.33    0.00 10524.00     0.00    46.84     0.16    0.36    0.36    0.00   0.17   7.73
sdj               0.00     0.00  271.33    0.00  6580.00     0.00    48.50     0.04    0.13    0.13    0.00   0.09   2.53
sdi               0.00     0.00  183.67    0.00  3928.00     0.00    42.77     0.07    0.36    0.36    0.00   0.23   4.27
sde               0.00     0.00  280.00    0.00  5860.00     0.00    41.86     0.10    0.36    0.36    0.00   0.22   6.27
sdf               0.00     0.00  177.33    0.00  4662.67     0.00    52.59     0.07    0.38    0.38    0.00   0.18   3.20
sdk               0.33     0.00  464.33    0.00 10498.67     0.00    45.22     0.05    0.10    0.10    0.00   0.07   3.47
sdp               0.00     0.00    0.67    0.00     8.00     0.00    24.00     0.00    4.00    4.00    0.00   4.00   0.27
sds               1.00     0.00  489.67    0.00 12650.67     0.00    51.67     0.16    0.34    0.34    0.00   0.16   7.87
sdl               0.00     0.00  464.67    0.00 10200.00     0.00    43.90     0.05    0.11    0.11    0.00   0.08   3.73
sdd               0.00     0.00  268.00    0.00  5509.33     0.00    41.11     0.07    0.26    0.26    0.00   0.18   4.93
sda               0.00     0.00  192.00    0.00  3928.00     0.00    40.92     0.03    0.17    0.17    0.00   0.09   1.73

Есть идеи или предложения по дальнейшим испытаниям?