MySQL Performance Blog

MySQL Performance Blog
Checked: 38 min 40 sec ago
Updated: 38 min 40 sec ago
Update every: 2 hours

Everything about MySQL Performance
Syndicate content

How long Innodb Shutdown may take

MySQL Performance Blog - Thu, 02/09/2010 - 9:40pm
How long it may take MySQL with Innodb tables to shut down ? It can be quite a while. In default configuration innodb_fast_shutdown=ON the main job Innodb has to do to complete shutdown is flushing dirty buffers. The number of dirty buffers in the buffer pool varies depending on innodb_max_dirty_pages_pct [...]

Introducing tcprstat, a TCP response time tool

MySQL Performance Blog - Wed, 01/09/2010 - 12:52am
Ignacio Nin and I (mostly Ignacio) have worked together to create tcprstat[1], a new tool that times TCP requests and prints out statistics on them. The output looks somewhat like vmstat or iostat, but we’ve chosen the statistics carefully so you can compute meaningful things about your TCP traffic. What is this good for? [...]

InnoDB memory allocation, ulimit, and OpenSUSE

MySQL Performance Blog - Mon, 23/08/2010 - 8:55pm
I recently encountered an interesting case. A customer reported that mysqld crashed on start on OpenSUSE 11.2 kernel 2.6.31.12-0.2-desktop x86_64   with 96 GB RAM when the innodb_buffer_pool_size was set to anything more than 62 GB. I decided to try it with 76 GB. The error message was an assert due to a failed malloc() [...]

High availability for MySQL on Amazon EC2 – Part 4 – The instance restart script

MySQL Performance Blog - Thu, 19/08/2010 - 12:54pm
This post is the fourth of a series that started here. From the previous of this series, we now have resources configured but instead of starting MySQL, Pacemaker invokes a script to start (or restart) the EC2 instance running MySQL. This blog post describes the instance restart script. Remember, I am more a DBA [...]

Percona talks at OpenSQL Camp this weekend

MySQL Performance Blog - Thu, 19/08/2010 - 10:18am
Four Perconians (perconites?) will be at OpenSQL Camp in Sankt Augustin, Germany this weekend presenting talks on: Recovery of Lost or Corrupted InnoDB Tables Keep your MySQL backend online no matter what XtraDB — InnoDB on steroids Xtrabackup for MySQL If you would like to stop by and say hello, we are Aleksandr, Istvan, Morgan and Aurimas (pictures here). If you [...]

Announcing Training for Operations Teams

MySQL Performance Blog - Wed, 18/08/2010 - 8:45pm
We’re opening up registration for our new training courses today.  In short: we are moving from two days to a new four-day format.  The new additions are created by: Splitting our current InnoDB day in half. We now have one day for DBAs, and one day just on InnoDB topics. A new Operations Day – covering how [...]

Testing MySQL column stores

MySQL Performance Blog - Mon, 16/08/2010 - 4:17pm
Recently I had the opportunity to do some testing on a large data set against two MySQL column-store storage engines. I’d like to note that this effort was sponsored by Infobright, but this analysis reflects my independent testing from an objective viewpoint. I performed two different types of testing. The first focused on core [...]

Why message queues and offline processing are so important

MySQL Performance Blog - Tue, 10/08/2010 - 8:07pm
If you read Percona’s whitepaper on Goal-Driven Performance Optimization, you will notice that we define performance using the combination of three separate terms. You really want to read the paper, but let me summarize it here: Response Time – This is the time required to complete a desired task. Throughput – Throughput is measured in tasks [...]

Why you can’t rely on a replica for disaster recovery

MySQL Performance Blog - Sun, 01/08/2010 - 1:26am
A couple of weeks ago one of my colleagues and I worked on a data corruption case that reminded me that sometimes people make unsafe assumptions without knowing it. This one involved SAN snapshotting that was unsafe. In a nutshell, the client used SAN block-level replication to maintain a standby/failover MySQL system, and there was [...]

Storing MySQL Binary logs on NFS Volume

MySQL Performance Blog - Sat, 31/07/2010 - 2:54am
There is a lot of discussions whenever running MySQL storing data on NFS is a good idea. There is a lot of things for and against this and this post is not about them. The fact is number of people run their databases on NetApp and other forms of NFS storage and this post is about [...]

Caching could be the last thing you want to do

MySQL Performance Blog - Sat, 24/07/2010 - 6:39pm
I recently had a run-in with very popular PHP ecommerce package which makes me want to voice a recurring mistake I see in how many web applications are architected. What is that mistake? The ecommerce package I was working with depended on caching.  Out of the box it couldn’t serve 10 pages/second unless I enabled some features [...]

Estimating Replication Capacity

MySQL Performance Blog - Wed, 21/07/2010 - 2:51am
It is easy for MySQL replication to become bottleneck when Master server is not seriously loaded and the more cores and hard drives the get the larger the difference becomes, as long as replication remains single thread process. At the same time it is a lot easier to optimize your system when your replication [...]

SSD: Free space and write performance

MySQL Performance Blog - Sun, 18/07/2010 - 3:46am
( cross posting from SSD Performance Blog ) In previous post On Benchmarks on SSD, commenter touched another interesting point. Available free space affects write performance on SSD card significantly. The reason is still garbage collector, which operates more efficiently the more free space you have. Again, to read mode on garbage collector and write problem [...]

Analyzing the distribution of InnoDB log file writes

MySQL Performance Blog - Sat, 17/07/2010 - 3:23am
I recently did a quick analysis of the distribution of writes to InnoDB’s log files. On a high-traffic commodity MySQL server running Percona XtraDB for a gaming workload (mostly inserts to the “moves” table), I used strace to gather statistics about how the log file writes are distributed in terms of write size. [...]

Data mart or data warehouse?

MySQL Performance Blog - Thu, 15/07/2010 - 4:41pm
This is part two in my six part series on business intelligence, with a focus on OLAP analysis. Part 1 – Intro to OLAP Identifying the differences between a data warehouse and a data mart. (this post) Introduction to MDX and the kind of SQL which a ROLAP tool must generate to answer those queries. Performance challenges with [...]

On Benchmarks on SSD

MySQL Performance Blog - Thu, 15/07/2010 - 2:27am
(cross post from SSD Performance Blog ) To get meaningful performance results on SSD storage is not easy task, let’s see why. There is graph from sysbench fileio random write benchmark with 4 threads. The results were taken on PCI-E SSD card ( I do not want to name vendor here, as the problem is the same [...]

SLC vs MLC

MySQL Performance Blog - Wed, 14/07/2010 - 9:38pm
(cross posting from SSDPeformanceBlog.com ) All modern solid state drives use NAND memory based on SLC (single level cell) or MLC (multi level cell) technologies. Not going into physical details – SLC basically stores 1 bit of information, while MLC can do more. Most popular option for MLC is 2 bit, and there is movement into 3 [...]

Scaling: Consider both Size and Load

MySQL Performance Blog - Wed, 14/07/2010 - 12:53am
So lets imagine you have the server handling 100.000 user accounts. You can see the CPU,IO and Network usage is below 10% of capacity – does it mean you can count on server being able to handle 1.000.000 of accounts ? Not really, and there are few reasons why, I’ll name most important [...]

Percona at OSCON 2010

MySQL Performance Blog - Tue, 13/07/2010 - 4:08pm
This year we’re participating in OSCON as a Sponsor and organizing some BOFs. I will be on the conference 21 and 22 if you’re interested to chat. Here is the list of currently scheduled BOFs which I’ll be hosting: Running Databases on Flash Storage Sphinx Search 2010 XtraDB, XtraBackup, Maatkit, Percona Server See you there. [...]

Intro to OLAP

MySQL Performance Blog - Mon, 12/07/2010 - 7:26pm
This is the first of a series of posts about business intelligence tools, particularly OLAP (or online analytical processing) tools using MySQL and other free open source software. OLAP tools are a part of the larger topic of business intelligence, a topic that has not had a lot of coverage on MPB. Because [...]

High availability for MySQL on Amazon EC2 – Part 3 – Configuring the HA resources

MySQL Performance Blog - Mon, 12/07/2010 - 4:15pm
This post is the third of a series that started here. From the previous of this series, we now have two working EC2 instances that are EBS based. The first instance is the monitor, usually an m1.small type instance and the second instance is hamysql, a large instance type. So far, we have configured [...]

Query Response time histogram – new feature in Percona Server

MySQL Performance Blog - Mon, 12/07/2010 - 1:44am
Recently we had couple posts dedicated to performance monitoring, i.e. Color code your performance numbers, Performance Optimization and Six Sigma, so you may understand we consider stability of performance numbers as one of important area for database management. That’s why we decided to add histogram of queries response times into Percona Server, and our software engineer [...]

mk-query-digest, query comments and the query cache

MySQL Performance Blog - Tue, 06/07/2010 - 2:31am
I very much like the fact that MySQL allows you to embed comments into SQL statements. These comments are extremely convenient, because they are written into MySQL log files as part of the query. This includes the general log, the binary log and the slow query log. Maatkit includes tools which interact [...]

How is join_buffer_size allocated?

MySQL Performance Blog - Mon, 05/07/2010 - 2:56pm
When examining MySQL configuration, we quite often want to know how various buffer sizes are used. This matters because some buffers (sort_buffer_size for example) are allocated to their full size immediately as soon as they are needed, but others are effectively a “max size” and the corresponding buffers are allocated only as big as [...]

Recover BLOB fields

MySQL Performance Blog - Thu, 01/07/2010 - 6:00pm
For a long time long types like BLOB, TEXT were not supported by Percona InnoDB Recovery Tool. The reason consists in a special way InnoDB stores BLOBs. An InnoDB table is stored in a clustered index called PRIMARY. It must exist even if a user hasn't defined the primary index. The PRIMARY index pages are identified [...]
Syndicate content