Few weeks ago I asked my friends who speak both English and
Russian if it is worth translating slides about Performance
Schema which I prepared for a seminar at Devconf 2013. They
said it is. Today I finished translation and uploaded slides to
SlideShare.
Strictly speaking simple translation of slides is not enough,
because they were created for the seminar where I was going to
explain what they mean. I think I need to repeat same seminar,
this time in English language. But if you have rough imagination
about what Performance Schema is and need hints for practical use
you will find such suggestions in the slides. You will also find
ready-to-use queries which you can use to troubleshoot most
frequent performance issues.
Enjoy!
MySQL is very popular and growing on the Windows platform. As a consequence we want to further staff our Windows efforts with a full time Windows performance architect. The Windows performance architect will be an integral part of the MySQL Server development team and also work closely with our Windows Experience team. Work will be centered around profiling and tuning large multi-threaded service applications on the Windows platform, debug and remove limitations and develop new code.
Key qualifications are:
- 5+ years C/C++ software development experience on Windows platform
- Ability to understand large pieces of code fast
- Strong understanding of long running programs (for example Operating System Kernels, Filesystems, high end networking equipment)
- Strong understanding of multi-threaded service applications
- Proven skills in designing and coding complex environments …
Today’s blog post starts with a question:
“In my continuous integration environment, running tests
currently takes 30 minutes. I
believe that a large percentage of time is spent in MySQL, and I
want to know if putting MySQL
on tmpfs will cut that time down?”.
I have previously written about how to configure MySQL to be less durable in testing environments, but today I wanted to write about how we can really test the assumption that the question is based around. That is to say:
- We know that total time is 30 minutes.
- We assume MySQL is a large percentage of this.
- We know that this optimization will potentially allow us to avoid IO.
- We then want to know what amount of time MySQL spends waiting on IO during our test suite?
And the answer to …
[Read more]Following on from my earlier 10 performance wins post, here is another group of 10 I have worked on.
# | Target | Analyzed | Key Tool | Fixed | Specific | Improvement |
---|---|---|---|---|---|---|
11 | redis | System | DTrace | System | scheduler | 41% |
12 | rsync | System | DTrace | Application | app config | 5x |
13 | mongoperf … |
I have just implemented MASTER_GTID_WAIT() in MariaDB 10.0. This can be used to give a very elegant solution to the problem of stale reads in replication read-scaleout, without incuring the overheads normally associated with synchronous replication techniques. This idea came up recently in a discussion with Stephane Varoqui, and is similar to the concept of Lamport logical clock described in this Wikipedia article.
I wanted to describe this, hoping to induce people to test and maybe start using this, as it is a simple but very neat idea, actually.
A very typical use of MariaDB/MySQL …
[Read more]In MySQL, filesort is the catch-all algorithm for producing sorted results for ORDER-BY or GROUP-BY queries. MySQL has two algorithms for filesort, both the original and the modified algorithms are described in the user manual. The most commonly used algorithm is the so called modified algorithm, it is used for all cases except when BLOB and TEXT column are involved.
In 5.7.3, Tor Didriksen in the optimizer team introduced one more optimization that applies to the modified algorithm. Let us first take a look at how MySQL´s modified filesort algorithm worked up to 5.7.2.
- Read the rows that match the WHERE clause.
- For each row, record a tuple of values consisting of the sort key value and the additional fields referenced by the query.
- When the sort buffer becomes full, sort the tuples …
At FOSDEM 2014 ProxySQL and MaxScale were both presented. Both are proxy that can help build sophisticated MariaDB/MySQL architectures. But currently what is the most used proxy with MySQL? It is HAproxy. HAproxy is a level 4 proxy that has no knowledge of the MySQL protocol. Being low level makes it very fast but it [...]
Whether you are a database administrator, database application developer, web developer, system administrator or system architect, if you are working with a database system such as the MySQL Server, you will want to ensure the best possible performance.
To learn about the great performance you can get from a MySQL Database, visit Dimitri's blog.
If you have experience maintaining a database server, can use MySQL tools and have knowledge of general SQL statements and SQL tuning principles, consider taking the MySQL Performance Tuning course. In this 4-day instructor-led course, you will learn about:
- What to tune and why
- Monitoring, benchmarking and stress tools …
Configuring MySQL Server, with the dozens of options available, has always been perceived as a bit of a black art. In MySQL Database 5.6, configuring your MySQL server for optimal performance is easier than ever before.
In the MySQL for Database Administrators course you can learn more.
MySQL 5.6 is configured to work faster out of the box in a wide range of installation scenarios and it is easier than ever to set up the server by adjusting only a small number of settings which cause others to be set. In addition, you get a new default my.cnf file with instructions guiding your through adjusting key settings. The …
[Read more]In my previous post I wrote about how I achived a >40% speedup on sysbench read-only using profile-guided optimisation (PGO). While this is a preliminary result, I though it was so interesting that it deserved early mention. The fact that any benchmark can be improved that much shows clearly that PGO is something worth looking into. Even if we will probably not improve all workloads by 40%, it seems highly likely that we can obtain significant gains also for many real workloads.
I had one or two interesting comments on the post that raise valid concerns, so I wanted to write a follow-up here, explaining some of the points in more details and going deeper into the performance counter measurements. As I wrote before, actual observations and measurements are crucial to fully understand performance of complex code on modern CPUs. Intuition and …
[Read more]