8

I'm running MySQL on win2008 server on a multi-core xeon processor. It looks like it only uses a single core.

Is there something I need to configure to make it use all cores ?

The server is supporting a loaded website with many calls. I'm sure there are more than a single call at the same time, but yet the DB looks to handle anything in a single core.

What can I do to improve it ?

3
  • Have you checked the process' affinity settings in the task manager?
    – gekkz
    Aug 24, 2011 at 20:28
  • What version of mysql are you using ??? Aug 24, 2011 at 20:41
  • MySQL 5.0 & 5.1 are multithreaded, but I've also noticed that some functions (like Replication) will use 100% of one CPU on multiprocessor/multicore machine while the other cores sit their idle. Aug 24, 2011 at 22:02

1 Answer 1

7

If you want to be able to tune MySQL to utilize multiple cores, you need to upgrade to MySQL 5.5.

According to MySQL's Whitepaper "What’s New in MySQL 5.5 Performance and Scalability" from December 2010:

Control of Background I/O Threads – Users now have two new configuration parameters for all platforms, innodb_read_io_threads and innodb_write_io_threads that allow for the setting of the number of background threads used for read and write requests. This helps users tune and scale their MySQL applications on high-end, multi-core systems 􀁸 Control of Master Thread I/O Rate – Users can now configure the overall I/O capacity

The parameters mentioned are innodb_read_io_threads and innodb_write_io_threads.

These settings do not exist before MySQL 5.1.38. In fact, only the MySQL Plugin allows for these settings in MySQL 5.1. It is included in MySQL 5.5's native InnoDB.

Perhaps this Blog Post with give you more insight into InnoDB Scalablity for Multiple Core Servers.

1
  • It is 5.5, I'll check these parameters, and approve.
    – Dani
    Aug 25, 2011 at 2:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .