List:Cluster« Previous MessageNext Message »
From:Mikael Ronström Date:February 1 2005 8:14am
Subject:Some experiments
View as plain text  
I made some experiments to see how one could improve performance of 
communication between MySQL Server and
the ndbd processes. In the process I stumbled over a performance 
improvement that makes a very simple select query
fetching one record from ndbd via primary key and 2 integer attributes 
execute 40% faster (only accounts for time spent
in MySQL Server and ndbd, including client will decrease improvement in 
percent). This will be pushed into all
branches this week.

In addition I experimented with various priority settings. The 
communication cost was decreased by 10% when I raised the
priority of the MySQL Server process (in the experiment it was actually 
an NDB API test program but this should not make a
big difference). This plays well  with experiments made a couple of 
years ago on Solaris 7 where I was able to increase
performance by 50% by setting the API part in real-time scheduling mode.

The major reason for these improvements is due to the thread model and 
with a higher priority on the MySQL Server part, there
are less context switches.

The experiments were made on a Mac OS X laptop with all processes on 
localhost. The results is only a hint of that a few percent
improvements can be derived through simple means. However before 
actually used in practice they should be tested and
verified on the HW and OS used.

Rgrds Mikael
PS: I mainly used the renice shell command (renice -10 pid increases 
the priority of process with number pid where -20 <= prio <= 20)

Mikael Ronström, Senior Software Architect
MySQL AB, www.mysql.com

Jumpstart your cluster:
http://www.mysql.com/consulting/packaged/cluster.html

Thread
Some experimentsMikael Ronström1 Feb