« MySQL Performance: 5.6 Notes, part 1 - Discovery... | Main | MySQL Performance: 5.6 Notes, part 3 - More in depth.. »
Monday, 11 April, 2011
MySQL Performance: 5.6 Notes, part 2 - Under full dbSTRESS workload...
This is the second part of the MySQL 5.6 Performance Notes started from here .
Now it's about performance results on a full dbSTRESS test workload scenarios..
      Full Series of tests @dbSTRESS
    
    
      Test scenario :
    
    - Workload: Read-Only, Read+Update, Read+Write (Writes=Delete, Insert, Update)
 - Configurations: 16, 24, 32, 48 cores
 - Concurrent users: 1, 2, 4, 8.. 1024 (4min on each step, growing load)
 - Think time: 0 sec
 - 
        Points of interest:
        
- identify current and potential contentions
 - try to reduce contentions by limiting thread concurrency via CPU taskset (binding "mysqld" process to a fixed list of cores)
 
 
      Read-Only :
    
    - 
        MySQL 5.5.9:
        
- most optimal performance on 32 cores
 - max 30.000 TPS
 - main contentions: btr_search_latch (yellow) and kernel_mutex (green)
 
 
      
    - 
        MySQL 5.6.2:
        
- most optimal performance on 32 cores
 - max 31.000 TPS
 - main contentions: trx_sys (yellow), btr_search_latch (green)
 - probably by reducing the contention on trx_sys we may obtain a more stable TPS on 32cores
 - still no answer on: why the btr_serach_latch mutex still remains hot while there is no more pages loaded into the buffer pool?..
 
 
      
    
      Read+Update :
    
    - 
        MySQL 5.5.9:
        
- most optimal on 24 cores
 - max 37.000 TPS
 - main contentions on: kernel_mutex (rose), btr_search_latch (blue)
 
 
      - 
        MySQL 5.6.2:
        
- most optimal on 32 cores
 - max 40.000 TPS
 - main contentions on: lock_sys (green), trx_sys (magenta)
 
 
      
      Read+Write :
    
    - 
        MySQL 5.5.9:
        
- most optimal on 32 cores
 - max 19.000 TPS
 - main contentions on: index lock, kernel_mutex
 
 
      - 
        MySQL 5.6.2:
        
- most optimal on 48 cores
 - max 21.000 TPS
 - main contentions on: index mutex, lock_sys
 - NOTE: interesting, that on all configurations except 48 cores 5.6 showing a lower performance comparing to 5.5..
 
 
      
      SEL1 Test scenario :
    
    - Same as the previous test, just on the READ transactions only one SELECT query is used (SEL1)
 - The main interest here that the SEL1 is blocked only by the kernel_mutex contention on a high concurrency workload..
 - Workload: Read-Only, Read+Update, Read+Write (Writes=Delete, Insert, Update)
 - Concurrent users: 1, 2, 4, 8.. 1024
 - Think time: 0 sec
 
      SEL1-Read-Only :
    
    - 
        MySQL 5.5.9:
        
- most optimal performance on 16 cores
 - max 85.000 TPS
 - main contentions: kernel_mutex (magenta)
 
 
      - 
        MySQL 5.6.2:
        
- most optimal performance on 16 cores, most stable on 24 cores
 - max 81.000 TPS
 - main contentions: trx_sys (yellow)
 
 
      
      
      
      
    
      SEL1+Update :
    
    - 
        MySQL 5.5.9:
        
- most optimal performance on 24 or 32 cores
 - max 57.000 TPS
 - main contentions: kernel_mutex (magenta), rollback segment mutex (hm, interesting)..
 
 
      - 
        MySQL 5.6.2:
        
- most optimal performance on 24 cores
 - max 64.000 TPS
 - main contentions: lock_sys (green)
 
 
      
      SEL1+Write :
    
    - 
        MySQL 5.5.9:
        
- most optimal performance on 24 or 32 cores
 - max 21.000 TPS
 - main contentions: index mutex (magenta) and kernel_mutex (magenta)
 
 
      - 
        MySQL 5.6.2:
        
- most optimal performance on 48 cores
 - max 22.000 TPS
 - main contentions: index mutex, lock_sys mutex
 - 
            NOTE: here again on all configurations except 48 cores 5.6 showing 
            a lower performance comparing to 5.5..
 - need to be investigated...
 
 
      blog comments powered by DisqusNote: if you don't see any "comment" dialog above, try to access this page with another web browser, or google for known issues on your browser and DISQUS..