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

Есть 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
19.12.2014, 21:35:42
    #38838506
kayuchkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
Готовы заплатить за оперативное решение проблемы.
...
Рейтинг: 0 / 0
19.12.2014, 22:23:56
    #38838522
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
во временном каталоге (обычно /tmp) что происходит?
...
Рейтинг: 0 / 0
19.12.2014, 22:28:08
    #38838524
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
Что попадает в mysql-slow.log ?
...
Рейтинг: 0 / 0
19.12.2014, 22:37:34
    #38838527
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
kayuchkin
Код: sql
1.
[!!] Temporary tables created on disk: 48% (246K on disk / 510K total)

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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




не волнует ?я уже отвечал на это - 17026534
...
Рейтинг: 0 / 0
20.12.2014, 23:15:56
    #38838853
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
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
20.12.2014, 23:30:16
    #38838854
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
MasterZivУ них затык вообще в приложении, а они думают, что БД виновата.в БД тоже не все гладко, как минимум.
По 2 временных файла на диске каждую секунду в среднем - это все-таки не мало. Если они хотя бы по сотне-другой мегабайт, то могут полностью утилизировать пропускную способность дисковой подсистемы.MasterZiv1) включите slow query log. Гуглите прямо так "mysql slow query log".Он включен. Вопрос о содержимом лога был. Ответа не было.
MasterZiv2) Увеличте максимальное число коннекций к БД. Процентов на 50 для начала.А смысл? ну встанут еще 50 сессий в очередь за ресурсами, которых нет, а толку-то?
...
Рейтинг: 0 / 0
21.12.2014, 11:39:59
    #38838945
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
miksoft,

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

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

Да, slow log очень бы было полезно глянуть.
...
Рейтинг: 0 / 0
21.12.2014, 11:48:09
    #38838950
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
Arhat109Там получается на каждый запрос к серверу-клиента (PHP?) создается примерно по 2 времянкиА выделенное откуда следует?
...
Рейтинг: 0 / 0
21.12.2014, 12:59:36
    #38839010
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
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
21.12.2014, 13:28:36
    #38839032
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
ребята, надо искать конкретику.
"сервер тормозит" - это не проблема.
надо брать самый тормозящий запрос и тюнить. потом брать следующий и тюнить. и так до тех пор, пока все не будет работать хорошо.
...
Рейтинг: 0 / 0
21.12.2014, 13:32:44
    #38839033
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужна помощь с оптимизацией INNODB
MasterZivребята, надо искать конкретику.
"сервер тормозит" - это не проблема.
надо брать самый тормозящий запрос и тюнить. потом брать следующий и тюнить. и так до тех пор, пока все не будет работать хорошо.

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

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

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

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

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
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Срочно нужна помощь с оптимизацией INNODB / 25 сообщений из 71, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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