Ewen and I have just published Percona’s latest white paper, Forecasting MySQL Scalability with the Universal Scalability Law. This is essentially a streamlined walk-through of Dr. Neil J. Gunther’s book Guerrilla Capacity Planning, with examples to show how you can apply it to MySQL servers.

One thing alluded to in the paper is extracting the necessary metrics from network traffic. I had this idea after studying the data in Linux’s /proc/diskstats file. It turns out that two simple metrics can provide amazingly rich insight into system performance and scalability, in combination with Little’s Law and queueing theory. These are the busy time and the total time that requests were resident in the system. There are different terms for the latter, but in MySQL we’d call it query response time. After studying these for a few months, I’m so awed by how useful they are that I am going to make a blanket recommendation: if you create server software, you must expose these simple metrics. (I have filed a feature request for Percona Server to add these metrics for MySQL users.)

I’ll probably follow this up with another blog post or white paper at some point in the future, to show how to use the busy time and query response time to predict a system’s scalability.

6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Cary Millsap

Amen, Baron. Amen.

Mark Callaghan

Thank you for writing this. I have learned a lot from Percona.

vegivamp

Sounds damn interesting. Printing as we speak 🙂

Shahryar Ghazi

good job!

Prajakta Bhatt

Hi Baron, Your first paper – Forecasting MySQL Scalability with the Universal Scalability Law was really very interesting. I actually read it first, before dwelling into Guerilla Capacity book for detailed information on USL. Is your second paper on applying USL to Network traffic out? I got to see you gave one session on – Extracting Scalability and Performance Metrics from TCP Traffic in Surge Conference 2011. Is there any place where can I get the paper/presentation you made to demonstrate?
Please let me know.

Thanks in advance.
~Prajakta