Drupal & SOLR: "quantos nodes por batch" é o ideal ?

Events happening in the community are now at Drupal community events on www.drupal.org.
tjor's picture

Olá a todos!

Usamos o Apache SOLR no nosso site e temos neste momento esta configuração:
"Number of items per batch run: 50"

Alguém que já usou / usa o SOLR também pode nos dizer até que número aumentou esse valor de 50 (que é o colocado por defeito) ?

Pelo o que encontrei na net, não me pareça que haja problemas em aumentar esse valor para "200" no mínimo a cada batch / passagem do cron...
(Já agora, realço que não indexamos documents ou coisas "pesadas", é só "nodes")

O objectivo obviamente é ter indexado o mais rápido possível o conteúdo que vai se criando...

Obrigado desde já pelas vossas indicações e possíveis sugestões!

Toni

PS: aconselham diminuir a frequência do cron caso aumente-se o número de nodes / batch ? (neste momento temos o cron a passar a cada 3 min)

Comments

Olá Toni, Tudo depende da

PedroMiguel's picture

Olá Toni,

Tudo depende da quantidade de RAM, IO dos discos e dados a processar.

Em alguns projectos tenho a serem indexados 1000 de cada vez com o cron a correr a cada minuto (caso do prognosticos.pt que está associado a diversos dominios internacionais, mas de 5 onde tudo é indexado em vários idiomas e tem muitos dados para processar a toda a hora). Por exemplo nessa maquina tenho 32Gb de RAM e SSD's.

Noutros projectos tenho o batch a 5000, noutros a 500... Tudo depende mesmo da máquina em questão e dos dados.

A mehor forma de testares é meteres um número verdadeiramente alto e ires reduzindo até ele deixar de dar timeouts ou outros erros. Quando chegares ao número sem erros tiras 20 a 30% só para ficares no lado seguro e deves ficar sem problemas.

Ps: O ideal é limpares o index de cada vez que testas.

Pedro, obrigadão! Faz de

tjor's picture

Pedro, obrigadão!

Faz de facto todo o sentido... e também ao tráfego que o site recebe, etc.

Estamos neste momento no plano "4GB RAM + 2 core processador + 60Go disco SSD" na Digital Ocean, por isso provavelmente não deveremos chegar aos 1000 por minuto :)

Confirmas que colocar um cron mais "distante" (a cada 3 min em vez de cada min) ajuda o SOLR a indexar sem criar problemas / time-outs?

Em relação a maneira de testar:
- criar um time-out no SOLR não vai causar nenhuns problemas visíveis para os utilizadores do site?
- o teste consiste só em colocar um alto número de batch que se vai reduzindo? O risco de time-out não está dependente da frequência do cron?

O ideal é testares isso

PedroMiguel's picture

O ideal é testares isso "manualmente", ou seja vais ao search api, apagas o index, escolhes o numero de nodes a indexar e corres, logo ai ves se existem timeouts assim como o tempo que demora. Depois é configurares o cron de acordo com os resultados anteriores.

Depois dessa fase manual, testas entao com o cron, se os resultados forem diferentes do manual então basta alterares o max execution time no php.

O risco de time-out está dependente do tempo de execução do php, velocidade de indexação (ram e i/o related). Vês logo a aparecerem mensagens no watchdog do drupal ou mesmo um erro durante a "barrinha azul" do progresso da indexação.

O problema que os utilizadores vão ter durante esses testes é não conseguirem usar a pesquisa e/ou os resultados da pesquisa não estarem actualizados, de resto a nivel de visualização de conteudos não é afectado em nada.

Ok parece estar claro

tjor's picture

Ok parece estar claro :)
Muito obrigado pelas tuas dicas e informações acerca da tua experiência sobre este tópico!

PS: o prognostico.pt está altamente, boa sorte com ele!!