2023年7月30日 星期日

調整mdadm的software RAID5, 6的效能

用mdadm做了兩個磁碟陣列,為了解釋方便用md5, md6來說明:
  • /dev/md5:是個software RAID-5的磁碟陣列
  • /dev/md6:是個software RAID-6的磁碟陣列
這種用mdadm做出來的software RAID可以透過下列方式來調整效能

I. 調整 /etc/sysctl.conf 系統參數

調整系統核心參數 dev.raid.speed_limit_*,用下面指令來看當下的數值:

  • sysctl dev.raid.speed_limit_min
  • sysctl dev.raid.speed_limit_max
  • ls /proc/sys/dev/raid/ && cat /proc/sys/dev/raid/speed_limit_{min,max}

第三個指令是sysctl存放在/proc下的資訊,要做設定的話設定檔在 /etc/sysctl.conf,也可以用指令來設定:

  • sudo sysctl -w dev.raid.speed_limit_min=50000
  • sudo sysctl -w dev.raid.speed_limit_max=5000000


II. 設定磁碟陣列的readhead

  • blockdev --getra 65536 /dev/mdX

X是磁碟陣列的數字。blockdev給的單位是512-byte,所以調整到32MiB用下面指令:

  • sudo blockdev --setra 65536 /dev/md5
  • sudo blockdev --setra 65536 /dev/md6


III. 調整mdadm的快取大小,只有對RAID-5或是6有用

相關設定存放在 /sys/block/mdX/md/stripe_cache_size,其中X是數字。預設值是256,可以在17到32768之間調整。單位是KiB,下面是調整到16MiB的指令:

  • sudo sh -c 'echo 8192 > /sys/block/md5/md/stripe_cache_size'
設定完之後可以用下面指令實時的監控系統的磁碟陣列用到的快取大小:
  • watch -n 1 cat /sys/block/md5/md/strive_cache_active

快取的大小可以用下列三個因素相乘來決定,設定不要超過記憶體大小:

  1. system_page_size:用 getconf PAGE_SIZE 來取得,預設4096
  2. nr_disks:non-redundant磁碟的數量
  3. stripe_cache_size:上面說到的快取大小

例如說 4096*01*8 MiB = 32,768 MiB ≈ 32 GB。


檢查mdadm softwareRAID的效能

要看目前系統上的software RAID與re-sync的資訊,用下列指令

  • cat /proc/mdstat
  • watch -n 1 cat /proc/mdstat

另外可以用iostat來看目前RAID與相關硬碟的狀態:

  • iostat -m 1 sd{c..j} md5
  • iostat -mtx 1 sd{c..j} md5


參考資料

_EOF_

Aquatint of a landscape of a Sexy desktop wallpaper from inside of Gotham, at Sunset, Peaceful, Gadgetpunk, MOBA style, absurdres, highly detailed, art by Jonas De Ro, perfection, masterpiece

Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 3101387178, Size: 512x256, Model hash: 6ce0161689, Model: v1-5-pruned-emaonly, Version: v1.6.0-2-g4afaaf8a

Time taken: 5 min. 3.8 sec.
A: 3.35 GB, R: 3.42 GB, Sys: 2.0/2 GB (100.0%)

沒有留言:

張貼留言