powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Срочно нужна помощь с оптимизацией INNODB
25 сообщений из 71, страница 1 из 3
Срочно нужна помощь с оптимизацией INNODB
    #38838505
kayuchkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, добрый день!
Помогите, пжлста, не можем понять в чём дело.

Есть INNODB-база, размером 6Gb.
На сервере практически ничего, кроме базы нет. Размер оперативной памяти -- 16Gb.
Всё работало нормально, с недавних пор база начала жутко тормозить и вешать сервер, примерно вот так:

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
last pid: 16384;  load averages: 78.58, 77.64, 76.12                                                                                                                                up 2+18:35:12  21:39:50
60 processes:  4 running, 56 sleeping
CPU: 99.1% user,  0.0% nice,  0.9% system,  0.0% interrupt,  0.0% idle
Mem: 5086M Active, 7529M Inact, 2018M Wired, 1876M Buf, 1146M Free
Swap: 4096M Total, 4096M Free

  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
 9476 mysql       117  22    0  9427M  5304M RUN     1  67.4H 151.12% mysqld
 1940 www           1  20    0   290M 44172K accept  0   1:25  0.49% httpd
15522 www           1  42    0   290M 38540K accept  1   1:37  0.00% httpd
15543 www           1  35    0   290M 44996K accept  0   1:33  0.00% httpd
…



Вот что показывает mytop:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
MySQL on localhost (5.5.38-log)                                                                                                                                                     up 1+13:48:17 [21:46:12]
 Queries: 44.9M  qps:  346 Slow:    3.1k         Se/In/Up/De(%):    60/00/19/00 

 Cache Hits: 3.5M  Hits/s: 26.6 Hits now:   0.0  Ratio: 12.9% Ratio now:  0.0% 
 Key Efficiency: 100.0%  Bps in/out: 68.5k/138.0k   

    Id      User         Host/IP         DB      Time    Cmd Query or State                                                                                                                                 
    --      ----         -------         --      ----    --- ----------                                                                                                                                     
...



В топе самые разные запросы, время выполнения везде нулевое.

Вот my.cnf:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
[mysqld]
datadir=/var/db/mysql
socket=/tmp/mysql.sock
max_connections=100
innodb_buffer_pool_size=8G
innodb_use_sys_malloc=0
innodb_file_per_table=1

max_heap_table_size=128M
innodb_flush_log_at_trx_commit = 0

wait_timeout = 5
interactive_timeout =   30

log-slow-queries = /var/log/mysqld/mysql-slow.log
long_query_time = 5
key_buffer_size = 16M
query_cache_size = 128M
query_cache_limit = 32M
table_cache = 500
thread_cache_size=4
sort_buffer_size = 16M
myisam_sort_buffer_size = 16M
join_buffer_size = 16M
ft_min_word_len = 2
tmp_table_size = 128M
max_tmp_tables = 64
tmpdir = /tmp/mysqltemp

[client]
default-character-set=cp1251

[mysql.server]
user=mysql
basedir=/var/db/mysql



Mysqltuner показывает вот что:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
[OK] Currently running supported MySQL version 5.5.38-log
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +CSV +InnoDB +MRG_MYISAM 
[--] Data in InnoDB tables: 2G (Tables: 64)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] Total fragmented tables: 17

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

-------- Performance Metrics -------------------------------------------------
[--] Up for: 1d 13h 55m 1s (47M q [346.190 qps], 280K conn, TX: 19B, RX: 9B)
[--] Reads / Writes: 72% / 28%
[--] Total buffers: 8.3G global + 32.6M per thread (100 max threads)
[OK] Maximum possible memory usage: 11.5G (72% of installed RAM)
[OK] Slow queries: 0% (3K/47M)
[!!] Highest connection usage: 100%  (101/100)
[OK] Key buffer size / total MyISAM indexes: 16.0M/95.0K
[OK] Key buffer hit rate: 100.0% (257M cached / 16 reads)
[!!] Query cache efficiency: 12.9% (3M cached / 28M selects)
[!!] Query cache prunes per day: 4107
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 332K sorts)
[!!] Temporary tables created on disk: 48% (246K on disk / 510K total)
[OK] Thread cache hit rate: 97% (8K created / 280K connections)
[!!] Table cache hit rate: 3% (500 open / 14K opened)
[OK] Open file limit used: 0% (1/11K)
[OK] Table locks acquired immediately: 99% (75M immediate / 75M locks)
[!!] Connections aborted: 6%
[OK] InnoDB buffer pool / data size: 8.0G/2.2G
[OK] InnoDB log waits: 0



И вот ещё статус mysql:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
mysql> show global status like '%qcache%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| Qcache_free_blocks      | 651       |
| Qcache_free_memory      | 116680592 |
| Qcache_hits             | 3637010   |
| Qcache_inserts          | 16896324  |
| Qcache_lowmem_prunes    | 6490      |
| Qcache_not_cached       | 7627513   |
| Qcache_queries_in_cache | 3252      |
| Qcache_total_blocks     | 7409      |
+-------------------------+-----------+

mysql> show global status like '%open%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| Com_ha_open              | 0      |
| Com_show_open_tables     | 0      |
| Open_files               | 49     |
| Open_streams             | 0      |
| Open_table_definitions   | 105    |
| Open_tables              | 500    |
| Opened_files             | 988862 |
| Opened_table_definitions | 213    |
| Opened_tables            | 14348  |
| Slave_open_temp_tables   | 0      |
+--------------------------+--------+

mysql> show global variables like '%cache%';
+------------------------------+----------------------+
| Variable_name                | Value                |
+------------------------------+----------------------+
| binlog_cache_size            | 32768                |
| binlog_stmt_cache_size       | 32768                |
| have_query_cache             | YES                  |
| key_cache_age_threshold      | 300                  |
| key_cache_block_size         | 1024                 |
| key_cache_division_limit     | 100                  |
| max_binlog_cache_size        | 18446744073709547520 |
| max_binlog_stmt_cache_size   | 18446744073709547520 |
| metadata_locks_cache_size    | 1024                 |
| query_cache_limit            | 33554432             |
| query_cache_min_res_unit     | 4096                 |
| query_cache_size             | 134217728            |
| query_cache_type             | ON                   |
| query_cache_wlock_invalidate | OFF                  |
| stored_program_cache         | 256                  |
| table_definition_cache       | 400                  |
| table_open_cache             | 500                  |
| thread_cache_size            | 4                    |
+------------------------------+----------------------+
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838506
kayuchkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Готовы заплатить за оперативное решение проблемы.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838522
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во временном каталоге (обычно /tmp) что происходит?
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838524
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что попадает в mysql-slow.log ?
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838527
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kayuchkin
Код: sql
1.
[!!] Temporary tables created on disk: 48% (246K on disk / 510K total)

Основная проблема мне видится здесь.
Что-то произошло, и временные таблицы стали сваливаться на диск.
Вспоминайте, что менялось непосредственно перед тем, как возникла проблема.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838544
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kayuchkinГотовы заплатить за оперативное решение проблемы.

ds, хоть емейл открыли
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838546
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftkayuchkin
Код: sql
1.
[!!] Temporary tables created on disk: 48% (246K on disk / 510K total)

Основная проблема мне видится здесь.
Что-то произошло, и временные таблицы стали сваливаться на диск.
Вспоминайте, что менялось непосредственно перед тем, как возникла проблема.

на моё имхо вряд ли.
автор Highest connection usage: 100% (101/100)

я тупо за ддос.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838567
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторHighest connection usage: 100% (101/100)На мой взгляд это следствие того, что "Temporary tables created on disk: 48%". (пока отрабатывает один запрос, успевают набежать еще несколько).
По крайней мере, не наоборот.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838613
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kayuchkin,

1. По первой картинке явственно следует что сервак тупо не справляется с нагрузкой. Особых проблем с IO операциями ФС - явно нет.

2. СВОП файл от ОС - не используется, что говорит о достатке оперативы.

3. По тюнеру:
а) он прямо утверждает, что нехватает threads.
б) недостаточен кеш определений таблиц.
в) при избыточном буфере для иннодебилового кеша (8G при используемых 2.2G)
г) недостаточно оперативы для временных таблиц. 48% записи на диск - это многа.

Ну и из настроек бросается в глаза очень небольшой Join-buffer... не из-за этого создаются "времянки на диске"?

Ну и похоже, что дисковая подсистема сервера - явно слабовата. У вас в основном чтение. Поставьте нормальные серверные винты, хотя бы 2шт в raid1 и получите скорость чтения ФС от 240метров в секунду, вместо 60-80.

Возможно проблема в ДДОС, или его имитации. Тупо сервер не держит столько коннекций по другим местам и каждый запрос требует много мелких обращений к Мускулю ... кстати, там случаем Мускуль не настроен ДНС-ы искать?
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838635
kayuchkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, спасибо!
Если кто-то готов взяться за решение проблемы с оплатой за результат -- пишите на kayuchkin@gmail.com
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838760
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В джентльменский набор вопрошающего нужно еще включить pt-summary или даже pt-mysql-summary.
Он хотя бы приблизительное представление об конфигурации железа дает.

А тут особо халявы нет. Никто еще не смог парой параметров серьезно ускорить mysql. Ну разве что innodb_flush_log_at_trx_commit, но там уже 0.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838762
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А хотя тут еще freebsd. Не уверен даже что скрипт для этой умирающей экзотики правильно выдаст конфигурацию оборудования.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838849
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftkayuchkin
Код: sql
1.
[!!] Temporary tables created on disk: 48% (246K on disk / 510K total)

Основная проблема мне видится здесь.
Что-то произошло, и временные таблицы стали сваливаться на диск.
Вспоминайте, что менялось непосредственно перед тем, как возникла проблема.

А это ?
Код: sql
1.
[!!] Highest connection usage: 100%  (101/100)



не волнует ?
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838850
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА это ?
Код: sql
1.
[!!] Highest connection usage: 100%  (101/100)




не волнует ?я уже отвечал на это - 17026534
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838853
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftMasterZivА это ?
Код: sql
1.
[!!] Highest connection usage: 100%  (101/100)




не волнует ?я уже отвечал на это - 17026534

У них проблема скорее всего в

авторПомогите, пжлста, не можем понять в чём дело .

У них затык вообще в приложении, а они думают, что БД виновата.

ТС,
1) включите slow query log. Гуглите прямо так "mysql slow query log".
2) Увеличте максимальное число коннекций к БД. Процентов на 50 для начала.
Тут http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html сказано как.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838854
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivУ них затык вообще в приложении, а они думают, что БД виновата.в БД тоже не все гладко, как минимум.
По 2 временных файла на диске каждую секунду в среднем - это все-таки не мало. Если они хотя бы по сотне-другой мегабайт, то могут полностью утилизировать пропускную способность дисковой подсистемы.MasterZiv1) включите slow query log. Гуглите прямо так "mysql slow query log".Он включен. Вопрос о содержимом лога был. Ответа не было.
MasterZiv2) Увеличте максимальное число коннекций к БД. Процентов на 50 для начала.А смысл? ну встанут еще 50 сессий в очередь за ресурсами, которых нет, а толку-то?
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838945
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Да, тоже сколоняюсь к моменту о времянках. Там получается на каждый запрос к серверу-клиента (PHP?) создается примерно по 2 времянки, из которых 1 - похоже лезет на диск "всяко".

Ещё смушает 17 фрагментированных таблиц...

Да, slow log очень бы было полезно глянуть.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38838950
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Там получается на каждый запрос к серверу-клиента (PHP?) создается примерно по 2 времянкиА выделенное откуда следует?
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38839010
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Up for: 1d 13h 55m 1s (47M q [346.190 qps], 280K conn
и
Temporary tables created on disk: 48% (246K on disk / 510K total )


примерно 1 к 2. Не? :)
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38839032
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ребята, надо искать конкретику.
"сервер тормозит" - это не проблема.
надо брать самый тормозящий запрос и тюнить. потом брать следующий и тюнить. и так до тех пор, пока все не будет работать хорошо.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38839033
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivребята, надо искать конкретику.
"сервер тормозит" - это не проблема.
надо брать самый тормозящий запрос и тюнить. потом брать следующий и тюнить. и так до тех пор, пока все не будет работать хорошо.

сразу видно с вебом вы не сталкивались.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38839034
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowMasterZivребята, надо искать конкретику.
"сервер тормозит" - это не проблема.
надо брать самый тормозящий запрос и тюнить. потом брать следующий и тюнить. и так до тех пор, пока все не будет работать хорошо.

сразу видно с вебом вы не сталкивались.

да абсолютно все равно, web там или что.
бд запросы выполняет.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38839037
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ScareCrowMasterZivребята, надо искать конкретику.
"сервер тормозит" - это не проблема.
надо брать самый тормозящий запрос и тюнить. потом брать следующий и тюнить. и так до тех пор, пока все не будет работать хорошо.

сразу видно с вебом вы не сталкивались.
А в "моем" вебе эта техника нормально работает. Да и чего бы ей не работать, если люди думают и ошибаются примерно одинаково ?
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38839148
kayuchkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, добрый день!
большое спасибо за ваши ответы и советы!
По поводу "брать каждый запрос и тюнить":
Мы давно и достаточно долго оптимизировали структуру базы и запросы, проверяли что везде используются нужные индексы и т.д.
Более того, этот проект ( http://puzzleit.ru) существует уже несколько лет, до этого он крутился на одном сервере при посещаемости около 200-300 просмотров страниц в сутки, сервер справлялся вообще без напрягов, проблем не было.
Недавно перенесли базы на отдельный сервер (он у нас пустовал -- такой же конфигурации, в этом же дата-центре, только оперативной памяти вдвое больше). После этого начались проблемы с базой. Очевидно, что проблема где-то в неправильной настройке базы или сервера, а не в неоптимизированных запросах.
...
Рейтинг: 0 / 0
Срочно нужна помощь с оптимизацией INNODB
    #38839157
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дополню по результатам просмотра на серверах:

1. С фряхой последний раз общался году в 93-м, поэтому нифига не помню где там и что ... не судить строго.

2. На обоих серверах стоит Мускуль, slow log есть и там и там, но с разным размером и датой:

На "основном серваке puzzleit.ru - он большой 366.7М от 21.12 03:10, а на серваке с БД - "маленький" 1.4М от 21.12 20:22.
Пока шарился - размеры файлов не менялись. Времена - тоже.

Или на серверах не настроено единое время ... или это разные БД. Где лежат файлы настройки Мускуля и файлы реплики, если таковая есть - не нашел.

В обоих логах есть запросы с левыми джойнами к 3 табличкам и с временем выполнения от 6.8 до 29 сек. При этом Мускуль просматривает от 1 до 4 миллионов записей с итогом выдачи от пусто до 5000... из характера запросов - не обнаружил необходимость именно левого соединения... но там похоже или какая-то cms или фреймворк.

Возможно левое соединение генерится автоматически. Это уже к автору.

Можно предположить, что ПХП-клиент с одного сервера обращается к БД на другой ... или нет?

В общем, кто лучше знает free bsd unix, тому и карты. :)
Не разобравшись с конфигурацией, смотреть саму БД не вижу смысла. Похоже, что косяк именно промеж серверов.
...
Рейтинг: 0 / 0
25 сообщений из 71, страница 1 из 3
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Срочно нужна помощь с оптимизацией INNODB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]