Am I reading the iostat command output correctly?

# rpm -qf `which iostat`sysstat-11.7.3-6.el8.x86_64
# cat /proc/diskstats259       0 nvme1n1 147 0 6536 2888 0 0 0 0 0 798 2888 0 0 0 0259       1 nvme0n1 33608 16 1588184 382879 2001 376 142595 20368 0 195069 403248 0 0 0 0259       2 nvme0n1p1 41 0 328 402 0 0 0 0 0 331 402 0 0 0 0259       3 nvme0n1p2 33524 16 1585472 382298 2001 376 142595 20368 0 195013 402667 0 0 0 0
  • If you run iostat without option where 1 is Interval(amount of time between each report)and 2 Count(number of report generated)
  1. If you don’t specify the count it will run forever.
  2. The first output is average from boot until now. So its good idea to ignore it. So we are mostly interested in 2nd and all the subsequent output.
  • Device: It’s name of partition or device listed under /dev directory
  • tps: Transaction per second is the number of I/O requests which is issued to the device per second.
  • kB_read/s/kB_wrtn/s: It’s the number of 512b sectors read/write from the device per second.
  • Blk_read/Blk_write: It’s the number of 512b sectors read/written in the sample
  • the ratio of read/write command
  • average size of read/write request
  • how long each I/O is taking
  • how busy the device is
  • -t timestamp in every sample
  • -x extended information
  • -k to get the more human friendly output(-m is for megabyte)
  • -p is to get the per partition breakout
  • Device: It’s name of partition or device listed under /dev directory
  • r/s,w/s: These are the number of request read/write after merge that is completed by device/storage per second.Remember this account for completed I/O not any I/O which is waiting to be processed at disk level or scheduler.
  • rkb/s,wkb/s: These are the number of kilobytes transferred between the host and storage/device per second
  • rrqm/s,wrqm/s: The number of read/write requests merged per second that were queued to the device
  • %rrqm,%wrqm: The percentage of read/write requests merged at ioscheduler before sent to the device.
cat /sys/block/nvme0n1/queue/scheduler[none] mq-deadline kyber bfq
/sys/block/nvme0n1/queue/nr_requests

--

--

--

AWS Community Builder, Ex-Redhat, Author, Blogger, YouTuber, RHCA, RHCDS, RHCE, Docker Certified,4XAWS, CCNA, MCP, Certified Jenkins, Terraform Certified, 1XGCP

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Hero to Zero

AWS Lambda Best Practices

Content-Creator or Software Engineer, Which One Is Better?

Applying SOLID Design Principles

Shocker | HackTheBox writeup

MySQL: Testing isolation levels

Why I decided to learn Software Engineering:

Help us Rename MeterSwap!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Prashant Lakhera

Prashant Lakhera

AWS Community Builder, Ex-Redhat, Author, Blogger, YouTuber, RHCA, RHCDS, RHCE, Docker Certified,4XAWS, CCNA, MCP, Certified Jenkins, Terraform Certified, 1XGCP

More from Medium

SRE/DevOps Interview Questions — Tooling — Part 1

Linux — How to Evaluate Network Performance?

Breaking Down DevOps

Kubernetes Volumes — INTRODUCTION