Hi,
>> За полтора года размер базы вырос где-то вдвое (объем RAM - втрое).... а
>> с производительностью полный абзац - отчет, который генерировался где-то
>> пару часов в настоящий момент генерируется уже вторые сутки....
ier> 1) А каовы конкретный цифры?
Конкретные цифры чего ?
Большие таблицы - hosts - примерно 320 тыс записей, примерно 500 байт на
запись. domains - около 30 тыс записей, точный размер записи сейчас не помню,
networks - 6600 записей, записи короткие (грубо - префикс /24, число хостов)
Полтора года назад каждая из таблиц была примерно на 1/3-1/2 меньше.
Индексы все на месте - для каждого поля, используемоего в where clause
есть индекс. Композитных индексов нет.
ier> 2) Какие запросы стоят за "генерацией отчетов"?
Две операции, которые стали _безумно_ долгими:
1a) select distinct ip-address from hosts; - выполняется вполне быстро
1b) для каждого такого адреса - выделить префикс /24 и приписать единичку
к числу хостов.
На ~4300 сетях и ~170 тыс адресов операция исполнялась достаточно быстро.
Ну скажем час или два. Сейчас она шла полсуток по меньшей мере -
6600 сетей и ~240 тыс адресов. При том, что табличка networks занимает
700k, индекс - 500к и это с гарантией влезает и в table buffer и в
key buffer (по 6 мегабайт оба)
Вторая операция (псевдокодом) - это стадия перед отчетами:
select hostname from hosts;
while (fetch)
while (success)
{
если есть домен с именем, равным имени хоста - поместить хост туда
(пометить ему поле domain_id)
если нет такого домена - отрезать от имени хоста левый токен
}
По сути - это борьба за то, чтобы glue records оказались в "своих" доменах
Эта операция шла со скоростью > 100 хостов в секунду когда хостов было
примерно 200 тысяч, а доменов - 11 тысяч. И завершалась примерно за полчаса,
соответственно. Сейчас доменов - 33к, хостов - 330к, операция
шла часов двадцать. Опять-таки, таблица domains должна помещаться
и в record buffer (впритык) и в key buffer (с запасом)
Понятно, что все это - идиотская борьба с сервером без подзапросов,
но выбирался он - за скорость и где-то до весны был вполне быстр
Alex Tutubalin
http://www.lexa.ru/lexa/
--- GoldED 2.42.G1114+
=============================================================================
"inet-admins" Internet access mailing list. Maintained by East Connection ISP.
Mail "unsubscribe inet-admins" to Majordomo@info.east.ru if you want to quit.
Archive is accessible on http://info.east.ru/rus/inetadm.html