จากบทความที่แล้ว ได้พูดถึงการปรับ limit ZFS ARC ส่วนบทความนี้จะเป็นการ tuning performance หลังจากใช้งาน ZFS Storage แล้วเจอปัญหาหลักๆคือ เรื่องใช้งาน IO สูงผิดปกติ จนตัว Proxmox ค้างบ่อยครั้ง
ถ้าติดตั้ง Proxmox ด้วยระบบ ZFS จะมี pool เริ่มต้นมาให้คือ rpool ซึ่งเราจะสามารถใช้งานได้ทั้ง local และ local-zfs สำหรับเป็น storage vm, container
zfs list
เรียกดู list NAME USED AVAIL REFER MOUNTPOINT rpool 27.8G 29.4G 96K /rpool rpool/ROOT 11.5G 29.4G 96K /rpool/ROOT rpool/ROOT/pve-1 11.5G 29.4G 11.5G / rpool/data 16.2G 29.4G 112K /rpool/data
result zfs list
Tuning Performance ZFS
- compression = lz4
- atime = off
- xattr = sa
- recordsize = 16K - 64K
- volblocksize = 16k - 64k
compression แนะนำเป็น lz4 จะใช้งาน cpu นิดนึง
zfs set compression=lz4 rpool
zfs get compression rpool
คำสั่งเรียกดู compression atime แนะนำเป็น off ระบบไม่ update time ทุกครั้งที่มีการอ่านไฟล์
zfs set atime=off rpool
zfs get atime rpool
คำสั่งเรียกดู get atime xattr แนะนำเป็น sa (System Attributes) โดย attributes จะถูกเก็บไว้ใน inodes
zfs set xattr=sa rpool
zfs get xattr rpool
คำสั่งเรียกดู get xattr recordsize ค่าเริ่มต้นของ proxmox คือ 128K แนะนำปรับอยู่ในช่วง 16K - 64K ซึ่งจะมีผลดีต่อความเร็ว IOPs ของการ random reads และ writes
zfs set recordsize=64K rpool
zfs get recordsize rpool
คำสั่งเรียกดู recordsize
สุดท้ายคือ volblocksize เข้าไปที่ Proxmox UI (Datacenter -> Storage -> local-zfs -> Edit) โดยค่าเริ่มต้นอยู่ที่ 8k แนะนำปรับอยู่ในช่วง 16k - 64k และติ๊ก
Thin provision
สำหรับ vm ที่เคยติดตั้งไปแล้ว จะโดนใช้ค่า volblocksize=8k (default) ต้องทำการติดตั้ง vm ใหม่ หรือใช้วิธี backup vm แล้วค่อย restore กลับมาก็ได้เหมือนกัน
zfs get volblocksize
คำสั่งเรียกดู volblocksize NAME PROPERTY VALUE SOURCE rpool volblocksize - - rpool/ROOT volblocksize - - rpool/ROOT/pve-1 volblocksize - - rpool/data volblocksize - - rpool/data/vm-101-disk-0 volblocksize 64K - rpool/data/vm-101-disk-1 volblocksize 64K -
result volblocksize หลังจากปรับจูน ZFS ตอนนี้ไม่เจอปัญหา IO สูง จนทำให้ Proxmox ค้างอีกเลย ข้อมูลทั้งหมดจากประสบการณ์ล้วนๆ อาจจะไม่ถูกต้อง 100% สามารถอ่านเพิ่มเติมได้จากข้างล่าง