Big MySQL Database, 99% CPU

Bubrax

New member
Joined
Sep 12, 2012
Messages
4
Hello,

I have one Big Database with big Tables.. the Database is over 900MB and the Database is overloading the CPU. It is everytime 99% or 100%
After i want to Visit my Website, it needs some seconds to Load the whole Website.

Server Setup:
Intel(R) Pentium(R) CPU G850 @ 2.90GHz
4GB DDR3 RAM
500GB SATA

I wanna try to change from MySQL to MariaDB. I Heard this would be helpfull for big Tables. I tryed to use InnoDB. But it was not better.

Any idea which Database i should use, or what i should do?
Should i buy an another Server for only MySQL?

If i should use MariaDB, how can i Setup it, without losing Datas.

Sorry for my bad English.
 
Hello,

I guess you might need to optimize your tables, and review indexes, and even MySQL queries. You can use http://mysqltuner.pl or any other things to monitor your current situation. Check how good indexes are organized. Any joins performed without indexes? Then you might need to give more RAM to your MySQLd for caching. What about PHP? APC? eAccelerator?
 
Hello, thanks for your answer! Im trying something new and want to change my Database to InnoDB. But i have some Problems with my Config. I got this error.. any ideas?

120914 02:16:25 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql/
120914 2:16:25 [Warning] options --log-slow-admin-statements, --log-queries-not-using-indexes and --log-slow-slave-statements have no effect if --log_slow_queries is not set
120914 2:16:25 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
120914 2:16:25 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
120914 2:16:25 InnoDB: The InnoDB memory heap is disabled
120914 2:16:25 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
120914 2:16:25 InnoDB: Compressed tables use zlib 1.2.3
120914 2:16:25 InnoDB: Using Linux native AIO
120914 2:16:25 InnoDB: Initializing buffer pool, size = 2.0G
120914 2:16:25 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 134217728 bytes!
120914 2:16:25 [ERROR] Plugin 'InnoDB' init function returned error.
120914 2:16:25 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
120914 2:16:25 [ERROR] Unknown/unsupported storage engine: InnoDB
120914 2:16:25 [ERROR] Aborting

120914 2:16:25 [Note] /usr/sbin/mysqld: Shutdown complete

120914 02:16:25 mysqld_safe mysqld from pid file /var/lib/mysql//SERVER.local.pid ended
 
And what is not clear from there? It's all written, as I see it:




You should enable back InnoDB in /etc/my.cnf as it seems to be disabled there.

Hello. How i can run ''mysql_update''? And where?

This is my Config..

# Example MySQL config file for very large systems.
#
# This is for a large system with memory of 1G-2G where the system runs mainly
# MySQL.
#
# MySQL programs look for option files in a set of
# locations which depend on the deployment platform.
# You can copy this option file to one of those
# locations. For information about these locations, see:
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.

# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 2G
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking

# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1

# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
# the syntax is:
#
# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
#
# where you replace <host>, <user>, <password> by quoted strings and
# <port> by the master's port number (3306 by default).
#
# Example:
#
# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
# MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
# start replication for the first time (even unsuccessfully, for example
# if you mistyped the password in master-password and the slave fails to
# connect), the slave will create a master.info file, and any later
# change in this file to the variables' values below will be ignored and
# overridden by the content of the master.info file, unless you shutdown
# the slave server, delete master.info and restart the slaver server.
# For that reason, you may want to leave the lines below untouched
# (commented) and instead use CHANGE MASTER TO (see above)
#
# required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
#server-id = 2
#
# The replication master for this slave - required
#master-host = <hostname>
#
# The username the slave will use for authentication when connecting
# to the master - required
#master-user = <username>
#
# The password the slave will authenticate with when connecting to
# the master - required
#master-password = <password>
#
# The port the master is listening on.
# optional - defaults to 3306
#master-port = <port>
#
# binary logging - not required for slaves, but recommended
#log-bin=mysql-bin
#
# binary logging format - mixed recommended
#binlog_format=mixed

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 2G
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
 
It seems, you've recently upgraded your MySQL version. So you might need to try it again:

Code:
./build mysql
 
Back
Top