Ola Henry, obrigado pela sua resposta,

Após pequenas alterações no sistema o ganho de performance é notável:

Basicamente o que eu fiz foi:

 - Atualizar para a última versão do kernel (2.6.23), mesmo sendo
contra minha política de administração, pois mantenho o padrão do
desenvoldedor da distro, e faço atualização somente via RPM, mas
enfim, em caráter experimental vale a pena.

 - Também removi a versão RPM do squidguard e instalai a última versão
(1.3) a partir do fonte.

Agora para utilizar a sintaxe squidGard -C category/domain, a resposta
rápida.

Obriado pelo auxílio.

++

> Pessoal,
>
> Possuo vários arquivos de lista negra que somados devem possuir
> milhões de domínios, e o que ocorre é que utilizando o comando
> "squidGuard -C all" para o rebuild, demora muito tempo (cerca de 2

> horas), e a carga do servidor aumenta durante este processo, chegando
> até 4.X.
>
> Então, alterei um arquivo que contém apenas 11 linhas e executei
> "squidGuard -C arquivo", mas o processo demorou novamente e de acordo
> com o log, foi feito rebuild em tudo novamente.
>
> Alguem sabe como proceder para atualizar um arquivo mais rapidamente?
>
> O sistema utilizado é:
> - CentOS 5.1, kernel 2.6.18-53.1.4.el5
> - XFS no /var
> - Athlon 1.4, 750 MB de Ram, HD 40 Gb IDE.
> - squid-2.6.STABLE6-5.el5_1.2, squidguard-1.2.0-2.2.el5.rf
>

Olá!


que estranho o seu relato!!!

Tenho 3 máquinas muito diferentes entre si, e resolvi fazer um teste.

=========================================
maquina: xeon dual 2.4GHz 512kb cache 2gb ram, hd scsi 80gb

titan:/home/acesso# time squidGuard -C all

real 2m52.847s
user 0m19.342s
sys 0m24.792s

=========================================
maquina: celeron 433MHz 128kb cache 128mb ram hd ide 6gb
expediente-01:/tmp# time squidGuard -C all
real 5m44.449s
user 1m42.674s
sys 2m0.620s

=========================================
máquina: amd dual X2 3600+ (1ghz) 256 cache 2gb ram hd ide 300gb

tulipa:/var/lib/squidguard/db# time squidGuard -C all

real 0m54.033s
user 0m11.245s
sys 0m15.136s


em todas elas, debian testing,
em todas elas, /var com ext3,
em todas elas, o processo rodou com "nice 0"
em todas elas, sem modo gráfico,
em todas elas, sem serviços além do squid e bind9 local para cache.
em todas elas, sem mais que 10 usuarios acessando squid durante o
teste.
em todas elas,
Squid Cache: Version 2.6.STABLE5
SquidGuard: 1.2.0 Sleepycat Software: Berkeley DB 4.3.29: (September
6, 2005)

xeon e amdx2 com kernel 2.6.22 compilado com:
latência 100hz CONFIG_HZ_100=y,
sem preemptividade - CONFIG_PREEMPT_NONE=y

celeron 433 com kernel 2.6.22 default debian -
latencia 250hz CONFIG_HZ_250=y,
sem preemptividade - CONFIG_PREEMPT_NONE=y



sobre as bases de dados, são identicas nos 3 testes:

titan:/var/lib/squidguard/db# linhas=0;for asa in `find -type f | egrep
"domain|url"|grep -v '\.db' `; do temp=$(wc -l $asa|awk '{ print $1}')
; linhas=$(($linhas + temp)); done ; echo -e "$linhas linhas\n"; du -sh
/var/lib/squidguard/db ; echo


2572451 linhas
128MB



configuração do squidGuard.conf de todas as maquinas(são identicos):


titan:/var/lib/squidguard/db# egrep "domainlist|urllist|pass"
/etc/squid/squidGuard.conf |grep -v "^#"
domainlist liberados/domains
urllist liberados/urls
domainlist branco/domains
urllist branco/urls
domainlist ads/domains
urllist ads/urls
domainlist publicite/domains
urllist publicite/urls
domainlist porn/domains
urllist porn/urls
domainlist adult/domains
urllist adult/urls
domainlist chat/domains
urllist chat/urls
domainlist instantmessaging/domains
urllist instantmessaging/urls
domainlist proxy/domains
urllist proxy/urls
domainlist virusinfected/domains
urllist virusinfected/urls
domainlist warez/domains
urllist warez/urls
domainlist redirector/domains
urllist redirector/urls
domainlist strong_redirector/domains
urllist strong_redirector/urls
pass !in-addr liberados local !orkut
!branco !ads !publicidade !porn !conteudoadulto !proxy
!strong_redirector !virusinfected !warez !redirector !chat !uolk any


nem na celeronzinha pobrezinha demorou mais que 10 minutos para
compilar 2.5 milhoes de linhas.

Como não sei os valores referentes ao seu cenário, posso imaginar que
vc baixou as listas de urlblacklist.com, e então, **SMJ**, e imaginando
que a sua cpu não tenha nenhum problema de hardware, memorias,
processador, etc,etc,etc, posso sugerir que:

- otimize seu kernel (se não fez isto ainda com a latencia e a
preemptividade, sao as unicas coisas que eu altero no kernel
ultimamente).

- nao tenha nenhum programa concorrente pelo processamento na
máquina(por ex: apache, dns, squid com 200 usuários pendurados ao mesmo
tempo, samba com varios usuarios pendurados, servidor de ldap, tomcat,
banco de dados, etc,etc,etc)
- você por acaso não está usando toda a memoria ram pro squid não, né?
- o nice do processo é qual? nos testes aqui foi 0.
- experimente outra distribuição, ou kernel, "vai que..." ;
- troque o sistema de arquivos do /var;
- usou hdparm para otimizar a taxa de transferencia do HD?
- troque de máquina;
- desencane da carga da cpu ir a 100%. Em todos os testes, a carga foi
a 100%, é normal.

é quase tudo que eu posso chutar.
===============================

Vc falou em alterar um arquivo somente (o de 11 linhas). SquidGuard -C
all faz o rebuild TOTAL, de TUDO especificado no squidGuard.conf.
Quando quiser fazer uma pequena alteração, por ex, em um arquivo de 11
linhas, não use -C all. Use -C diretorio/domains ou -C diretorio/urls,
ele faz apenas o rebuild daquele arquivo especifico.
Se não quiser fazer um rebuild do arquivo, utilize -u, ele faz o update
de todos os arquivos domains.diff e urls.diff constantes nos
diretorios; para adicionar o dominio preceda-o do sinal de +, e se
quiser exclui-lo, preceda-o do sinal de -, dentro do arquivo
domains.diff ou urls.diff
por ex:

-orkut.com
+passport.msn.com
(...)

+abobrinha.com.br/meleca
-google.com/search
(...)

e daí rode squidGuard -u . ele faz a alteração diretamente no binário
.db, sem fazer rebuild, não deve demorar mais que alguns milisegundos.

Você tem o sgclean ? use-o, ele faz um limpa de entradas meio que
inuteis (leia-se redundantes) nos arquivos txt das bases de dados do
squidguard. Faz alguma diferença, mas não muita.


qualquer coisa, mail-nos!
[ ]s, e divirta-se.
Henry.


Responder a