Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Зависание запросов Select (xaos13) 28/07/2010 - 19:42:06
      Re: Зависание запросов Select (Comrade Lao) 29/07/2010 - 23:45:47
      Re: Зависание запросов Select (Xaos13) 02/08/2010 - 13:22:59
      Re: Зависание запросов Select (Xaos13) 05/08/2010 - 14:50:20

> Original message text:
> From: xaos13 - 28/07/2010 - 19:42:06
> Subject:Зависание запросов Select
> -----------------
> Имеется таблица MyISAM, размер 6Гб, 9млн 500тыс записей. Структура таблицы:
> CREATE TABLE `frases` (
> `fid` int(11) NOT NULL AUTO_INCREMENT,
> `key` varchar(32) NOT NULL,
> `lema` varchar(512) NOT NULL,
> `frase` varchar(512) NOT NULL,
> `time` datetime NOT NULL,
> `nf` varchar(512) DEFAULT NULL,
> `show` int(11) DEFAULT '-1',
> `site_list` text NOT NULL,
> `direct` varchar(2048) DEFAULT NULL,
> `site_cat` varchar(10000) DEFAULT NULL,
> PRIMARY KEY (`fid`),
> UNIQUE KEY `key` (`key`)
> ) ENGINE=MyISAM AUTO_INCREMENT=41316431 DEFAULT CHARSET=cp1251
>
> На сервере 8Гб оперативной памяти.
>
> Настройки MySQL:
> table_open_cache = 1000
> query_cache_size = 1024M
> query_cache_limit = 32M
> read_rnd_buffer_size = 32M
> sort_buffer_size = 512M
> key_buffer_size = 2048M
> tmp_table_size = 64M
> max_heap_table_size = 64M
> thread_cache_size = 128
> innodb_buffer_pool_size = 2048M
> max_allowed_packet = 16M
> concurrent_insert = 2
> myisam_stats_method = nulls_equal
> key_cache_division_limit = 75
> optimizer_search_depth=10
>
> Проблема - примерно раз в сутки запрос "SELECT `fid` FROM frases WHERE `key` = '9e6ef9a789b1ac7879a9c2d70cd31037' LIMIT 1" зависает в статусе "statistics".
> Обычно к таблице параллельно обращаются обращаются ~15 скриптов. Некоторые делают аналогичные выборки с другими значениями `key`, некоторые делают Insert и Update таблицы frases. Зависший запрос не получается остановить командой kill.
>
> Может кто подсказатьв каком направлении копать?
>


From: Comrade Lao - 29/07/2010 - 23:45:47
Subject:Зависание запросов Select
-----------------
1. "подождать - пробовали?"

2. А индексы по полю key - есть? Если нет - то п.1, и "очень долго".

2.1. Попутно посмотрите статистику использования дисков - iostat(any unix)/zpool iostat (ZFS pool - solaris, freebsd)/gstat (freebsd), наличие сообщений о дисковых ошибках (хотя, если диски "обычные" они просто могут ОЧЕНЬ тормозить, но не признаваться, что поверхности кранты - основное отличие от "raid edition"). Убедиться, что "всё читается" (бэкапы если делаются - оценить затрачиваемое время и скорость чтения дисков)

2.2. также посмотреть, не убивается ли процессор - top (учесть, что паралелится mysql крайне хреново, и если у Вас 8 ядер - то 12,5% может значить "затык одного ядра по полной")

3. query_cache_size немерянных размеров может "клинить" mysql - по крайней мере, года полтора назад такое описывалось. Вообще - посмотрите статистику его использования и полезность. Возможно, стоит оставить 64М и отдать забранное key_buffer_size.
innodb_buffer_pool_size - о таблицах innodb ничего не говорили, мож не надо туда 2ГБ давать?

4. ваще-то это п.0 - в slow queries log - смотрели? попутно думать "почему?" - тоже полезно.

5. не написали версию mysql - с теми "пожеланиями", что у Вас - нужна 64бит (в опенсолярисе - это "руками" пришлось делать, ставятся в систему и 64 и 32бит версии пакетов, и почему-то по умолчанию используется 32бит). 32бит версия не может использовать больше 4ГБ памяти (key_buffer_size на 4-5ГБ приведёт к невозможности запуска mysql)

6. пробовали "чуть другую версию" mysql?

7. Ну и напоследок - если структура БД и запросы - "верх дебилизма", и "с этим надо как-то жить", то SSD - единственный вариант. Intel MLC SSD - на удивление живучие. Kingston 40GB (он же Intel X-25V) - вполне вариант.

Несколько БД на несколько десятков ГБ (подпадают под п.7), 16GB ram (4GB кушает ram disk), ZFS со сжатием (кушает проц), OpenSolaris, БД на зеркале X-25M - почти год, полёт нормальный, несколько реаллокейтедов сразу вылезли и всё.



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
37337



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |