MySQL přetíží jádro a nefunguje

Petr

MySQL přetíží jádro a nefunguje
« kdy: 12. 04. 2012, 19:35:08 »
Dobrý den
Potřeboval bych poradit. Poslední dobou se mně děsně zasekává mysql.

První jádro vyjede na 100% a přestanou se načítat web stránky.
Používám mysql 5.5.17
OS: FreeBSD 9
RAM: 8 GB
Procesor: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz

A vyloučil jsem možnost, že je slabý stroj.

Děkuji za každou radu / odpověď
« Poslední změna: 12. 04. 2012, 23:16:53 od Petr Krčmář »


#

Re:Zatížený MySQL - Problém
« Odpověď #1 kdy: 12. 04. 2012, 19:44:03 »
Zkus to projet timhle skriptem, mel by ti vyhodit naky rady co kde poladit pro zacatek - https://launchpad.net/mysql-tuning-primer

Petr

Re:Zatížený MySQL - Problém
« Odpověď #2 kdy: 12. 04. 2012, 19:47:24 »
Toto mně tam vyjelo moc se v tom nevyznám co bych měl poladit v my.cfg

Kód: [Vybrat]
Warning: Server has not been running for at least 48hrs.
It may not be safe to use these recommendations

To find out more information on how each of these
runtime variables effects performance visit:
http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html
Visit http://www.mysql.com/products/enterprise/advisors.html
for info about MySQL's Enterprise Monitoring and Advisory Service

SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 10.000000 sec.
You have 1596 out of 533578 that take longer than 10.000000 sec. to complete
[: 0.00000000000000000000: bad number
Your long_query_time seems to be fine

BINARY UPDATE LOG
The binary update log is enabled
The expire_logs_days is not set.
The mysqld will retain the entire binary log until RESET MASTER or PURGE MASTER LOGS commands are run manually
Setting expire_logs_days will allow you to remove old binary logs automatically
See http://dev.mysql.com/doc/refman/5.5/en/purge-master-logs.html
Binlog sync is not enabled, you could loose binlog records during a server crash

WORKER THREADS
Current thread_cache_size = 0
Current threads_cached = 0
Current threads_per_sec = 2
Historic threads_per_sec = 0
Threads created per/sec are overrunning threads cached
You should raise thread_cache_size

MAX CONNECTIONS
Current max_connections = 10285
Current threads_connected = 66
Historic max_used_connections = 180
The number of used connections is 1% of the configured maximum.
You are using less than 10% of your configured max_connections.
Lowering max_connections could help to avoid an over-allocation of memory
See "MEMORY USAGE" section to make sure you are not over-allocating

INNODB STATUS
Current InnoDB index space = 0 bytes
Current InnoDB data space = 2 M
Current InnoDB buffer pool free = 94 %
Current innodb_buffer_pool_size = 128 M
Depending on how much space your innodb indexes take up it may be safe
to increase this value to up to 2 / 3 of total system memory

MEMORY USAGE
Max Memory Ever Allocated : 683 M
Configured Max Per-thread Buffers : 29.19 G
Configured Max Global Buffers : 160 M
Configured Max Memory Limit : 29.34 G
Physical Memory : 8.75 G

Max memory limit exceeds 90% of physical memory

KEY BUFFER
Current MyISAM index space = 33 M
Current key_buffer_size = 16 M
Key cache miss rate is 1 : 43
Key buffer free ratio = 54 %
Your key_buffer_size seems to be fine

QUERY CACHE
Query cache is supported but not enabled
Perhaps you should set the query_cache_size

SORT OPERATIONS
Current sort_buffer_size = 1 M
Current read_rnd_buffer_size = 1 M
Sort buffer seems to be fine

JOINS
Current join_buffer_size = 132.00 K
You have had 0 queries where a join could not use an index properly
Your joins seem to be using indexes properly

OPEN FILES LIMIT
Current open_files_limit = 11095 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine

TABLE CACHE
Current table_open_cache = 64 tables
Current table_definition_cache = 400 tables
You have a total of 268 tables
You have 64 open tables.
Current table_cache hit rate is 0%
, while 100% of your table cache is in use
You should probably increase your table_cache

TEMP TABLES
Current max_heap_table_size = 16 M
Current tmp_table_size = 16 M
Of 837 temp tables, 13% were created on disk
Created disk tmp tables ratio seems fine

TABLE SCANS
Current read_buffer_size = 512 K
Current table scan ratio = 2194 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 1 : 81
You may benefit from selective use of InnoDB.
If you have long running SELECT's against MyISAM tables and perform
frequent updates consider setting 'low_priority_updates=1'
If you have a high concurrency of inserts on Dynamic row-length tables
consider setting 'concurrent_insert=ALWAYS'.

lupex

Re:Zatížený MySQL - Problém
« Odpověď #3 kdy: 12. 04. 2012, 21:18:08 »
S doporučením to umí  mysqltuner.pl.

jj

Re:Zatížený MySQL - Problém
« Odpověď #4 kdy: 12. 04. 2012, 21:26:53 »
Podival bych se na mytop, pripadne show processlist v mysql konzoli. Tipnul bych to na nejaky zpraseny dotaz. Slow query log by asi taky napovedel.


Re:Zatížený MySQL - Problém
« Odpověď #5 kdy: 12. 04. 2012, 22:32:32 »
a hlavne se zamyslet ...

pres 10k spojeni ? proboha proc ?
to je ten duvod, proc si muze mysql alokovat nekolikanasobne vic pameti, nez ma server fyzicky ...

#

Re:Zatížený MySQL - Problém
« Odpověď #6 kdy: 12. 04. 2012, 22:39:51 »
No zacal bych tady -

MAX CONNECTIONS
Current max_connections = 10285
Current threads_connected = 66
Historic max_used_connections = 180
The number of used connections is 1% of the configured maximum.
You are using less than 10% of your configured max_connections.
Lowering max_connections could help to avoid an over-allocation of memory
See "MEMORY USAGE" section to make sure you are not over-allocating

A snizil max connestions treba na 250 z tech +10k, coz ti porad dava nakych 70% rezervu, nez je historickej max spojeni

Re:MySQL přetíží jádro a nefunguje
« Odpověď #7 kdy: 13. 04. 2012, 06:44:46 »
No a az si uvolnite pamet touhle nesmyslnou alokaci diky max_connection, tak by to chtelo par udaju:

kolik dat a indexu je v MyISAM a kolik v InnoDb ( kazde zvlast prosim )? Jak vypada stavajici konfigurace ?

Kolik z tech 8 GB je mozne alokovat pro mysql ? ( tak trosku nepredpokladam, ze tam je jen mysql a holy system )

Jak rychle jsou disky ?

Re:MySQL přetíží jádro a nefunguje
« Odpověď #8 kdy: 13. 04. 2012, 07:09:43 »
1596 out of 533578 that take longer than 10.000000 sec.

myslím že první do čeho bych koukal je co nad tou DB vlastně běží. pokud to není analytická úloha (u které se dá předpokládat že může být pomalejší a víc jak 10 sekund na dotaz se dá přežít) tak žádné ladění v mysql nepomůže.
„Řemeslo se naučí každý. Umění nikdo.“
„Jednoduchost je nejvyšší úroveň sofistikovanosti.“
- Leonardo Da Vinci

Petr

Re:MySQL přetíží jádro a nefunguje
« Odpověď #9 kdy: 13. 04. 2012, 07:13:27 »
Dobrý den

Problém vyřešen díky "mysqltuner.pl"
Děkuji všem za pomoc.

A přeji pěkný prožití 13 pátka. Petr