Alice, Bob And Their Race To Disk-Haven

Note: most images in these slides are courtesy of Liam Quin's "Alice adventures in wonderland" and his Through the looking glass pages.

Alice's Adventures In Wonderland - A Partial Recap

Alice's Adventures In Wonderland - A Partial Recap - Cont.

Meet Alice - the 16KB "write" that could

Alice goes down the Rabbit hole

Alice wants to pass through the small door

Little Alice joins the (page-cached) Caucus race

Little Alice going down the (disk) elevator

Little Alice grows again - the I/O scheduler dance

Example of "iostat" output

Big Alice plays the disk Crockett - the basic elevator algorithm

Original Alice Stands to Trial - ERR_SUCCESS or ERR_IO?

Mad Hatter testifies - the small bio-s joining in

Original Alice wakes up from her write-full dream

Ecila - the "read" that came back from the cold

Through The Looking Glass - A Partial Recap

Through The Looking Glass - A Partial Recap - Cont.

Ecila passes through the looking glass

Ecila meets the red queen and (page-cachely) runs nowhere

What's in my cache?

Ecila meets the White Knight and goes to gather herself

Ecila and Humpty Dumpty have a great elevated fall

Ecila meets Twiddledee and Twiddledum - and sends them ahead

Tuning device-level read-ahead

Ecila comes back through the mirror

File-Systems and meta-data I/O

Directory hierarchy traversal and the dentry cache

File heads and the inode cache

File Blocks And File Extents

File-System Journaling

Bob - the raw-"write"-er

Bob goes into I/O land

To cache or not to cache - that is the D(irect) question

What if Bob was sync(ing) harder?

boB - the reader from the "raw"

boB goes catching some ride

boB the cached Vs. boB the direct

Alice and Bob go picking an elevator

The "noop" elevator - quick and noisy

The "CFQ" elevator - "no room! no room! (at the tea party)"

I/O Priority Using "ionice"

The "deadline" elevator - "I'm late! I'm late! I'm late!"

The "anticipatory" elevator - "If you build it - they will come"

I/O and the court of law

Cartman (from South-park) looking for his father...

Why is it so hard to perform per-process I/O accounting

/proc/<pid>/io and iotop

The I/O law of fatherhood

References

  1. The Linux Page Cache and pdflush: Theory of Operation and Tuning for Write-Heavy Loads - http://www.westnet.com/~gsmith/content/linux-pdflush.htm
  2. Page Cache, the Affair Between Memory and Files - http://duartes.org/gustavo/blog/post/page-cache-the-affair-between-memory-and-files
  3. "fcoretools" source package in Ubuntu - https://launchpad.net/ubuntu/+source/fcoretools/1.0-1
Originally written by Valid HTML 4.01!guy keren