Помогите с оптимизировать конфига MySQL

12
SC
На сайте с 18.01.2008
Offline
34
5136

Прочитал кучу мануалов, и никак не могу разобраться с настройкой MySQL.

Процесс mysql грузит сервер на 65%.

Сервер G540, 4GB, CentOS

Вот конфиг

[mysqld]

port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 32M
table_open_cache = 2048
sort_buffer_size = 4M
read_buffer_size = 4M
read_rnd_buffer_size = 3072K
myisam_sort_buffer_size = 64M
thread_cache_size = 120
query_cache_size = 64M
thread_concurrency = 8
max_connections = 400
max_heap_table_size = 96M
join_buffer_size = 2M
query_cache_limit = 2M
tmp_table_size = 48M
# add
#table_cache = 2048
#thread_stack = 128K
max_binlog_size=100M
long-query-time = 2
log-slow-queries=/tmp/mysql-slow.log
[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 = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

Анализ

------- General Statistics --------------------------------------------------

[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.20-cll
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 1G (Tables: 1633)
[--] Data in InnoDB tables: 51M (Tables: 93)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] Total fragmented tables: 160


-------- Performance Metrics -------------------------------------------------
[--] Up for: 9h 23m 44s (1M q [46.094 qps], 85K conn, TX: 5B, RX: 243M)
[--] Reads / Writes: 89% / 11%
[--] Total buffers: 512.0M global + 13.2M per thread (400 max threads)
[!!] Maximum possible memory usage: 5.7G (148% of installed RAM)
[OK] Slow queries: 0% (2K/1M)
[OK] Highest usage of available connections: 10% (40/400)
[OK] Key buffer size / total MyISAM indexes: 256.0M/222.5M
[OK] Key buffer hit rate: 100.0% (96M cached / 29K reads)
[OK] Query cache efficiency: 41.9% (526K cached / 1M selects)
[!!] Query cache prunes per day: 63538
[OK] Sorts requiring temporary tables: 1% (2K temp sorts / 262K sorts)
[!!] Joins performed without indexes: 2879
[!!] Temporary tables created on disk: 33% (30K on disk / 88K total)
[OK] Thread cache hit rate: 99% (40 created / 85K connections)
[OK] Table cache hit rate: 98% (2K open / 2K opened)
[OK] Open file limit used: 78% (3K/4K)
[OK] Table locks acquired immediately: 99% (884K immediate / 887K locks)
[OK] InnoDB data size / buffer pool: 51.3M/128.0M

-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Reduce your overall MySQL memory footprint for system stability
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
Variables to adjust:
*** MySQL's maximum memory usage is dangerously high ***
*** Add RAM before increasing MySQL buffer variables ***
query_cache_size (> 64M)
join_buffer_size (> 2.0M, or always use indexes with joins)
tmp_table_size (> 48M)
max_heap_table_size (> 96M)

Скрин top

[ATTACH]106480[/ATTACH]

jpg 1.jpg
N
На сайте с 06.05.2007
Offline
419
#1

SanyCF, практически нереально получить существенный результат изменяя одни лишь настройки mysql. Глупо думать, что mysql изначально плохой.

Без программистских приемов в понимании оптимизации mysql не обойтись.

Кнопка вызова админа ()
Den73
На сайте с 26.06.2010
Offline
523
#2

какие запросы сыпятся в базы?

может у вас таблицы битые и вообще при каких обстоятельствах это началось?

SC
На сайте с 18.01.2008
Offline
34
#3

В один прекрасный день начал перегружатся сервер, не открывались страницы. Потом он просто отключился. После перезапуска все заработало.

На следующий день писало, что количество подключений к бд максимальное, и сайт открывался с 10-го раза. Позже сервер сново перестал работать.

На данный момент все работает нормально, но процесс mysql потребляет множество ресурсов.

pupseg
На сайте с 14.05.2010
Offline
364
#4

включите

log_slow_queries=/var/log/mysql_slow.log

и посмотрите - что у вас так часто обращается к базе.

Качественная помощь в обслуживании серверов. (/ru/forum/661100) Бесплатных консультаций не даю, не помогаю, не обучаю. Минималка от 100$. Как пропатчить KDE-просьба не спрашивать. Есть форумы (http://linux.org.ru) и полезные сайты (http://www.opennet.ru/).
LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#5

А вы не думайте, что ваши сайты стали популярными или вас ддосят?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Ria.neiron
На сайте с 22.03.2009
Offline
352
#6

Все подряд запросы, наверно, нет смысла смотреть?

long-query-time=5 покажет запросы, которые выполняются дольше 5 сек. дальше уменьшать число.

---------- Добавлено 31.03.2012 в 07:56 ----------

Попробуйте очистить кофиг мускула от этого знатного тюнинга и посмотреть на нагрузку.

Был случай, когда заоптимизировали мускул так, что он грузился проц под 30% )) очистка конфига от этого мусора уменьшила нагрузку до 3%

Безлимитные серверы 100 Mbps от 29$. (http://megahoster.net/server_nl.php) Нидерланды Безлимитные серверы 1 Gbps от 59$ (http://megahoster.net/server_fr.php) Франция, США Администрирование серверов и перенос сайтов - бесплатно!
Andreyka
На сайте с 19.02.2005
Offline
822
#7

148% of installed RAM - я не удивляюсь. Бейте в бубен своему админу за такие настройки.

Не стоит плодить сущности без необходимости
SC
На сайте с 18.01.2008
Offline
34
#8
включите
log_slow_queries=/var/log/mysql_slow.log
и посмотрите - что у вас так часто обращается к базе.

Лог медленных запросов включен уже 2 дня.

Там основной сайт - это dle 7.3, при входе на главную и другие страницы делает 19 запросов к мускулу. Посещаемость где-то 4000-5000 хостов. Выполняются все запросы за 0.8 - 2.0 секунды.

Другой сайт на 9.5 версии, там при входе на главную 0-3 запроса, посещаемость 1000-1500 хостов. Выполняются запросы всреднем за 0,003сек.

Кеш везде включен.

Другие сайты мелкие по 20-30 человек (штук 40-50).

Был случай, когда заоптимизировали мускул так, что он грузился проц под 30% )) очистка конфига от этого мусора уменьшила нагрузку до 3%

От какого именно мусора нужно очистить? Пробовал стандартные значения конфига hugo, не помогает!

148% of installed RAM - я не удивляюсь. Бейте в бубен своему админу за такие настройки.

Как понизить? Конфиг я составлял (Этот момент с памятью никак не могу исправить)

N
На сайте с 06.05.2007
Offline
419
#9
SanyCF:
Цитата:
148% of installed RAM - я не удивляюсь. Бейте в бубен своему админу за такие настройки.
Как понизить? Конфиг я составлял (Этот момент с памятью никак не могу исправить)

ну max_connections = 400 то уменьши. Реально 400 соединений не быть на таком скромном сервере. Число соединений обычно не больше числа запущенных процессов php. Разумно ограничивать именно число копий php и наблюдать сколько mysql на практике потребляет, а это уведомление от mysqltuner о превышении памяти игнорировать.

SanyCF:
Лог медленных запросов включен уже 2 дня.

Ну так и проанализируй его. Лучше программой чем глазами.

да и DLE 7.3 можно обновить. В последующих версиях DLE запросы стали получше.

SC
На сайте с 18.01.2008
Offline
34
#10
netwind:
ну max_connections = 400 то уменьши. Реально 400 соединений не быть на таком скромном сервере. Число соединений обычно не больше числа запущенных процессов php. Разумно ограничивать именно число копий php и наблюдать сколько mysql на практике потребляет, а это уведомление от mysqltuner о превышении памяти игнорировать.

Ну так и проанализируй его. Лучше программой чем глазами.
да и DLE 7.3 можно обновить. В последующих версиях DLE запросы стали получше.

На даный момент процесс mysql по статистике ispmanager потребляет

[ATTACH]106512[/ATTACH]

[ATTACH]106513[/ATTACH]

Сайт на dle 7.3 не мой, да и он сделан как музыкальный сайт, там много модулей и почти все переписано. Обновить не могу.

jpg 1.jpg
jpg 2.jpg
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий