We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

mysql - duże obciążenie


Lewyx
22-01-2014, 21:51
Poszło na pw

Linux admin
22-01-2014, 21:35
long_query_time powinno być liczbą. Ustaw na początek 2 i potem sprawdź co jest w logu. mysql-slow.log pokaże powolne zapytania i jak długo trwają. Bierzesz takie zapytanie i używasz tak:

EXPLAIN zapytanie

np.

EXPLAIN SELECT post FROM posty WHERE id = 453;

Jeżeli nie znasz MySQL na tyle aby np. poprawnie stworzyć indeksy to proponuję pomoc odpłatną - skontaktuj się na priv jeżeli jesteś zainteresowany.

Lewyx
22-01-2014, 21:30
Ustawiłem:

Kod:
log_slow_queries= /var/log/mysql/mysql-slow.log
i plik /var/log/mysql/mysql-slow.log rośnie w zastraszającym tempie.
Podejrzewam o którą bazę może chodzić, jak użyć explain?
Ewentualnie co zrobić z tą bazą, aby nie obciążała systemu tak okrutnie.

Dzięki za podpowiedź.

Pzdr

Linux admin
22-01-2014, 20:53
najbardziej wygląda to na problem z samymi zapytaniami - prawdopodobnie nie używają indeksu. Zainteresuj się opcjami log_slow_queries i long_query_time aby znaleźć obciążające zapytania a potem użyj polecenia "explain" aby zobaczyć czy używają indeksów. Podałeś mało informacji ale stawiam na problem z zapytaniami i schematem bazy a nie konfiguracją bazy. Jeżeli tak, nie spodziewaj się, że jakaś opcja w my.cnf poprawi sytuację.

Lewyx
22-01-2014, 19:52
Czołem,
Mam "mały" problem z mysqlem.
Mianowicie, zżera mi 100 % CPU i 4 GB ram kilka minut po uruchomieniu.
Próbowałem edytować poniższe wartości wg. różnych how to, ale to nie podziałało, może któryś z Was miał podobny problem i go rozwiązał

Kod:
key_buffer              = 16M
key_buffer_size         = 64M
max_allowed_packet      = 16M
thread_stack            = 192K
thread_cache_size       = 8
max_connections        = 200
table_cache            = 60
query_cache_limit       = 8M
query_cache_size        = 64M
mysqltunner wygląda następująco:

Kod:
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 528M (Tables: 484)
[--] Data in InnoDB tables: 480K (Tables: 6)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] Total fragmented tables: 19

-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 29m 29s (107K q [60.911 qps], 3K conn, TX: 4B, RX: 44M)
[--] Reads / Writes: 70% / 30%
[--] Total buffers: 288.0M global + 2.7M per thread (200 max threads)
[OK] Maximum possible memory usage: 825.5M (16% of installed RAM)
[!!] Slow queries: 99% (107K/107K)
[OK] Highest usage of available connections: 33% (66/200)
[OK] Key buffer size / total MyISAM indexes: 64.0M/204.5M
[OK] Key buffer hit rate: 99.0% (18M cached / 176K reads)
[OK] Query cache efficiency: 66.7% (51K cached / 76K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (5 temp sorts / 7K sorts)
[!!] Joins performed without indexes: 8
[OK] Temporary tables created on disk: 1% (64 on disk / 4K total)
[OK] Thread cache hit rate: 85% (585 created / 3K connections)
[!!] Table cache hit rate: 0% (61 open / 14K opened)
[OK] Open file limit used: 7% (77/1K)
[!!] Table locks acquired immediately: 90%
[OK] InnoDB data size / buffer pool: 480.0K/128.0M

-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    MySQL started within last 24 hours - recommendations may be inaccurate
    Adjust your join queries to always utilize indexes
    Increase table_cache gradually to avoid file descriptor limits
    Optimize queries and/or use InnoDB to reduce lock wait
Variables to adjust:
    join_buffer_size (> 128.0K, or always use indexes with joins)
    table_cache (> 60)
Pozdro