debugsqlMinor
Cannot Utilize Maximum CPU and Memory Usage for MySQL
Viewed 0 times
cannotmaximumutilizeusagemysqlformemoryandcpu
Problem
Good day.
I know this may be a duplicate of other questions however I have applied all the suggestions in many of the threads, but I remain with the same problem.
I have a single stored procedure working with max
I am sitting with a
my.ini looks as follows:
Is it the nature of the procedure called which is causing mysql to under utiize the hardware or is it my configuration?
I was running
I am using the
Using
I know this may be a duplicate of other questions however I have applied all the suggestions in many of the threads, but I remain with the same problem.
I have a single stored procedure working with max
3 tables. when I run the procedure, only 30% of my CPU is used and about 25% of RAM.I am sitting with a
CPU with 4 cores and 16GB RAM.my.ini looks as follows:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 512M
max_allowed_packet = 32M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 128M
thread_cache_size = 16
query_cache_size= 32M
thread_concurrency = 0
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
innodb_buffer_pool_size = 12G
innodb_log_buffer_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_read_io_threads = 64
innodb_write_io_threads = 64
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeoutIs it the nature of the procedure called which is causing mysql to under utiize the hardware or is it my configuration?
I was running
XAMPP but then realised it was 32-bit so I switched to the 64-bit version of WAMP. I use a 32-bit MySQLWorkbench to run queries.I am using the
InnoDB engine. Using
MySQL Ver 14.14 Distrib 5.5.24 Win64 (x86).Solution
The authors of High Performance MySQL describe part of your problem fairly succinctly (p. 234):
MySQL can’t execute a single query in parallel on many CPUs. This is a feature offered
by some other database servers, but not MySQL.
Running a single stored procedure will use no more than 1 of your CPU cores for executing queries, with a little extra on other cores being used by various background and worker threads, such as those performing I/O. MySQL will only really use the full power of a multi-core or multi-processor system when there are multiple queries running at once.
If you're seeing 30% of 1 core being used, that indicates a potential problem, but 1.2 cores out of 4 for a single query is quite normal.
MySQL can’t execute a single query in parallel on many CPUs. This is a feature offered
by some other database servers, but not MySQL.
Running a single stored procedure will use no more than 1 of your CPU cores for executing queries, with a little extra on other cores being used by various background and worker threads, such as those performing I/O. MySQL will only really use the full power of a multi-core or multi-processor system when there are multiple queries running at once.
If you're seeing 30% of 1 core being used, that indicates a potential problem, but 1.2 cores out of 4 for a single query is quite normal.
Context
StackExchange Database Administrators Q#40702, answer score: 7
Revisions (0)
No revisions yet.