time
เป็นคำสั่งที่ยอดเยี่ยมถ้าคุณต้องการที่จะคำนวณเวลาของ CPU ที่คำสั่งที่ได้รับ
ฉันกำลังมองหาสิ่งที่คล้ายกันซึ่งสามารถวัดดิสก์ I / O ของโปรแกรมและลูก ๆ ควรแยกความแตกต่างระหว่าง I / O ที่แคช (และไม่ทำให้ดิสก์หมุน) และ I / O ที่ไม่ได้แคช
ดังนั้นฉันต้องการทำ:
iomeassure my_program my_args
และรับเอาต์พุตคล้ายกับ:
Cached read: 10233303 Bytes
Cached write: 33303 Bytes # This was probably a tmp file that was erased before making it to the disk
Non-cached read: 200002020 Bytes
Non-cached write: 202020 Bytes
ผมมองที่vmstat
, iostat
และsar
แต่ไม่มีของเหล่านี้กำลังมองหาที่ขั้นตอนเดียว แต่พวกเขาดูที่ระบบทั้งหมด
ฉันได้ดูiotop
แล้ว แต่นั่นทำให้ฉันได้เห็นทันที
--- แก้ไข ---
คำตอบของ snap ดูเหมือนใกล้
'อินพุตระบบไฟล์:' คือการอ่านที่ไม่แคชในบล็อก 512- ไบต์
'เอาต์พุตระบบไฟล์:' คือการเขียนแคชในบล็อก 512- ไบต์
คุณสามารถบังคับให้แคชว่างด้วย:
sync ; echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null
ฉันทดสอบด้วย:
seq 10000000 > seq
/usr/bin/time -v bash -c 'perl -e "open(G,\">f\"); print G <>;close G; unlink \"f\";" seq'