ZFS(Linux) 성능 문제

ZFS(Linux) 성능 문제

내 서버는 RaidZ2(어레이의 디스크 8개) + 예비 디스크 2개(+ 시스템 디스크)로 설정되어 있습니다. 디스크당 6TB, 7200RPM SAS

이 머신은 Centos7 x86_64(가상 머신 아님)를 실행하고 128GB RAM과 48개 코어(하이퍼스레딩 포함)를 갖추고 있습니다. zfs 버전은 zfs-0.6.5.4-1.el7.centos.x86_64입니다.

우리는 이를 사용자 인터페이스로 사용합니다. 사용자는 여기에 로그인하고 일반적으로 일부 컴파일 또는 그리기 작업을 실행한 다음 Condor를 사용하여 작업을 컴퓨팅 센터에 제출합니다. 우리는 약 50명의 사용자를 보유하고 있습니다.

최근 실제 로드는 크게 변하지 않았지만 파일 시스템에 대한 액세스가 매우 느려졌습니다.

iostat(이른 아침, 낮은 활동)를 실행하면 다음과 같은 결과가 나타납니다.

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          9,97    0,00    0,77   19,92    0,00   69,34

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0,00    38,00    1,80   11,60    10,40   225,30    35,18     0,32   23,63    3,44   26,76   6,64   8,90
sdb               4,20     0,00    0,60    0,00    19,20     0,00    64,00     0,00    1,33    1,33    0,00   1,33   0,08
sdc               0,00     0,00  112,20  121,20  2845,30 10947,50   118,19     8,83   37,59   51,97   24,27   4,28 100,00
sdg               0,00     0,00   98,60  123,40  2437,30 11149,10   122,40     7,32   32,82   45,87   22,40   4,50 100,00
sdd               0,00     0,00  116,20  120,00  2857,10 10807,20   115,70     8,88   37,42   51,33   23,95   4,23 100,00
sde               0,00     0,00  105,20  122,40  2430,10 10974,90   117,79     8,03   35,33   47,56   24,83   4,39 100,02
sdh               0,00     0,00  114,00  120,00  3269,90 10807,70   120,32     9,41   40,12   57,14   23,95   4,27 100,00 
sdi               0,00     0,00  109,40  121,60  2798,60 10978,10   119,28     8,72   37,81   55,81   21,61   4,33 100,00
sdj               0,00     0,00  112,00  121,60  2860,40 11050,50   119,10     8,31   35,88   49,27   23,55   4,28 100,00
sdf               0,00     0,00    0,00   90,40     0,00  7810,40   172,80     1,37   15,17    0,00   15,17   1,59  14,36
sdk               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
sdl               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

자유-m

 total       used       free     shared    buffers     cached
 Mem:        128736      81397      47338          0          8        504
 -/+ buffers/cache:      80885      47851
 Swap:       122068       2225     119843

통계자료

10:09:07     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:09:07     all    8,45    0,02    1,33   12,50    0,00    0,03    0,00    0,00   77,67
10:09:07       0   28,27    0,01    2,49   12,91    0,00    0,12    0,00    0,00   56,20
10:09:07       1   24,07    0,01    1,94   17,67    0,00    0,12    0,00    0,00   56,18
10:09:07       2   24,73    0,02    1,74   22,11    0,00    0,07    0,00    0,00   51,33
10:09:07       3   21,44    0,01    1,73   25,02    0,00    0,07    0,00    0,00   51,72
10:09:07       4   21,45    0,01    1,67   26,45    0,00    0,07    0,00    0,00   50,36
10:09:07       5   21,29    0,02    1,72   26,16    0,00    0,07    0,00    0,00   50,73
10:09:07       6   19,69    0,01    1,64   27,48    0,00    0,03    0,00    0,00   51,16
10:09:07       7   19,49    0,04    1,64   27,65    0,00    0,04    0,00    0,00   51,15
10:09:07       8   15,52    0,01    1,79   37,93    0,00    0,05    0,00    0,00   44,70
10:09:07       9   20,13    0,02    1,73   25,78    0,00    0,05    0,00    0,00   52,29
10:09:07      10   16,67    0,01    2,26   15,95    0,00    0,11    0,00    0,00   65,00
10:09:07      11   16,64    0,01    1,88   22,92    0,00    0,08    0,00    0,00   58,47
10:09:07      12    4,93    0,00    1,53   15,63    0,00    0,02    0,00    0,00   77,89
10:09:07      13    4,34    0,00    1,48   15,42    0,00    0,02    0,00    0,00   78,74
10:09:07      14    4,71    0,01    1,52   15,37    0,00    0,02    0,00    0,00   78,37
10:09:07      15    4,99    0,01    1,51   15,59    0,00    0,02    0,00    0,00   77,88
10:09:07      16    4,62    0,01    1,50   15,84    0,00    0,02    0,00    0,00   78,01
10:09:07      17    4,49    0,01    1,49   15,86    0,00    0,02    0,00    0,00   78,14
10:09:07      18    4,36    0,01    1,46   15,64    0,00    0,02    0,00    0,00   78,51
10:09:07      19    4,34    0,00    1,45   15,81    0,00    0,02    0,00    0,00   78,38
10:09:07      20    4,24    0,00    1,44   15,68    0,00    0,02    0,00    0,00   78,62
10:09:07      21    4,24    0,01    1,42   15,49    0,00    0,02    0,00    0,00   78,82
10:09:07      22    4,18    0,00    1,41   15,47    0,00    0,02    0,00    0,00   78,91
10:09:07      23    3,99    0,00    1,41   15,66    0,00    0,02    0,00    0,00   78,92
10:09:07      24    5,32    0,00    0,87    7,13    0,00    0,03    0,00    0,00   86,65
10:09:07      25    7,26    0,02    1,23    8,62    0,00    0,02    0,00    0,00   82,85
10:09:07      26    6,33    0,00    1,06    6,55    0,00    0,02    0,00    0,00   86,02
10:09:07      27    6,88    0,03    1,10    8,32    0,00    0,03    0,00    0,00   83,64
10:09:07      28    6,35    0,01    1,06    7,52    0,00    0,02    0,00    0,00   85,03
10:09:07      29    6,55    0,00    1,01   11,36    0,00    0,02    0,00    0,00   81,06
10:09:07      30    6,47    0,00    0,99    8,15    0,00    0,03    0,00    0,00   84,36
10:09:07      31    6,45    0,00    1,12   21,03    0,00    0,03    0,00    0,00   71,36
10:09:07      32   10,57    0,40    1,72    9,05    0,00    0,08    0,00    0,00   78,18
10:09:07      33    5,96    0,01    0,85    7,02    0,00    0,02    0,00    0,00   86,15
10:09:07      34    3,82    0,01    0,92    7,12    0,00    0,02    0,00    0,00   88,10
10:09:07      35    5,87    0,00    0,95    8,42    0,00    0,03    0,00    0,00   84,72
10:09:07      36    1,73    0,00    0,72    1,21    0,00    0,00    0,00    0,00   96,33
10:09:07      37    4,11    0,01    1,69    1,61    0,00    0,01    0,00    0,00   92,58
10:09:07      38    2,56    0,01    1,48    1,73    0,00    0,00    0,00    0,00   94,22
10:09:07      39    2,93    0,01    1,02    1,53    0,00    0,00    0,00    0,00   94,50
10:09:07      40    1,90    0,00    0,86    1,31    0,00    0,00    0,00    0,00   95,91
10:09:07      41    1,87    0,00    0,83    1,13    0,00    0,00    0,00    0,00   96,16
10:09:07      42    1,80    0,00    0,79    1,20    0,00    0,00    0,00    0,00   96,21
10:09:07      43    1,92    0,00    0,76    1,30    0,00    0,00    0,00    0,00   96,02
10:09:07      44    1,77    0,00    0,72    1,14    0,00    0,00    0,00    0,00   96,37
10:09:07      45    1,75    0,00    0,70    1,09    0,00    0,00    0,00    0,00   96,46
10:09:07      46    1,75    0,00    0,68    1,16    0,00    0,00    0,00    0,00   96,40
10:09:07      47    2,00    0,00    0,68    1,10    0,00    0,00    0,00    0,00   96,21

가상 머신 상태

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 6 10 2278560 45860460  11968 577932    0    0   951   217    0    1  8  1 78 13  0

zpool 상태

  pool: storage
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Fri Mar 11 10:59:26 2016
    7,89T scanned out of 33,7T at 16,0M/s, 468h51m to go
    1009G resilvered, 23,43% done
config:

NAME             STATE     READ WRITE CKSUM
storage          DEGRADED     0     0     0
  raidz2-0       DEGRADED     0     0     0
    sdc          ONLINE       0     0     0
    sdd          ONLINE       0     0     0
    sde          ONLINE       0     0     0
    replacing-3  OFFLINE      0     0     0
      old        OFFLINE      0     0     0
      sdf        ONLINE       0     0     0  (resilvering)
    sdg          ONLINE       0     0     0
    sdh          ONLINE       0     0     0
    sdi          ONLINE       0     0     0
    sdj          ONLINE       0     0     0
spares
  sdk            AVAIL   
  sdl            AVAIL   

errors: No known data errors

풀 목록

NAME      SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
storage  43,5T  33,6T  9,85T         -      -    77%  1.00x  DEGRADED  -

zpooliostat

           capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
storage     33,6T  9,85T    488    124  37,1M  5,98M
storage     33,6T  9,85T    528    203  20,6M  25,0M

호 통계

6 1 0x01 91 4368 1685567518 516801482573737
name                            type data
hits                            4    617380996
misses                          4    184919553
demand_data_hits                4    347515083
demand_data_misses              4    42374865
demand_metadata_hits            4    216908143
demand_metadata_misses          4    44228265
prefetch_data_hits              4    40380612
prefetch_data_misses            4    76191344
prefetch_metadata_hits          4    12577158
prefetch_metadata_misses        4    22125079
mru_hits                        4    110301434
mru_ghost_hits                  4    66675644
mfu_hits                        4    455326805
mfu_ghost_hits                  4    55421184
deleted                         4    80153884
mutex_miss                      4    4756376
evict_skip                      4    44213146120
evict_not_enough                4    297407150
evict_l2_cached                 4    0
evict_l2_eligible               4    11649763951616
evict_l2_ineligible             4    4762036891648
evict_l2_skip                   4    0
hash_elements                   4    2318896
hash_elements_max               4    3389458
hash_collisions                 4    14240550
hash_chains                     4    148513
hash_chain_max                  4    6
p                               4    1720197302
c                               4    18401828352
c_min                           4    17179869184
c_max                           4    34359738368
size                            4    24829542936
hdr_size                        4    805709176
data_size                       4    1145901056
metadata_size                   4    7053314560
other_size                      4    15824618144
anon_size                       4    1147083264
anon_evictable_data             4    0
anon_evictable_metadata         4    0
mru_size                        4    5877126144
mru_evictable_data              4    2097152
mru_evictable_metadata          4    0
mru_ghost_size                  4    11861538816
mru_ghost_evictable_data        4    990902272
mru_ghost_evictable_metadata    4    10870636544
mfu_size                        4    1175006208
mfu_evictable_data              4    0
mfu_evictable_metadata          4    32768
mfu_ghost_size                  4    5943696896
mfu_ghost_evictable_data        4    588803072
mfu_ghost_evictable_metadata    4    5354893824
l2_hits                         4    0
l2_misses                       4    0
l2_feeds                        4    0
l2_rw_clash                     4    0
l2_read_bytes                   4    0
l2_write_bytes                  4    0
l2_writes_sent                  4    0
l2_writes_done                  4    0
l2_writes_error                 4    0
l2_writes_lock_retry            4    0
l2_evict_lock_retry             4    0
l2_evict_reading                4    0
l2_evict_l1cached               4    0
l2_free_on_write                4    0
l2_cdata_free_on_write          4    0
l2_abort_lowmem                 4    0
l2_cksum_bad                    4    0
l2_io_error                     4    0
l2_size                         4    0
l2_asize                        4    0
l2_hdr_size                     4    0
l2_compress_successes           4    0
l2_compress_zeros               4    0
l2_compress_failures            4    0
memory_throttle_count           4    0
duplicate_buffers               4    0
duplicate_buffers_size          4    0
duplicate_reads                 4    0
memory_direct_count             4    63976
memory_indirect_count           4    149390
arc_no_grow                     4    0
arc_tempreserve                 4    0
arc_loaned_bytes                4    0
arc_prune                       4    35678
arc_meta_used                   4    23683641880
arc_meta_limit                  4    34359738368
arc_meta_max                    4    34412864080
arc_meta_min                    4    16777216
arc_need_free                   4    0
arc_sys_free                    4    2109214720

나는 며칠 동안 무슨 일이 일어나고 있는지 알아내려고 노력했지만 성공하지 못했습니다. 현재는 시간이 너무 오래 걸리기 때문에 백업을 제대로 실행할 수도 없습니다.

무작위 읽기에 도움이 되도록 L2ARC에 SSD를 추가하는 것을 고려하고 있습니다(모든 쓰기가 비동기식이므로 ZIL이 도움이 될 것이라고 생각하지 않습니다). 일반적으로 메모리가 전혀 가득 차지는 않지만 메모리를 더 추가할 수도 있습니다.

나는 주로 lsof, iotop, iostat 및 top을 진단 도구로 사용해왔지만 성공하지 못했습니다. 어떤 제안이 있으십니까?

관련 정보