TL;DR

  • Writeback is innocent. It ensures data consistency and free up memory for other tasks. Understand it then it will pay you back.
  • Unfortunately, sometimes writeback can be the root cause that triggers other things that may affect your very latency-sensitive application: TLB shootdown, high context-switches, stable pages write.
  • Writeback itself rarely has a direct impact on your application. It does not block your write. Dynamic throttling mechanism does.
  • Writeback can be an indicator of performance issues, for example, memory saturation or heavy disk IO due to over-syncing data.


I promised my team to publish a blog post within last week, to actually meet our humble target for public blog posts last quarter ( We’re trying to write more but are all lazy ). This should be an article to continue my tracing series or a new finding about how dirty page write back affects our latency sensitive java app recently, but it ended up like this. You can call this a short prose about sysadmin’s life.

The idea of a calm sysadmin came from the last afternoon of 2020, when everybody slowed down to enjoy the last day…


Recently I had a presentation for my team about bpftrace, what i think it’s very cool. Turns out that nobody likes it. Mostly because of my presentation skill, i guess. Though, the biggest question was asked is why.

Why do i need this thing ?

It’s cool, but it takes effort to learn some “low level things” , why should i do that ?

And I also asked myself, why do i want to share this with everybody ?

This is not a technical post. This is a story.

“What will you do if this service is broken ? you CALL ME”

My developer fellow yielded at me on our skype group. When…


Preface

Linux tracing is kind of new buzz word these days in performance analysis area. But IMHO the word “tracing” is just a catchy common word that represents 2 methods for collecting events or records for code execution: profiling and event tracing.

In this article, I’ll explain those 2 concepts with examples using bpftrace and perf.

This is the second article in my practical Linux tracing series, see the first one here. As people complain about the long previous post, I’ll keep this short.

Profiling

Profiling is a method for collecting events by sampling or taking snapshots of a whole big object…


Disclaimer

I’m not a professional tracer. What you are going to see here are the results of my adventure so far with Linux tracing tools. I’m still learning them everyday.

Most of the background concepts you’ll see are simplified, may be over simplified to let us understand them more easily so we can focus on the main purpose: to know what our system is doing. The complicated concepts will be explained by references from other professional guys who knows it much better than i do.

I’ve been strongly inspired by Brendan D. Gregg since years ago so don’t be surprised…

Tungdam

Sysadmin. Amateur Linux tracer. Performance enthusiast.

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