This is a read-only copy of the MariaDB Knowledgebase generated on 2024-11-16. For the latest, interactive version please visit https://mariadb.com/kb/.

Maria 10.0.15 high CPU/disk usage without queries

I just migrated the server from mysql 5.5 to mariadb 10.0.15 It is a web hosting server with about 100 sites on different platforms. So, there are about 100 databases. Most tables myisam, some innodb (mostly joomla 3)

Before with mysql CPU load was less than 10%, disk uses by mysqld was also not very high. No, with top and top -mio i see pretty high numbers. mysqld takes from 20 to 30% cpu and 80-100% disk

About configuration. It is xeon 4 cores+HT (8 cores seen by OS) with 32GB ram, 2 3TB SATA disks in software mirror.

os is FreeBSD 10.1 stable

I tried using thread of pools, one thread per connection - all the same The weird think what i show processlist i ass about 20 haning connection without any question. This is is normal, some sites leave connections for a while (mod_perl, php) the weirdness is that thare no queies while 20-30% load of CPU.

What is mariddb doing?

my.cnf

[mysqld]
#thread-handling=  one-thread-per-connection
thread_handling=pool-of-threads
thread_pool_size=4
thread_cache_size = 45

init-connect='SET NAMES cp1251'
default-storage-engine = MyISAM
port= 3306
socket= /hoster/tmp/mysql.sock
skip-external-locking
skip-networking

slow_query_log=1
slow_query_log_file=/hosts/MYSQLDB/slow.log

# GLOBAL
max_connections=800
max_allowed_packet = 50M
key_buffer_size = 512M
table_open_cache = 32768
query_cache_size = 256M
query_cache_limit = 32M

# PER THREAD
read_buffer_size = 2M

# PER REQUEST
sort_buffer_size = 32M
read_rnd_buffer_size = 1M
myisam_sort_buffer_size = 128M
join_buffer_size=2M


server-id       = 1


innodb_data_home_dir =  /hosts/MYSQLDB
innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
innodb_log_group_home_dir =  /hosts/MYSQLDB
innodb_buffer_pool_size = 384M
innodb_log_file_size = 100M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 3
innodb_lock_wait_timeout = 50

Answer Answered by Artem Kuchin in this comment.

I'll comment by own question :)

I futher got stats on users and clients and found that there are two users which are doing select statements like crazy. Stats show liek 10M lines selected in minutes. However, i still do not see their queries using show processlist however, full query log show all their crazy select queries. Two questions arise: 1) Why show proccesslist is always empty? 2) Why i did not see such load before?

I wild guess is that mariadb and new freebsd version/setup are times faster than myssql on older config and i just cannot catch the queries, they are all executed extremely fast. And this "fastness" must come with higher cpu load. CPU is the same. So, if more work is done per seconds then i must see higher load. Probably before hdd or memory or mysql itself something was the bottleneck and CPU was very much underloaded, now, that bottlenecks are gone CPU got its load. And indeed i see that all queries now exected faster and sites are actually more responsive.

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.