Just realized I did not post any notes about dim_STAT CoreUpdates during the last 3 years, so will try to fix it now with the following short summary ;-))
Read more... (2 min remaining to read)
Just realized I did not post any notes about dim_STAT CoreUpdates during the last 3 years, so will try to fix it now with the following short summary ;-))
Read more... (2 min remaining to read)
I work on weird and challenging performance issues in the cloud, often deep inside the operating system kernel. These have made for some interesting blog posts in the past, but there’s a lot more I don’t have time to share in that much detail. Here, I’ve summarized ten recent issues that myself and the other engineers at Joyent have worked on. I’d love to see similar summaries from other performance experts worldwide – it’s useful to see the types of issues people are working on and the tools they are using.
# | Target … |
---|
Disk I/O is still a common source of performance issues, despite modern cloud environments, modern file systems and huge amounts of main memory serving as file system cache. Understanding how well that cache is working is a key task while investigating disk I/O issues. In this post, I’ll show the activity of the ZFS file system Adaptive Replacement Cache (ARC).
There are often more statistics available than you realize (or have been documented), which may certainly be true with the ARC. Apart from showing these statistics, I’ll also show how to extend observability using dynamic tracing (DTrace). These tracing techniques are also applicable to any kernel subsystem. This is an advanced topic, where I’ll sometimes dip into kernel code.
Architecture
For background on the ZFS ARC, see the paper ARC: A Self-Tuning, Low Overhead …
[Read more]To follow on to my earlier links to Brendan Gregg’s blog posts on measuring I/O latency, there is a third one discussing DTrace, and then a very detailed response from Mark Leith showing how to do it with the PERFORMANCE_SCHEMA in MySQL 5.5.
Related posts:
Ok, so this site (and some other stuff) is now running on OpenSolaris. The previous previous article was mostly a test entry for me to see whether the DNS update was through but as some people wonder why I'm using this system that "fails while trying to copy Linux" I decided to discuss some of the reasons in more detail.
Some people already know that my main system meanwhile runs OpenSolaris. The reason there is DTrace - a great way to see what the system, from the kernel, over userspaces programs, into a VM like the JVM or PHP's Zend VM, ... is doing which is a big help while debugging and developing applications. Even though DTrace is meant to do such analysis on live machines this wasn't the main …
[Read more]
This is the first of our weekly news catch-up and covers Nov 1 to Nov 11, 2009. This week the news catch-up is partial; next week I'll create the entry through the week and will try to be more comprehensive. This week we also cover old news on JRuby and OSGi. |
GlassFish and Middleware News
Alta Elsta & I just completed the DTrace Quick Start
Guide: Observing Native and Web Applications in
Production mini-book. If you need a hardcopy let me know
but if you are like me and would love to save a few trees you can
click on the picture below to download the pdf version.
We talk about why DTrace is so different from any observation
tools you may have seen. We cover basic DTrace concepts and some
details on writing d-scripts. We also have a lot of sample
scripts. Sections on using DTrace to observe MySQL and Drupal are
included.
The examples from the book have also been added to a wiki page for easier copy & paste.
…
[Read more]Sometimes we have a lots of small and rather fast queries which use group by/order by, thus creating temporary tables. Some of those queries are retrieving text fields and mysql have to use disk (myisam) temporary tables. Those queries usually run for less than 1-2 seconds, so they did not get into slow query log, however, they sometimes add serious load on the system.
Here is the stat example:
bash-3.00$ /usr/local/mysql/bin/mysqladmin -uroot -p -i 2 -r extended-status|grep tmp_disk ... | Created_tmp_disk_tables | 109 | | Created_tmp_disk_tables | 101 | | Created_tmp_disk_tables | 122 | ...
40-50 tmp_disk_tables created per second
So, how can we grab those queries? Usually we have to temporary enable general log, filter out queries with “group by/order by” and profile them all. On solaris/mac we can use dtrace instead.
Here is the simple script, …
[Read more]I was recently helping some colleagues check what was happening with their MySQL queries, and wrote a DTrace script to do it. Time to share that script.
First of all, a look at some output from the script:
mashie[bash]# ./querystat.d -p `pgrep mysqld` Tracing started at 2009 Sep 17 16:28:35 2009 Sep 17 16:28:38 throughput 3 queries/sec 2009 Sep 17 16:28:41 throughput 4 queries/sec 2009 Sep 17 16:28:44 throughput 528 queries/sec 2009 Sep 17 16:28:47 throughput 1603 queries/sec 2009 Sep 17 16:28:50 throughput 1676 queries/sec ^C Tracing ended at 2009 Sep 17 16:28:51 Average latency, all queries: 107 us Latency distribution, all queries (us): value ------------- Distribution ------------- count 16 | 0 32 |@@ 170 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ … |
I was recently helping some colleagues check what was happening with their MySQL queries, and wrote a DTrace script to do it. Time to share that script.
First of all, a look at some output from the script:
mashie[bash]# ./querystat.d -p `pgrep mysqld` Tracing started at 2009 Sep 17 16:28:35 2009 Sep 17 16:28:38 throughput 3 queries/sec 2009 Sep 17 16:28:41 throughput 4 queries/sec 2009 Sep 17 16:28:44 throughput 528 queries/sec 2009 Sep 17 16:28:47 throughput 1603 queries/sec 2009 Sep 17 16:28:50 throughput 1676 queries/sec \^C Tracing ended at 2009 Sep 17 16:28:51 Average latency, all queries: 107 us Latency distribution, all queries (us): value ------------- Distribution ------------- count 16 | 0 32 |@@ 170 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ … |