|
|
|
Помогите разобраться с настройкой MySQL, в htop'e очень много запущенных процессов MySQL
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. С недавних пор столкнулся с проблемой, мускуль стал мне съедать мозг, а за одно и все ресурсы сервака. В начале появляется 1-2 процесса, которые жрут по 100+ % CPU, потом постепенно снижается нагрузка на один процесс, вместо этого создаётся новый и идёт перераспределение, далее опять создаётся мускуль процесс и опять нагрузка между новым и существующими делится и т.д, в итоге после продолжительного времени вижу (примерно 12ч.) вижу процессов 20-30, которые жрут по ~15% CPU. при этом Load Average доходит до 50.00 + http://fastpic.ru/view/62/2014/0521/02651643b84e2ca1799348666c544451.png.html][IMG] http://i62.fastpic.ru/thumb/2014/0521/51/02651643b84e2ca1799348666c544451.jpeg [/IMG] Сервак используется как хостинг, в него забито примерно 400 сайтов, сделанных на всяких вордпресах и джумле всего такого добра где то под 400 сайтов ... В серваке физически 32гб. оперативы, 2 проца по 4 ядра, винты сатовские (10 рейд). На серваке стоит виртуальная машина vmware где запилина isp manager панель. Что примечательно хостинг жил спокойно (относительно) до недавних пор, где то месяц назад начал вдруг плодить процессы mysql. Соотношение Threads_cached к Threads_created, после рестарта и часа работы где то 12 и 5, после продолжительной работы такая вот хрень: | Threads_cached | 2 | | Threads_connected | 56 | | Threads_created | 1148 | | Threads_running | 48 | Менял дофига настроек, результат не охотно меняется. Конфиг правил в /etc/mysql/my.cnf Последнее, что пробовал это: автор[mysqld] port = 3306 socket = /var/run/mysqld/mysqld.sock skip-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M # Try number of CPU's*2 for thread_concurrency thread_concurrency = 8 И автор[mysqld] port = 3306 socket = /var/run/mysqld/mysqld.sock skip-locking key_buffer_size = 512M #max_allowed_packet = 1M table_open_cache = 512 sort_buffer_size = 2M read_buffer_size = 256K read_rnd_buffer_size = 8M myisam_sort_buffer_size = 512M #thread_cache_size = 8 #query_cache_size = 32M # Try number of CPU's*2 for thread_concurrency thread_concurrency = 6 #key_buffer = 512M max_allowed_packet = 16M thread_stack = 128K thread_cache_size = 16 thread_cache = 8 max_connections = 20 table_cache = 2048 tmp_table_size = 32M max_heap_table_size = 256M join_buffer_size = 1M query_cache_limit = 4M query_cache_size = 64M query_cache_type = 1 interactive_timeout=600 wait_timeout=10 net_read_timeout = 15 net_write_timeout = 15 log-bin=mysql-bin server-id = 1 Установил mysqltuner, суток ещё не прошло, но пока он мне вот, что говорит: автор-------- General Statistics -------------------------------------------------- [--] Skipped version check for MySQLTuner script [OK] Currently running supported MySQL version 5.1.63-0+squeeze1-log [OK] Operating on 64-bit architecture -------- Storage Engine Statistics ------------------------------------------- [--] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster [--] Data in MyISAM tables: 1G (Tables: 5990) [--] Data in InnoDB tables: 329M (Tables: 2093) [--] Data in MEMORY tables: 0B (Tables: 110) [!!] Total fragmented tables: 2691 -------- Performance Metrics ------------------------------------------------- [--] Up for: 2h 29m 49s (365K q [40.686 qps], 15K conn, TX: 1B, RX: 65M) [--] Reads / Writes: 75% / 25% [--] Total buffers: 298.0M global + 6.4M per thread (151 max threads) [OK] Maximum possible memory usage: 1.2G (7% of installed RAM) [OK] Slow queries: 0% (1K/365K) [OK] Highest usage of available connections: 33% (51/151) [OK] Key buffer size / total MyISAM indexes: 256.0M/160.5M [OK] Key buffer hit rate: 100.0% (419M cached / 35K reads) [OK] Query cache efficiency: 64.6% (165K cached / 256K selects) [!!] Query cache prunes per day: 167254 [OK] Sorts requiring temporary tables: 0% (38 temp sorts / 22K sorts) [!!] Joins performed without indexes: 1162 [!!] Temporary tables created on disk: 42% (13K on disk / 32K total) [OK] Thread cache hit rate: 95% (730 created / 15K connections) [!!] Table cache hit rate: 0% (256 open / 47K opened) [OK] Open file limit used: 39% (402/1K) [OK] Table locks acquired immediately: 99% (147K immediate / 148K locks) [!!] InnoDB data size / buffer pool: 329.2M/8.0M -------- Recommendations ----------------------------------------------------- General recommendations: Run OPTIMIZE TABLE to defragment tables for better performance MySQL started within last 24 hours - recommendations may be inaccurate Enable the slow query log to troubleshoot bad queries Adjust your join queries to always utilize indexes When making adjustments, make tmp_table_size/max_heap_table_size equal Reduce your SELECT DISTINCT queries without LIMIT clauses Increase table_cache gradually to avoid file descriptor limits Variables to adjust: query_cache_size (> 16M) join_buffer_size (> 128.0K, or always use indexes with joins) tmp_table_size (> 16M) max_heap_table_size (> 16M) table_cache (> 256) innodb_buffer_pool_size (>= 329M) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2014, 21:01:17 |
|
||
|
Помогите разобраться с настройкой MySQL, в htop'e очень много запущенных процессов MySQL
|
|||
|---|---|---|---|
|
#18+
Думается, посмотреть бы для начала SHOW PROCESSLIST внимательно. Возможно, какой-то пользователь активно загружает сервер долгоиграющими запросами. Посмотреть лог медленных запросов. Проверить индексы, мож побились на каких то активно используемых таблицах. Напоследок поглядеть дисковую подсистему сервера, ошибки файловой системы. автор[!!] InnoDB data size / buffer pool: 329.2M/8.0MДумаю, 8 метров действительно маловато. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2014, 21:51:54 |
|
||
|
Помогите разобраться с настройкой MySQL, в htop'e очень много запущенных процессов MySQL
|
|||
|---|---|---|---|
|
#18+
nerei, посмотрите: inside_mysql >> show processlist; или sh>> yum install mytop sh>> mytop Один из вариантов -- старые треды застряли -- какой-нибудь (недавно появившийся) клиент не закрывает конекции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2014, 22:06:26 |
|
||
|
Помогите разобраться с настройкой MySQL, в htop'e очень много запущенных процессов MySQL
|
|||
|---|---|---|---|
|
#18+
vkle , javajdbc Спасибо, действительно запрос помог разобраться, поймал несколько пользователей, где некоторые кадры просто сидели с chmod 777 на всё, а некоторые просто ошибки в таблицах mysql, наподобие: Table is marked as crashed 9 clients are using or haven't closed the table properly Unexpected byte: 0 at link: 456616 Больше всего я удивился когда увидел базу в 1гб(!), как так могла база разожраться ? И там куча сообщений 18,40,70...n clients are using or haven't closed the table properly ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2014, 19:34:59 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38649529&tid=1834780]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
59ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 361ms |

| 0 / 0 |
