ดังนั้นฉันจึงขยายหนึ่งในตัวอย่างเหล่านี้เพื่อทดสอบตัวเอง ขั้นตอนของฉันแตกต่างกันเพียงเล็กน้อย:
- แบ่งพาร์ติชันดิสก์ก่อนโดยใช้
แยกทาง
- สร้างระบบไฟล์
- ติดที่
/เลือก
เช่น /บ้าน
อยู่ที่นั่นแล้วและมีโฮมไดเร็กตอรี่ของผู้ใช้ของฉันอยู่ใน (อูบุนตู
).
ปรับปรุง apt && อัพเกรด apt
จากนั้นทำการติดตั้ง ฟิโอ
- รันคำสั่งเดียวกับคุณ:
fio -direct=1 -ioความลึก=1 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Read_Testing
จากภายใน /เลือก
, กับ ซูโด
.
ฉันได้ผลลัพธ์ที่คล้ายกันกับ อ่าน: IOPS=7147
.
จากนั้นฉันก็ทำการทดสอบอีกครั้ง:
/opt$ sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --ioความลึก=64 --size=8G --readwrite=randrw --rwmixread=75
การทดสอบ: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, ioความลึก=64
ฟิโอ-3.16
เริ่มต้น 1 กระบวนการ
fiotest: การวางไฟล์ IO (1 ไฟล์ / 8192MiB)
งาน: 1 (f=1): [m(1)][100.0%][r=332MiB/s,w=109MiB/s][r=85.1k,w=28.0k IOPS][eta 00m:00s]
fiotest: (groupid=0, งาน=1): err= 0: pid=26470: จ. 31 ม.ค. 09:14:45 น. 2565
อ่าน: IOPS=91.5k, BW=357MiB/s (375MB/s)(6141MiB/17187msec)
bw ( KiB/s): นาที=339568, สูงสุด=509896, ต่อ=100.00%, เฉลี่ย=366195.29, stdev=59791.96, ตัวอย่าง=34
iops : นาที=84892, สูงสุด=127474, เฉลี่ย=91548.82, stdev=14947.99, ตัวอย่าง=34
เขียน: IOPS=30.5k, BW=119MiB/s (125MB/s)(2051MiB/17187msec); 0 โซนรีเซ็ต
bw ( KiB/s): นาที=111264, สูงสุด=170424, ต่อ=100.00%, เฉลี่ย=122280.71, stdev=20225.33, ตัวอย่าง=34
iops : นาที=27816, สูงสุด=42606, เฉลี่ย=30570.18, stdev=5056.32, ตัวอย่าง=34
ซีพียู : usr=19.73%, sys=41.60%, ctx=742611, majf=0, minf=8
ความลึก IO : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
ส่ง : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
สมบูรณ์ : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
ออก rwts: รวม = 1572145,525007,0,0 สั้น = 0,0,0,0 ลดลง = 0,0,0,0
เวลาแฝง : เป้าหมาย = 0, หน้าต่าง = 0, เปอร์เซ็นต์ไทล์ = 100.00%, ความลึก = 64
รันสถานะกลุ่ม 0 (งานทั้งหมด):
อ่าน: bw=357MiB/s (375MB/s), 357MiB/s-357MiB/s (375MB/s-375MB/s), io=6141MiB (6440MB), run=17187-17187msec
เขียน: bw=119MiB/s (125MB/s), 119MiB/s-119MiB/s (125MB/s-125MB/s), io=2051MiB (2150MB), run=17187-17187msec
สถิติดิสก์ (อ่าน/เขียน):
nvme1n1: ios=1563986/522310, merge=0/0, ticks=927244/24031, in_queue=951275, util=99.46%
...ซึ่งดูดีกว่ามาก - อ่าน: IOPS=91.5k
.
ฉันสงสัยว่าเป็นเพราะการทดสอบแบบอ่านอย่างเดียวทำงานอย่างไร หรือความแตกต่างเล็กน้อยในการอ่านดิสก์ที่คุณเปิดอยู่ และข้อจำกัดอื่นๆ
ฉันทำการทดสอบอีกสองสามครั้งและได้ผลลัพธ์ที่คล้ายกันในแต่ละครั้ง
จากนั้นฉันรันการทดสอบแบบอ่านอย่างเดียวอีกครั้งโดยใช้คำสั่งจาก ที่นี่และได้รับสิ่งนี้:
/opt$ sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=fiotest --filename=testfio --bs=4k --ioความลึก=64 --size=8G --readwrite=randread
การทดสอบ: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, ioความลึก=64
ฟิโอ-3.16
เริ่มต้น 1 กระบวนการ
งาน: 1 (f=1): [r(1)][100.0%][r=332MiB/s][r=85.1k IOPS][eta 00m:00s]
fiotest: (groupid=0, งาน=1): err= 0: pid=26503: จ. 31 ม.ค. 09:17:57 น. 2565
อ่าน: IOPS=88.6k, BW=346MiB/s (363MB/s)(8192MiB/23663msec)
bw ( KiB/s): นาที=339560, สูงสุด=787720, ต่อ=100.00%, เฉลี่ย=354565.45, stdev=72963.81, ตัวอย่าง=47
iops : นาที=84890, สูงสุด=196930, เฉลี่ย=88641.40, stdev=18240.94, ตัวอย่าง=47
ซีพียู : usr=15.37%, sys=31.05%, ctx=844523, majf=0, minf=72
ความลึก IO : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
ส่ง : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
สมบูรณ์ : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
ออก rwts: รวม = 2097152,0,0,0 สั้น = 0,0,0,0 ลดลง = 0,0,0,0
เวลาแฝง : เป้าหมาย = 0, หน้าต่าง = 0, เปอร์เซ็นต์ไทล์ = 100.00%, ความลึก = 64
รันสถานะกลุ่ม 0 (งานทั้งหมด):
อ่าน: bw=346MiB/s (363MB/s), 346MiB/s-346MiB/s (363MB/s-363MB/s), io=8192MiB (8590MB), run=23663-23663msec
สถิติดิสก์ (อ่าน/เขียน):
nvme1n1: ios=2095751/1, merge=0/0, ticks=1468160/0, in_queue=1468159, util=99.64%
ประสิทธิภาพการอ่านที่ดีขึ้นมาก ฉันสงสัยว่าอาร์กิวเมนต์ที่คุณให้คำสั่งไม่อนุญาตให้การทดสอบได้รับประสิทธิภาพที่ดีที่สุดจากดิสก์ อาจเป็นเพราะขนาดบล็อก ขนาดไฟล์ ฯลฯ ฉันสังเกตเห็นว่าอาร์กิวเมนต์ทั้งหมดเป็นอาร์กิวเมนต์แบบเส้นประเดียว (เช่น -bs=4k
) ไม่เป็นสองเท่า (--bs=4k
) ดังนั้นพวกเขาอาจแยกวิเคราะห์ไม่ถูกต้องด้วยซ้ำ...