ในตอนสุรปนี้ จะเพิ่มผลลัพธ์จากการรันคำสั่ง sysbench เพื่อทดสอบ fileio ทั้งการอ่านและเขียนไฟล์แบบ sequential, random
ก่อนการรัน sysbench เพื่อทดสอบ ต้องสร้างไฟล์ (prepare) ใน mount point ของ filesystem ที่ต้องการทดสอบ เช่นถ้า mount ไว้ที่ /mnt/lv0/ ต้อง cd เข้าไปในพาธนี้แล้วรันคำสั่ง
[root@fc10-disk ~]# cd /mnt/lv0/ [root@fc10-disk lv0]# sysbench --test=fileio prepare
Sequential Read test (seqrd) รันคำสั่ง
[root@fc10-disk ~]# sysbench --test=fileio --file-test-mode=seqrd run
Sequential Write test (seqwr) รันคำสั่ง
[root@fc10-disk ~]# sysbench --test=fileio --file-test-mode=seqwr run
Random Read test (rndrd) รันคำสั่ง
[root@fc10-disk ~]# sysbench --test=fileio --file-test-mode=rndrd run
Random Write test (rndwr) รันคำสั่ง
[root@fc10-disk ~]# sysbench --test=fileio --file-test-mode=rndwr run
ผลลัพธ์การรันคำสั่ง dd ในตอนที่ผ่านมา จะใกล้เคียงกับการรัน Sequential Write test
ตารางสรุปผลการทดสอบ
/dev/sdc1 | /dev/sdd1 | mdadm linear | mdadm stripe | LVM linear | LVM stripe | |
xfs (blocks) | 195,263,012 | 195,263,012 | 390,585,600 | 390,585,344 | 390,578,176 | 390,577,152 |
dd (MB/s) | 52.00 | 47.10 | 52.70 | 96.50 | 51.80 | 94.80 |
seqrd (MB/s) | 58.08 | 60.71 | 57.71 | 115.78 | 58.22 | 104.64 |
seqrw (MB/s) | 43.76 | 38.96 | 46.89 | 85.04 | 47.92 | 84.15 |
rndrd (MB/s) | 3.92 | 3.96 | 3.92 | 4.34 | 3.97 | 4.31 |
rndwr (MB/s) | 0.61 | 0.69 | 2.88 | 2.08 | 2.91 | 2.08 |
คงไม่สรุปใดๆ ทั้งสิ้น เกี่ยวกับผลลัพธ์ที่ได้ ว่าคอนฟิก mdadm หรือ lvm เร็วกว่ากัน เพราะตัวเลขออกมาใกล้เคียงกัน อีกทั้งการทดสอบนี้ อาจไม่ตรงกับหลักการทางสถิติ เช่น ทดลองรันไม่กี่ครั้ง หรือในขณะที่รันทดสอบอาจมี process อื่นๆ ในเครื่องรันขึ้นมาทำงาน (ทั้งๆ ที่พยายามลดให้เหลือน้อยที่สุดแล้ว) และด้วยคุณสมบัติของ mdadm และ LVM ที่แตกต่างกัน ทางเลือกคงขึ้นอยู่กับลักษณะการใช้งานของแต่ละเครื่องว่าเป็นอย่างไร …
แต่…ถ้าให้เลือก ความเห็นส่วนตัว ผมเลือก LVM ครับ ;)
lvm มันทำ stripe ไม่ได้กรณีที่ pv เหลือพื้นที่ไม่เท่ากัน ตัวอย่างที่ผมเจอคือ มี HDD 3 ตัว ตัวแรกก็ลง root ไปปรกติ เหลือ พื้นที่ว่างแล้วค่อยมาทำ pv (sda3) ส่วนอีก 2 ลูก ก็ทำ pv หมด (sdb1,sdc1) พอจะเอามา stripe 3 ลูกเพื่อความเร็วมันไม่ยอม ได้แค่ 2 (ตอน lvcreate ไม่ error แต่ขนาดที่มันยอมให้ทำคือ 2 ลูกหลังรวมกัน)
ส่วน mdadm ไม่มีปัญหาอะไร