The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (MySQL)
Изначальное сообщение [ Отслеживать ]

"переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от studovnet (ok) on 10-Окт-10, 15:28 
Привет.
Возникла такая ситуация:
- имеется сервер с 4 гигами ОЗУ.
- в какойто момент возникает сверх нагрзка (тучи пользователей), апачами съедается вся оперативка, сервер влезает в swap, всё жутко тормозит и все пользователи скорбят о кончине.
- в логах mysql видно что абсолютно все запросы становятся сверх медленными (до 1000 секунд выполняются), в основном в моммент этой нагрузки используются 2 таблицы, на которые резко возростает кол-во UPDATE, SELECT и INSERT запросов. Так же в логах видно что каждый запрос блокирует таблицу на 30-100 секунд.

вобщем нехватка памяти + очередь в 1000 запросов из-за блокировки таблицы.

Как я хочу решить проблему:
- новый сервер с 8 гигами оперативки.
- установка nginx, для экономии памяти.
- конвертация тех таблиц в innoDB, чтобы исключить блокировку всей таблицы.

В связи с чем у меня вопросы:
1. нормальна ли ситуация когда в одной БД, некоторые таблицы в MyISAM а некоторые в innoDB?
2. нужно ли чтото менять в запросах, скриптах, после изменения таблиц на innoDB?
3. можете посоветовать настройки innoDB, чтобы она эффективно использовала ОЗУ (например полностью помещала таблицу в ОЗУ)?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от Michael (??) on 10-Окт-10, 15:46 
>[оверквотинг удален]
> - новый сервер с 8 гигами оперативки.
> - установка nginx, для экономии памяти.
> - конвертация тех таблиц в innoDB, чтобы исключить блокировку всей таблицы.
> В связи с чем у меня вопросы:
> 1. нормальна ли ситуация когда в одной БД, некоторые таблицы в MyISAM
> а некоторые в innoDB?
> 2. нужно ли чтото менять в запросах, скриптах, после изменения таблиц на
> innoDB?
> 3. можете посоветовать настройки innoDB, чтобы она эффективно использовала ОЗУ (например
> полностью помещала таблицу в ОЗУ)?

RFTM High performance mysql, mysql performance blog
в двух словах содержимое целой книги вам никто не перескажет

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от studovnet (ok) on 10-Окт-10, 15:59 
>[оверквотинг удален]
>> - конвертация тех таблиц в innoDB, чтобы исключить блокировку всей таблицы.
>> В связи с чем у меня вопросы:
>> 1. нормальна ли ситуация когда в одной БД, некоторые таблицы в MyISAM
>> а некоторые в innoDB?
>> 2. нужно ли чтото менять в запросах, скриптах, после изменения таблиц на
>> innoDB?
>> 3. можете посоветовать настройки innoDB, чтобы она эффективно использовала ОЗУ (например
>> полностью помещала таблицу в ОЗУ)?
> RFTM High performance mysql, mysql performance blog
> в двух словах содержимое целой книги вам никто не перескажет

ну я вообщето и не просил что то мне рассказывать ... я по моему конкретные вопросы задал, 3 шт. ...

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от Michael (??) on 10-Окт-10, 23:16 
>[оверквотинг удален]
>>> 1. нормальна ли ситуация когда в одной БД, некоторые таблицы в MyISAM
>>> а некоторые в innoDB?
>>> 2. нужно ли чтото менять в запросах, скриптах, после изменения таблиц на
>>> innoDB?
>>> 3. можете посоветовать настройки innoDB, чтобы она эффективно использовала ОЗУ (например
>>> полностью помещала таблицу в ОЗУ)?
>> RFTM High performance mysql, mysql performance blog
>> в двух словах содержимое целой книги вам никто не перескажет
> ну я вообщето и не просил что то мне рассказывать ... я
> по моему конкретные вопросы задал, 3 шт. ...

в общем-то вам на них так же конкрентно ответили. см пост #4

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от PavelR (??) on 10-Окт-10, 16:32 

сначала установи nginx, а уже потом смотри, стоит ли тебе что-то оптимизировать или нет.

Вообще, если движок чужой - то ну нафиг в него лезть. ИЛи - делать его "своим, родным, близким"


>В связи с чем у меня вопросы:
>1. нормальна ли ситуация когда в одной БД, некоторые таблицы в MyISAM а некоторые в innoDB?

сойдет

>2. нужно ли чтото менять в запросах, скриптах, после изменения таблиц на innoDB?

в общем случае нет, но изменение запросов, скриптов и т д - опять же в общем случае может существенно повлиять на производительность.

>3. можете посоветовать настройки innoDB, чтобы она эффективно использовала ОЗУ (например полностью помещала таблицу в ОЗУ)?

выделяй достаточно, но не сверх меры, памяти. Об остальном - в поиск по интернету и по данному форуму тоже.

Попробуй начать читать, _много_ читать.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +1 +/
Сообщение от Аноним (??) on 10-Окт-10, 22:37 
1 - нет
2 - да
3 - могу ( если конкретнее хотите - ман в руки)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от Etch on 11-Окт-10, 08:11 
> 1 - нет

Почему нет? Всё нормально должно быть.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от co6aka (ok) on 12-Окт-10, 04:14 
InnoDB это отдельное хранилище. У него отдельное пространство, структура и файловая структура в фс.
http://ru.wikipedia.org/wiki/InnoDB
Так что всю базу пихать придется в InnoDB.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от studovnet (ok) on 12-Окт-10, 12:16 
> InnoDB это отдельное хранилище. У него отдельное пространство, структура и файловая структура
> в фс.
> http://ru.wikipedia.org/wiki/InnoDB
> Так что всю базу пихать придется в InnoDB.

как странно на форуме SQL мне говорят что это совершенно нормально.... хммм....

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от Etch on 12-Окт-10, 17:20 
> InnoDB это отдельное хранилище. У него отдельное пространство, структура и файловая структура
> в фс.

А ещё это отдельное пространство одно на все базы в пределах одного сервера. И что из этого? - теперь все базы запихнёте в InnoDB?
Мускул в состоянии совместить таблицы из разных физических хранилищ.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от LSTemp (ok) on 17-Окт-10, 06:47 
> Привет.
> Возникла такая ситуация:
> - имеется сервер с 4 гигами ОЗУ.
> - в какойто момент возникает сверх нагрзка (тучи пользователей), апачами съедается вся
> оперативка, сервер влезает в swap, всё жутко тормозит и все пользователи
> скорбят о кончине.

как мля тебя еще не выгнали с работы? я те русским по белому сказал, что делать в твоей первой теме.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  –1 +/
Сообщение от LSTemp (ok) on 17-Окт-10, 06:51 
>[оверквотинг удален]
> - новый сервер с 8 гигами оперативки.
> - установка nginx, для экономии памяти.
> - конвертация тех таблиц в innoDB, чтобы исключить блокировку всей таблицы.
> В связи с чем у меня вопросы:
> 1. нормальна ли ситуация когда в одной БД, некоторые таблицы в MyISAM
> а некоторые в innoDB?
> 2. нужно ли чтото менять в запросах, скриптах, после изменения таблиц на
> innoDB?
> 3. можете посоветовать настройки innoDB, чтобы она эффективно использовала ОЗУ (например
> полностью помещала таблицу в ОЗУ)?

а про InnoDb движок забуть ваще пока. Ты ща не прешь даже MyISAM - куда тебе дльше лезть?
хочешь еще с транзакциями морочиться? флаг - тебе сам знаешь куда. а вот про то, что ты знаешь о транзакциях даже я далеко не уверен.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "переход с MyISAM на innoDB, чтобы избавиться от deadlock ?"  +/
Сообщение от LSTemp (ok) on 12-Май-11, 01:59 
>[оверквотинг удален]
> запросов. Так же в логах видно что каждый запрос блокирует таблицу
> на 30-100 секунд.
> вобщем нехватка памяти + очередь в 1000 запросов из-за блокировки таблицы.
> Как я хочу решить проблему:
> - новый сервер с 8 гигами оперативки.
> - установка nginx, для экономии памяти.
> - конвертация тех таблиц в innoDB, чтобы исключить блокировку всей таблицы.
> В связи с чем у меня вопросы:
> 1. нормальна ли ситуация когда в одной БД, некоторые таблицы в MyISAM
> а некоторые в innoDB?

да

> 2. нужно ли чтото менять в запросах, скриптах, после изменения таблиц на
> innoDB?

учитывая специфику работы движка (транзакции), сдедует в начале выполнить тщательную настройку первого, а уж потом смотреть в сторону правки запросов для дальнейшей оптимизации

> 3. можете посоветовать настройки innoDB, чтобы она эффективно использовала ОЗУ (например
> полностью помещала таблицу в ОЗУ)?

ОЗУ не самый важный момент здесь - всегда по логам можно увидеть и добавить там, где надо (да и не дали Вы достаточных, чтобы точно ответить на этот вопрос).

обратите в первую очередь внимание на уровни изоляции транзакций, способы блокировки и разрешение ситуаций deathlock для движка InnoDB. подумайте, какие таблицы БД стоит переводить на этот движок...


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру