ANN Impact of Meltdown mitigation on RabbitMQ performance

863 views
Skip to first unread message

dfed...@pivotal.io

unread,
Jan 26, 2018, 10:43:01 AM1/26/18
to rabbitmq-users

You are probably all aware of the Meltdown and Spectre attacks [1] by                                                                                                                                       
now. The solution adopted by many operating systems is called page                                                                                                                                          
table isolation (e.g. KPTI on Linux) and it may have an impact on                                                                                                                                           
performance.                                                                                                                                                                                                
                                                                                                                                                                                                            
The RabbitMQ team conducted a few tests on various workloads on Ubuntu                                                                                                                                      
14.04 VMs on GCP to learn more about how the solution affects RabbitMQ.                                                                                                                                     
The non-KPTI VM was running Linux 4.4.0-97 while the KPTI-enabled one                                                                                                                                       
was running 4.4.0-109.                                                                                                                                                                                      
                                                                                                                                                                                                            
Depending on the workload, the throughput of KPTI-enabled deployment                                                                                                                                        
can be reduced by up-to 10%, compared to a non-KPTI deployment. The                                                                                                                                         
description of workloads and the files to reproduce them using BOSH and                                                                                                                                     
CloudFoundry are available on GitHub [2].                                                                                                                                                                   
                                                                                                                                                                                                            
The largest decrease of 10% was observed with a single RabbitMQ node                                                                                                                                        
with 10 queues, 10 producers and 10 consumers on an 8-core VM. The                                                                                                                                          
bottleneck of such a setup is the CPU. In other workloads where the                                                                                                                                         
bottleneck is the disk the decrease is around 5%.                                                                                                                                                           
                                                                                                                                                                                                            
You can find attached a screenshot from our public workloads dashboard [3],                                                                                                                                 

demonstrating the decrease (notice `-kpti` deployment names).  
                                                                                                                                            
                                                                                                                                                                                                            
[1] Meltdown and Spectre: https://meltdownattack.com/                                                                                                                                                       
[2] Workload files: https://github.com/rabbitmq/workloads                                                                                                                                                   

Michael Klishin

unread,
Jan 26, 2018, 11:03:16 AM1/26/18
to rabbitmq-users
It's worth adding that the numbers and % change will vary from workload to workload
and Erlang VM configuration (e.g. CPU scheduler binding type) to configuration. Just to make it extra clear
that YMMV :)
Reply all
Reply to author
Forward
0 new messages