Есть база Mysql и таблица tbl_products размером почти в 1Гб.
1 вопрос - сейчас служба searchd потребляет в среднем около 400 Мб ОЗУ. - это нормально? Можно ли уменьшить потребление ОЗУ и каким образом?
2 вопрос - два раза в день таблица tbl_products обновляется и соответственно нужно ее переиндексировать, а это занимает около 2 минут времени и сайт просто не открывается во время выполнения команды: indexer --all --rotate
Можно ли это как-то оптимизировать, чтобы во время индексации - сайт нормально функционировал?
1. Это а) нормально б) вообще не много. Уменьшить можно удалив не нужные Вам индексы.
Но в целом 40% от базы это нормально на мой взгляд.
2. sphinxsearch.com/docs/current.html#live-updates и далее вниз.
Можно дельтаиндексы, можно RT.
по поводу уменьшения использования ОЗУ - ничего не скажу, вроде 400 мб это совсем не много.
По поводу переиндексации - у вас же не все товары два раза в день меняются, переиндексировать надо только то, что меняется. Почитайте в документации про дельта индексы.
при копеечной цене памяти смысл биться за 400 мегабайт то ? сэкономить 5 баксов на аренде сервера в месяц ?
понизьте приоритет этой команде через найс и ионайс.
ну а так у вас поди одноядерная впска на гиг памяти в каком нибудь очень русском хостере?