Home |  MySQL Buzz |  FAQ |  Feeds |  Submit your blog feed |  Feedback |  Archive |  Aggregate feed RSS 2.0 English Deutsch Español Français Italiano 日本語 Русский Português 中文
Previous 30 Newer Entries Showing entries 91 to 120 of 120

Displaying posts with tag: Benchmarks (reset)

High Rate insertion with MySQL and Innodb
+1 Vote Up -0Vote Down

I again work with the system which needs high insertion rate for data which generally fits in memory. Last time I worked with similar system it used MyISAM and the system was built using multiple tables. Using multiple key caches was the good solution at that time and we could get over 200K of inserts/sec.

This time I worked with Innodb tables... it was a different system with different table structure, not to mention different hardware so It can't be compared directly, still it is nice to see you can get the numbers as high with Innodb too.

I will spare you all experiments we went through and just share final numbers. On 8 core Opteron Box we were able to achieve 275K inserts/sec at which time we started to see load to get IO bound because of log writes and flushing dirty buffers. I'm confident you can get

  [Read more...]
Effect from innodb log block size 4096 bytes
+2 Vote Up -2Vote Down

In my post MySQL 5.5.8 and Percona Server: being adaptive I mentioned that I used innodb-log-block-size=4096 in Percona Server to get better throughput, but later Dimitri in his article MySQL Performance: Analyzing Percona's TPCC-like Workload on MySQL 5.5 sounded doubt that it really makes sense. Here us quote from his article:

"Question: what is a potential impact on buffered 7MB/sec writes if we'll use 4K or 512 bytes block size to write to the buffer?.. )
There will be near no or no impact at all

  [Read more...]
MySQL 5.5.8 – in search of stability
+2 Vote Up -2Vote Down

A couple of days ago, Dimitri published a blog post, Analyzing Percona's TPCC-like Workload on MySQL 5.5, which was  a response to my post, MySQL 5.5.8 and Percona Server: being adaptive. I will refer to Dimitri's article as article [1]. As always, Dimitri has provided a very detailed and thoughtful article, and I strongly recommend reading if you want to understand how InnoDB works. In his post, Dimitri questioned some of my conclusions, so I decided to take a more detailed look at my findings. Let me show you my results.

Article [1] recommends using the innodb_max_dirty_pages_pct and

  [Read more...]
MySQL 5.5.8 and Percona Server on Fast Flash card (Virident tachIOn)
+4 Vote Up -0Vote Down

This is to follow up on my previous post and show the results for MySQL 5.5.8 and Percona Server on the fastest hardware I have in our lab: a Cisco UCS C250 server with 384GB of RAM, powered by a Virident tachIOn 400GB SLC card.

To see different I/O patterns, I used different innodb_buffer_pool_size settings: 13G, 52G, an 144G on a tpcc-mysql workload with 1000W (around 100GB of data). This combination of buffer pool sizes gives us different data/memory ratios (for 13G - an I/O intensive workload, for 52G - half of the data fits into the buffer pool, for 144G -

  [Read more...]
MySQL 5.5.8 and Percona Server: being adaptive
+3 Vote Up -0Vote Down

As we can see, MySQL 5.5.8 comes with great improvements and scalability fixes. Adding up all the new features, you have a great release. However, there is one area I want to touch on in this post. At Percona, we consider it important not only to have the best peak performance, but also stable and predictable performance. I refer you to Peter's post, Performance Optimization and Six Sigma.

In Percona Server (and actually even before that, in percona-patches builds for 5.0), we added adaptive checkpoint algorithms, and later the InnoDB-plugin included an implementation of  "adaptive flushing". This post shows the differences between them and MySQL.

The post also answers the question of whether we are going to have releases of Percona

  [Read more...]
Sharing an auto_increment value across multiple MySQL tables (revisited)
+3 Vote Up -0Vote Down

A couple of weeks ago I blogged about Sharing an auto_increment value across multiple MySQL tables. In the comments, a few people wrote in to suggest alternative ways of implementing this.  I just got around to benchmarking those alternatives today across two large EC2 machines:


(Measured in transactions/second – higher is better)

What is the conclusion?  With the exception of my original option2, they actually all perform fairly similar. 


  [Read more...]
Impact of the sort buffer size in MySQL
+2 Vote Up -0Vote Down

The parameter sort_buffer_size is one the MySQL parameters that is far from obvious to adjust. It is a per session buffer that is allocated every time it is needed. The problem with the sort buffer comes from the way Linux allocates memory. Monty Taylor (here) have described the underlying issue in detail, but basically above 256kB the behavior changes and becomes slower. After reading a post from Ronald Bradford (here), I decide to verify and benchmark performance while varying the size of the sort_buffer. It is my understanding that the sort_buffer is used when no index are available to help the sorting so I created a MyISAM table with one char column without an index:

  [Read more...]
Sharing an auto_increment value across multiple MySQL tables
+4 Vote Up -2Vote Down

The title is SEO bait – you can’t do it. We’ve seen a few recurring patterns trying to achieve similar – and I thought I would share with you my favorite two:

Option #1: Use a table to insert into, and grab the insert_id:

CREATE TABLE option1 (id int not null primary key auto_increment) engine=innodb;

# each insert does one operations to get the value:
INSERT INTO option1 VALUES (NULL);
# $connection->insert_id();

Option #2: Use a table with one just row:

CREATE TABLE option2 (id int not null primary key) engine=innodb;
INSERT INTO option2 VALUES (1); # start from 1

# each insert does two operations to get the value:
UPDATE option2 SET id=@id:=id+1;
SELECT @id;

So which is better? I don’t think it’s that easy to tell at a

  [Read more...]
Percona Server scalability on multi-cores server
+2 Vote Up -1Vote Down

We now have hardware in our test lab that represents the next generation of commodity servers for databases. It’s a Cisco UCS C250 server, powered by two Intel Westmere CPUs (X5670 @ 2.93GHz). Each CPU has 6 cores and 12 threads. The most amazing part is the amount of memory. It has 384GB of RAM, which is actually more space than the disks contain.  The disks are 270GB in total, with the underlying configuration RAID10 over eight 2.5″ 15K RPM disks. To make the system even more powerful, I put a FusionIO 320GB SLC card in the PCI-E slot. Here is a link to the box specs.

The server was generously provided by Cisco Systems, Inc.

So,

  [Read more...]
Storing MySQL Binary logs on NFS Volume
+3 Vote Up -0Vote Down

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 one of discoveries in such setup.

There are good reasons to have binary logs on NFS volume - binary logs is exactly the thing you want to survive the server crash - using them you can do point in time recovery from backup.

I was testing high volume replication today using Sysbench:

PLAIN TEXT SQL:
  • sysbench --test=oltp --oltp-table-size=10000000 --db-driver=mysql --mysql-user=root --mysql-db=sbsmall --init-rng=1 --max-requests=100000000 --max-time=600 --oltp-test-mode=nontrx --oltp-nontrx-mode=update_nokey

  •   [Read more...]
    Virident tachIOn: New player on Flash PCI-E cards market
    +4 Vote Up -0Vote Down

    (Note: The review was done as part of our consulting practice, but is totally independent and fully reflects our opinion)

    In my talk on MySQL Conference and Expo 2010 "An Overview of Flash Storage for Databases" I mentioned that most likely there are other players coming soon. I actually was not aware about any real names at that time, it was just a guess, as PCI-E market is really attractive so FusionIO can't stay alone for long time. So I am not surprised to see new card provided by Virident and I was lucky enough to test a pre-production sample Virident tachIOn 400GB SLC card.

    I think it will be fair to say that Virident targets where right now FusionIO has a monopoly, and it will

      [Read more...]
    Performance Optimization and Six Sigma
    +4 Vote Up -2Vote Down

    You might be familiar with Six Sigma business management strategy which is employed by variety of the companies in relationship to managing quality of its product. Six Sigma applies to number of defects - when you have reached six sigma quality in your production you would see 99.99966% of the products manufactured with no defects, or in other words there is less than 3 defects per million.

    One of principles of six sigma is what customers tend to be concerned about variance a lot more than average. For example if you produce tomato soup and the average difference from declared weight is going to be 0.1 gram or 0.5 gram, probably nobody would not notice the difference. What would worry people however is significant number of very large differences, such as half empty tomato soup can.

    You

      [Read more...]
    FlashCache: tpcc workload with FusionIO card as cache
    +3 Vote Up -0Vote Down

    This run is very similar what I had on Intel SSD X25-M card, but now I use FusionIO 80GB SLC card. I chose this card as smallest available card (and therefore cheapest. On Dell.com you can see it for about $3K). There is also FusionIO IO-Xtreme 80GB card, which is however MLC based and it could be not best choice for FlashCache usage ( as there high write rate on FlashCache for both reading and writing to/from disks, so lifetime could be short).

    Also Facebook team released WriteThrough module for FlashCache, which could be good trade-off if you want extra warranty for data consistency and your

      [Read more...]
    PBXT in tpcc-like benchmark
    +3 Vote Up -0Vote Down

    Finally I was able to run PBXT 1.0.11 pre-GA in tpcc-like workload, apparently there was bug with did not allow me to get the result earlier, and I am happy to see that PBXT team managed it.

    For initial runs I took tpcc 100 warehouses ( about 10GB of data) which fully fits into memory (32 GB on server),
    and compared 1 and 16 users in MySQL-5.1.46/PBXT and Percona Server / XtraDB - 5.1.45-rel10.2. As workload is totally memory based it will show how PBXT scales in CPU-bond cases on 16 cores systems.

    As storage system it was Intel SSD X25-M card.

    While full results and config are on Wiki:
    http://www.percona.com/docs/wiki/benchmark:pbxt:tpcc:start

    there are graphs for 1 user:




      [Read more...]
    FlashCache: tpcc workload
    +4 Vote Up -1Vote Down

    This is my last post in series on FlashCache testing when the cache is placed on Intel SSD card.

    This time I am using tpcc-like workload with 1000 Warehouses ( that gives 100GB of data) on Dell PowerEdge R900 with 32GB of RAM, 22GB allocated for buffer pool and I put 70GB on FlashCache partition ( just to simply test the case when data does not fit into cache partition).

    Please note in this configuration the benchmark is very write intensive, and it is not going be easy for FlashCache, as in background it has to write blocks to RAID anyway, and write rate in final place is limited by RAID. So all performance benefits will come from read hits

    The full report and results are available on benchmark Wiki

      [Read more...]
    Tuning InnoDB Concurrency Tickets
    +2 Vote Up -0Vote Down

    InnoDB has an oft-unused parameter innodb_concurrency_tickets that seems widely misunderstood. From the docs: "The number of threads that can enter InnoDB concurrently is determined by the innodb_thread_concurrency variable. A thread is placed in a queue when it tries to enter InnoDB if the number of threads has already reached the concurrency limit. When a thread is allowed to enter InnoDB, it is given a number of “free tickets” equal to the value of innodb_concurrency_tickets, and the thread can enter and leave InnoDB freely until it has used up its tickets. After that point, the thread again becomes subject to the concurrency check (and possible queuing) the next time it tries to enter InnoDB. The default value is 500..."

    What this means from a practical perspective is that each query is allocated 500 tickets when it begins executing. Each time it

      [Read more...]
    FlashCache: more benchmarks
    +2 Vote Up -0Vote Down

    Previously I covered simple case with FlashCache, when data fits into cache partitions, now I am trying to test when data is bigger than cache.

    But before test setup let me address some concern (which I also had). Intel X25-M has a write cache which is not battery backuped, so there is suspect you may have data loss in the case of power outage.
    And in the case with FlashCache it would mean you can send your database to trash, as there is no way to recovery from that ( only restore from backup).
    I personally did couple of power failure tests and there is article on this topic http://www.anandtech.com/show/2614/10. I did not see any data loss in my tests, and the article says that the write cache "..isn't used for

      [Read more...]
    FlashCache: first experiments
    +3 Vote Up -0Vote Down

    I wrote about FlashCache there, and since that I run couple benchmarks, to see what performance benefits we can expect.
    For initial tries I took sysbench oltp tests ( read-only and read-write) and case when data fully fits into L2 cache.

    I made binaries for FlashCache for CentOS 5.4, kernel 2.6.18-164.15, you can download it from our testing stage. It took some efforts to make binary, you may get my instructions for CentOS on FlashCache-dev mail-list, most likely it will not work for different CentOS / Kernel.

    The full results, scripts and settings are on


      [Read more...]
    MySQL 5.5 Performance Gains
    +3 Vote Up -4Vote Down
    Oracle managed to score a major victory last week at the MySQL Conference by announcing performance gains of 200-360% in the forthcoming version 5.5.  This is a tremendous improvement and comes in part due to closer collaboration between what were historically two distinct (and occasionally competitive) groups: the InnoBase team and the MySQL Server team.  Bringing the InnoBase team under the direction of the MySQL Server team under Tomas Ullin is a great benefit not only to MySQL developers, but also for MySQL users.  No doubt these performance gains are a result of many months of hard work by not only Tomas, but also a good number of folks on both teams including guys like Mikael Ronstrum, Kojstja, Calvin Sun and others.  

    Reaction to the new release has been positive

      [Read more...]
    MySQL 5.5.4 in tpcc-like workload
    +4 Vote Up -0Vote Down

    MySQL-5.5.4 ® is the great release with performance improvements, let's see how it performs in
    tpcc-like workload.

    The full details are on Wiki page
    http://www.percona.com/docs/wiki/benchmark:mysql:554-tpcc:start

    I took MySQL-5.5.4 with InnoDB-1.1, tpcc-mysql benchmark with 200W ( about 18GB worth of data),
    InnoDB log files are 3.8GB size, and run with different buffer pools from 20GB to 6GB. The storage is FusionIO 320GB MLC card with XFS-nobarrier. .

    While the raw results are available on Wiki, there are graphical results.

    I intentionally put all line on the same graph to show trends.





      [Read more...]
    RAID throughput on FusionIO
    +2 Vote Up -0Vote Down

    Along with maximal possible fsync/sec it is interesting how different software RAID modes affects throughput on FusionIO cards.

    In short conclusion, RAID10 modes really disappoint me, the detailed numbers to follow.

    To get numbers I run sysbench fileio test with 16KB page size, random read and writes, 1 and 16 threads, O_DIRECT mode.

    FusionIO cards are the same as in the previous experiment, as I am running XFS with nobarrier mount options.

    OS is CentOS 5.3 with 2.6.18-128.1.10.el5 kernel.

    For RAID modes I use:

    • single card ( for baseline)
    • RAID0 over 2 FusionIO cards
    • RAID1 over 2 FusionIO cards
    • RAID1 over 2 RAID0 partitions (4 cards in total)
    • RAID0 over 2 RAID1 partitions (4 cards
      [Read more...]
    Is your MySQL Server Loaded ?
    +0 Vote Up -0Vote Down

    So you're running the benchmark/stress test - how do you tell if MySQL server is really loaded ? This looks like the trivial question but in fact, especially when workload consists of simple queries I see the load generation and network really putting a lot less load on MySQL than expected. For example you may have 32 threads (or processes) running queries as fast as they can... does it really mean there is an 32 concurrent queries ran all the time ? It may be the case or it may be not...

    Take a look at this server for example:

    PLAIN TEXT CODE:
  • [root@db01 ~]# mysqladmin -i1  extended | grep Threads_running
  • | Threads_running                       | 1                    |
  •   [Read more...]
    How many fsync / sec FusionIO can handle
    +1 Vote Up -0Vote Down

    I recently was asked how many fsync / sec ( and therefore durable transactions / sec) we can get on FusionIO card.

    It should be easy to test, let's take sysbench fileio benchmark and run, the next command should make it:


    ./sysbench --test=fileio --file-num=1 --file-total-size=50G --file-fsync-all=on --file-test-mode=seqrewr --max-time=100 --file-block-size=4096 --max-requests=0 run

    PLAIN TEXT CODE:
  • Operations performed:  0 Read, 922938 Write, 922938 Other = 1845876 Total
  • Read 0b  Written 3.5207Gb  Total transferred 3.5207Gb  (36.052Mb/sec)
  •  9229.35 Requests/sec executed
  • So that's 9229.35 req/sec, which is pretty impressive.

    For comparison the same run on PERC



      [Read more...]
    Maximal write througput in MySQL
    +3 Vote Up -1Vote Down

    I recently was asked what maximal amount transactions per second we can get using MySQL and XtraDB / InnoDB storage engine if we have high-end server. Good questions, though not easy to answer, as it depends on:

    - durability setting ( innodb_flush_log_at_trx_commit = 0 or 1 ) ?
    - do we use binary logs ( I used ROW based replication for 5.1)
    - do we have sync_binlog options.

    So why would not take these as variable parameters and run simple benchmark.
    I took sysbench update_key scenario ( update indexed field on simple table)
    and used Dell PowerEdge R900 with 16 cores, FusionIO as storage for table and RAID 10 with BBU as storage for innodb log files, innodb system table space and binary logs. And I used Percon-XtraDB-5.1.43-9.1 for benchmarks. All used



      [Read more...]
    READ-COMMITED vs REPETABLE-READ in tpcc-like load
    +3 Vote Up -0Vote Down

    Question what is better isolation level is poping up again and again. Recently it was discussed in InnoDB : Any real performance improvement when using READ COMMITED isolation level ? and in Repeatable read versus read committed for InnoDB .
    Serge in his post explains why READ COMMITED is better for TPCC load, so
    why don't we take tpcc-mysql bencmark and check on results.

    I took 3 different datasets 1000w (100GB of data), 300w (30GB) and 10w (1GB) for box with 32GB of RAM and buffer_pool 26GB. Latest case 10w is interesting as I expect a lot of contention on row level having small dataset.
    I used as usually tpcc-mysql benchmark with 16 and 32 (for 10w) concurrent users.

    Also I had binary log enabled




      [Read more...]
    Introducing tpce-like workload for MySQL
    +5 Vote Up -1Vote Down

    We have been using tpcc-mysql benchmark for long time, and there many results published in our blog, but that's just single workload. That's why we are looking into different benchmarks, and one
    of them is TPCE. Yasufumi made some efforts to make TPCE working with MySQL, and we are making it available for public consideration.

    You can download it from our Lauchpad Percona-tools project, it's
    bzr branch lp:~percona-dev/perconatools/tpcemysql

    Important DISCLAIMER:
    Using this package you should agree with TPC-E License Agreement,
    which in human words is:

    • You can't name results as "TPC Benchmark Results"
    • You can't compare results with results published on




      [Read more...]
    New OLAP Wikistat benchmark: Introduction and call for feedbacks
    +3 Vote Up -0Vote Down

    I've seen my posts on Ontime Air traffic and Star Schema Benchmark got a lot of interest
    (links:


      [Read more...]
    Fast storage: 8 SSD Intel X-25M 80GB benchmarks
    +4 Vote Up -0Vote Down

    I appreciate opportunity Jos van Dongen from Tholis Consulting gave me. He granted me access to servers with 8 attached Intel X-25M 80GB MLC cards. The cards attached to 2 Adaptec 5805 raid controllers, with 4 cards per controller.

    The cost of setup is 8 x 260$ (X-25M) + 2x500$ (Adaptec 5805) = ~3000$.
    Available space varies in depends on raid setup from 300GB to 600GB.

    The logical comparison is to compare results with FusionIO 320GB MLC card, so I will copy results from FusionIO 320GB MLC benchmarks.

    For benchmarks I used sysbench fileio benchmark.
    All raw results are available on Percona benchmarks wiki,


      [Read more...]
    InnoDB, InnoDB-plugin vs XtraDB on fast storage
    +10 Vote Up -1Vote Down

    To continue fun with FusionIO cards, I wanted to check how MySQL / InnoDB performs here. For benchmark I took MySQL 5.1.42 with built-in InnoDB, InnoDB-plugin 1.0.6, and XtraDB 1.0.6-9 ( InnoDB with Percona patches).
    As benchmark engine I used tpcc-mysql with 1000 warehouses ( which gives around 90GB of data + indexes) on my workhourse Dell PowerEdge R900 ( details about box ).

    On storage configuration: FusionIO 160GB SLC and 320GB MLC cards are configured in software RAID0 to store InnoDB datafiles. For InnoDB logs and system tablespace I used partition on regular RAID10 with regular hard drives, here I followed Yoshinori Matsunobu's recommendations


      [Read more...]
    FusionIO 320GB MLC benchmarks
    +4 Vote Up -0Vote Down

    After my previous benchmarks of FusionIO 160GB SLC card, FusionIO team sent me for the tests another card, FusionIO 320GB MLC. I should say I really appreciate an opportunity to play with this card and with combination of two cards.

    This card is also not cheap, the price I can find on dell.com is $6,829.99, which is almost the same as for 160GB card, but with doubled space,
    and which gives me 21$/GB for 100% formatted card, and 29$/GB for card with 75% of space allocated. Effect of 25% reserved space you will see in the results.

    The full numbers are available on our


      [Read more...]
    Previous 30 Newer Entries Showing entries 91 to 120 of 120

    Planet MySQL © 1995, 2013, Oracle Corporation and/or its affiliates   Legal Policies | Your Privacy Rights | Terms of Use

    Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.