Linux Delay Accounting

Linux Delay Accounting

Ever wondered how long is your program spending while waiting for I/O to finish? Or if it is spending lots of time while waiting for a turn to run on one of the CPUs? Linux provides delay accounting information that may help to answer questions like these and we are going to see how they work in this talk!

B39c757b2a5fdbdec05a65e882dd07eb?s=128

André Carvalho

August 30, 2018
Tweet

Transcript

  1. 3.

    Our code runs alongside 3 1. Daemons 2. Agents 3.

    Kernel Threads 4. Other apps 5. ... @andresantostc
  2. 4.

    Tasks may encounter delays in execution waiting for Kernel resources

    4 @andresantostc Process Hey Mr. Kernel, I’m ready to run, sir. Kernel Wait in line, please.
  3. 6.

    Linux Delay Accounting • Linux exposes delays encountered by tasks(threads/processes)

    ◦ waiting for a CPU (while being runnable) ◦ completion of synchronous block I/O ◦ swapping in pages ◦ memory reclaim • Can be used to ◦ Analyze system saturation ◦ Configure task priorities • Available since Kernel 2.6.18 (we are at 4.18) • Recently added to htop (https://github.com/hishamhm/htop) 6 @andresantostc
  4. 7.

    • Via Netlink interface (taskstats) • Example code on the

    Linux source (tools/accounting/getdelays.c) ◦ Example using higher level library (https://github.com/andrestc/linux-delays) • Requires root or CAP_NET_ADMIN 7 @andresantostc