compreendendo e melhorando o uso da memória do sphinx searchd

1

Minha empresa tem alguns servidores que dedicamos a executar o Sphinx Search. Todos são CentOS 5 com cerca de 48GB de memória e nossa versão do searchd é 1.11. Recentemente eu tenho tentado entender por que o Sphinx usa tão pouco da memória disponível para seus índices regulares (nós não usamos índices RT no momento). De acordo com o site oficial da Sphinx , todos os arquivos relacionados a um índice, exceto o. Os arquivos spd e .spp são armazenados na RAM. Atualmente, isso representa cerca de 14GG para todos os nossos índices, que podem caber facilmente na RAM. No entanto, quando eu consultar htop para uso de memória, está mostrando um pouco menos de 1,5 GB sendo usado! Curiosamente, ele relata que o swap está sendo usado também, mesmo com o vm.swappiness definido como 0. Se eu parar o searchd, o swap desce para 0. (Deve-se notar que a quantidade de swap usada não é maior que a quantidade de memória sendo usada.) Nós configuramos para que todos os nossos índices sejam pré-abertos na inicialização (preopen_indexes = 1 em nossa conf a sphinx).

Eu tenho duas perguntas, dadas as informações acima:

  1. O que a Sphinx está fazendo com os dados nesses índices, se não for mantê-los na memória?
  2. É possível forçar o Sphinx a manter mais dados na memória?
por altendo 02.02.2013 / 00:59

2 respostas

1

tente mlock = 1 e reindexe todos os índices.

index index1
{
    source      = main1
    path        = /ssd/sphinx/index.main
    charset_type    = utf-8
    docinfo     = extern
    mlock       = 1
}
    
por 04.03.2013 / 09:28
0

What is Sphinx doing with the data in those indexes, if it isn't keeping it in memory?

Ele provavelmente os coloca na memória. Mas o sistema operacional host percebe que eles não estão sendo muito usados e, portanto, os exclui.

Sugerimos que você verifique se o swappiness está sendo realmente aplicado.

Is it possible to force Sphinx to keep more data in memory?

Se você tem a memória de sobra. Coloque os índices em um disco RAM:)

E se você realmente tiver bastante memória de sobra, desligue completamente a troca. Você corre o risco de uma falha se ficar sem memória, mas parece improvável que aconteça nesse servidor.

    
por 05.02.2013 / 17:07