The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
переход с MyISAM на innoDB, чтобы избавиться от deadlock ?, !*! studovnet, 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, чтобы она эффективно использовала ОЗУ (например полностью помещала таблицу в ОЗУ)?

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

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

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

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

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

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

  • переход с MyISAM на innoDB, чтобы избавиться от deadlock ?, !*! PavelR, 16:32 , 10-Окт-10 (3)

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

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


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

    сойдет

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

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

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

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

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

  • переход с MyISAM на innoDB, чтобы избавиться от deadlock ?, !*! Аноним, 22:37 , 10-Окт-10 (4) +1
    1 - нет
    2 - да
    3 - могу ( если конкретнее хотите - ман в руки)
  • переход с MyISAM на innoDB, чтобы избавиться от deadlock ?, !*! LSTemp, 06:47 , 17-Окт-10 (10)
    > Привет.
    > Возникла такая ситуация:
    > - имеется сервер с 4 гигами ОЗУ.
    > - в какойто момент возникает сверх нагрзка (тучи пользователей), апачами съедается вся
    > оперативка, сервер влезает в swap, всё жутко тормозит и все пользователи
    > скорбят о кончине.

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


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

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

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

    да

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

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

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

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

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





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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