Cron даёт нагрузку при индексации sphinx - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

sphinx

  • 2 Страниц +
  • 1
  • 2

Cron даёт нагрузку при индексации sphinx

#1 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 06 Декабрь 2016 - 17:08

На форуме установлен и включен поиск Сфинкс. Всё хорошо, но есть одно НО.
При выполнение переиндексации форума посредством крон-задачи на сервере, форум зависает на 2 минуты.
Вот задача крона:

Цитата

/usr/bin/indexer --config /var/www/имя домена/data/sphinx/имя домена.conf --all --rotate

0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 417
  • IPB version:3.1.x
 

Отправлено 06 Декабрь 2016 - 17:37

http://sphinxsearch....ew.html?id=5266
1

#3 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 07 Декабрь 2016 - 03:32

Просмотреть сообщениеsiv1987 сказал(а):


Игрался, настраивал - не помогает.
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 417
  • IPB version:3.1.x
 

Отправлено 07 Декабрь 2016 - 14:46

Настроить ranged-queries для сообщений как там советуют пробовали?
Ну или ставьте крон на время когда меньше всего посетителей на сайте, например в 4 часа утра. Две минуты не критичное время.
0

#5 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 07 Декабрь 2016 - 16:59

Просмотреть сообщениеsiv1987 сказал(а):

Настроить ranged-queries для сообщений как там советуют пробовали?

Да. Как и sql_range_step. Итог всегда одинаковый.

Просмотреть сообщениеsiv1987 сказал(а):

Ну или ставьте крон на время когда меньше всего посетителей на сайте, например в 4 часа утра. Две минуты не критичное время.

Таки да. Утром стоит. Дело даже не в этих 2 минутах, просто почему такую нагрузку даёт. Именно на таблицу сообщений (кол-во записей - более полтора миллиона)
0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 417
  • IPB version:3.1.x
 

Отправлено 07 Декабрь 2016 - 17:07

Верно настроили? range step уменьшить пробовали?

Нагрузка потому, что таблица большая и для ее индексации требуются ресурсы.
0

#7 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 07 Декабрь 2016 - 22:38

Просмотреть сообщениеsiv1987 сказал(а):

Верно настроили? range step уменьшить пробовали ?

Да, до 100. Думаете попробовать уменьшить до 10?

Просмотреть сообщениеsiv1987 сказал(а):

Нагрузка потому что таблица большая и для ее индексации требуются ресурсы.

Причём нагрузка идёт именно на апач (процессы увеличиваються в разы), мускул нормально работает, не перегружается.
0

#8 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 417
  • IPB version:3.1.x
 

Отправлено 07 Декабрь 2016 - 23:05

Покажите ради интереса конфиг сообщений.

Просмотреть сообщениеHaktar сказал(а):

Думаете попробовать уменьшить до 10?

Это уже слишком мало, имхо. Потребуются слишком много ротаций чтобы проиндексировать всю таблицу. 500-1000 вполне оптимальный интервал. Ну и время между запросами можно настроить.

Как вариант, можно создать отдельный индекс для индексации только новых сообщений с момента последнего сообщения из основного индекса, так называемый "дельта индекс". А всю таблицу целиком индексировать раз в неделю. Перестроения 1500K сообщений довольно накладная операция, нужно учитывать что сообщения являются большим объемом данных по сравнению с остальными сущностями. Какой смысл дергать полтора миллиона записей в каждый день, когда можно индексировать только несколько десятков новых сообщений в день, таким образом за неделю вы получить индекс размером примерно тысячу записей, по сравнению в несколько миллионов цифра просто смешная.
0

#9 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 08 Декабрь 2016 - 03:12

Просмотреть сообщениеsiv1987 сказал(а):

Покажите ради интереса конфиг сообщений.

Вот конфиг отвечающий за сообщения:
Spoiler


Просмотреть сообщениеsiv1987 сказал(а):

Как вариант, можно создать отдельный индекс для индексации только новых сообщений с момента последнего сообщения из основного индекса, так называемый "дельта индекс".

Тоже такого же мнения. Зачем переиндексация всех полтора милиона записей каждый день. Ну возможно некоторые сообщения отредактированы, но таких же не особо много за неделю собирается.

Просмотреть сообщениеsiv1987 сказал(а):

когда можно индексировать только несколько десятков новых сообщений в день

Примерно пол тысячи сообщений в день.
0

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 417
  • IPB version:3.1.x
 

Отправлено 08 Декабрь 2016 - 11:13

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

/usr/bin/indexer forums_search_posts_delta --config /var/www/имя домена/data/sphinx/имя домена.conf --rotate

0

#11 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 08 Декабрь 2016 - 16:46

Просмотреть сообщениеsiv1987 сказал(а):

Так у вас уже есть дельта индекс который поддерживается форумом по умолчанию.

Просто в одной статье, по настройке Сфинкса рекомендовали основной поставить раз в сутки. Вообще то да, до самого только что дошло - зачем так часто?


Просмотреть сообщениеsiv1987 сказал(а):

Обновляйте его раз в день (можно даже чаще), а основной раз в неделю - две.

У меня поставлено каждые 10 минут. Не слишком много?
0

#12 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 417
  • IPB version:3.1.x
 

Отправлено 08 Декабрь 2016 - 19:16

Просмотреть сообщениеHaktar сказал(а):

У меня поставлено каждые 10 минут. Не слишком много?

Слишком часто. Три - четыре раза за сутки оптимально.
1

#13 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 08 Декабрь 2016 - 20:12

Просмотреть сообщениеsiv1987 сказал(а):

Слишком часто. Три - четыре раза за сутки оптимально.

Спасибо, так и сделаю.
0

#14 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 048
  • Регистрация: 20-Март 09
  • Репутация: 2 417
  • IPB version:3.1.x
 

Отправлено 08 Декабрь 2016 - 20:16

Интервальные запросы:

source forums_search_posts_main : ipb_source_config
{
    # Set our forum PID counter
    sql_query_pre   = REPLACE INTO imperiall_cache_store VALUES( 'sphinx_forums_counter_posts', (SELECT max(pid) FROM imperiall_posts), '', 0, UNIX_TIMESTAMP() )
	
    # Ranged Queries
    sql_query_range = SELECT MIN(pid),MAX(pid) FROM imperiall_posts
    sql_range_step  = 5000
    
    # Query posts for the main source
    sql_query       = SELECT p.pid, p.pid as search_id, p.author_id, p.post_date, p.post, p.topic_id, p.queued, \
                             t.tid, t.title, t.title as tordinal, t.views, t.posts, t.forum_id, t.last_post, t.state, t.start_date, t.starter_id, t.last_poster_id, t.topic_firstpost, \
                            CASE WHEN t.approved = -1 THEN 1 ELSE 0 END AS soft_deleted, \
                            CASE WHEN t.approved = -1 THEN 0 ELSE t.approved END AS approved, \
                            CONCAT(t.last_post, '.', t.tid ) as last_post_group \
                      FROM imperiall_posts p \
                      LEFT JOIN imperiall_topics t ON ( p.topic_id=t.tid ) \
                      WHERE p.pid >= $start AND p.pid <= $end
    
    # Fields    
    sql_attr_uint           = queued
    sql_attr_uint           = approved
    sql_attr_uint           = soft_deleted
    sql_attr_uint           = search_id
    sql_attr_uint           = forum_id
    sql_attr_timestamp      = post_date
    sql_attr_timestamp      = last_post
    sql_attr_timestamp      = start_date
    sql_attr_uint           = author_id
    sql_attr_uint           = starter_id
    sql_attr_uint           = tid
    sql_attr_uint           = posts
    sql_attr_uint           = views
    sql_attr_str2ordinal    = tordinal
    sql_attr_str2ordinal    = last_post_group
    
    sql_ranged_throttle = 0
}

source forums_search_posts_delta : forums_search_posts_main
{
    # Override the base sql_query_pre
    sql_query_pre = 
	
    # Override the base sql_query_range
    sql_query_range = 
    sql_range_step  =
	
    sql_ranged_throttle = 0
    
    # Query posts for the delta source
    sql_query       = SELECT p.pid, p.pid as search_id, p.author_id, p.post_date, p.post, p.topic_id, p.queued, \
                             t.tid, t.title, t.title as tordinal, t.views, t.posts, t.forum_id, t.last_post, t.state, t.start_date, t.starter_id, t.last_poster_id, t.topic_firstpost, \
                             CASE WHEN t.approved = -1 THEN 1 ELSE 0 END AS soft_deleted, \
                             CASE WHEN t.approved = -1 THEN 0 ELSE t.approved END AS approved, \
                            CONCAT(t.last_post, '.', t.tid ) as last_post_group \
                      FROM imperiall_posts p \
                      LEFT JOIN imperiall_topics t ON ( p.topic_id=t.tid ) \
                      WHERE p.pid > ( SELECT cs_value FROM imperiall_cache_store WHERE cs_key='sphinx_forums_counter_posts' )
}

0

#15 Пользователь не на сайте   Haktar ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 806
  • Регистрация: 14-Июнь 09
  • Репутация: 19
  • IPB version:3.1.x
 

Отправлено 08 Декабрь 2016 - 22:52

Просмотреть сообщениеsiv1987 сказал(а):

Интервальные запросы для основного индекса:

Этим заменить конфиг основного индекса?
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2017 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна