Apagar cache manualmente?

Marcado: 

Visualizando 10 respostas da discussão
  • Autor
    Posts
    • #2905
      neophsp
      Participante

      Tenho lido vários tópicos sobre apagar o cache do squid, pois via interface web tem um bug que impede esta ação. Também quando a partição /var/, especialmente a /var/spool/squid, tem que apagar o conteúdo senão a internet fica lenta.

      Não deveria ser automática esta limpeza de cache?


      Wireguard_webadmin

      Sistema gratuito (Open Source) para gestão de VPN's WireGuard com uma Web interface intuitiva e fácil de usar.

      Principais funcionalidades:

      - Sistema de Firewall completo e flexível.
      - Encaminhamento de portas
      - Suporte a multi usuário com níveis diferentes de acesso
      - Múltiplas instâncias do Wireguard
      - Crypto key routing para configuração de VPN site-to-site

      O projeto é Open Source, fácil de instalar e está disponível em wireguard_webadmin

    • #14623
      Rubem_mn
      Participante

      echo -e ”


      ” >> /var/log/squid/cleaner.log

      echo -e “Parando Squid – date "+%d-%m-%Y"” >> /var/log/squid/cleaner.log

      /etc/init.d/squid stop

      cd /var/spool/squid/

      echo -e “Limpando Squid – date "+%d-%m-%Y"” >> /var/log/squid/cleaner.log

      rm -rf *

      echo -e “Reconstruindo Squid – date "+%d-%m-%Y"” >> /var/log/squid/cleaner.log

      squid -z

      echo -e “Iniciando Squid – date "+%d-%m-%Y"” >> /var/log/squid/cleaner.log

      /etc/init.d/squid start

      echo -e ”


      ” >> /var/log/squid/cleaner.log

      exit 0

      Salve em arquivo com extensão .sh depois permissão chmod +x ./arquivo.sh

      Para realizar esse procedimento automático você por usar o cron

    • #14624
      neophsp
      Participante

      Obrigado Rubens, vou configurar aqui.

    • #14625
      neophsp
      Participante

      Só mais uma dúvida. Quando o limite do cache for atingido, o Endian deveria sobrescrever o cache mais antigo pelos novos dados? Tenho um CentOS que configurei e nunca precisei apagar cache. Notei também que ele não tem o cache_swap_low e cache_swap_hight.

      É normal isso no Endian?

    • #14626
      Diego Pontes
      Participante

      cd /var/spoll/squid ; killall -9 squid ; killall -9 squid ; killall -9 squid ; rm -rf * ; squid -z ; /etc/init.d/squid start ; squid -k reconfigure ; killall -9 squid ; killall -9 squid ; killall -9 squid ; /etc/init.d/squid start

      Pode jogar esses passos também dentro de um arquivo e fazer um script pra rodar automaticamente, mas prefiro fazer isso na mão só quando é necessário.

      @neophsp Ele sobrescreve pelo mais antigo, raramente precisa fazer isso, mas pode ocorrer depois de algum tempo acontecer algum problema nos arquivos e ficar lento a leitura ou a escrita e com isso a navegação, por isso é importante deletar o cache, mas fazer isso todo dia é totalmente desnecessário, pois você perde a funcionalidade que ele se presta a fazer.

    • #14627
      neophsp
      Participante

      Diego e Rubens,

      Obrigado pela informação, fiz os dois scripts e também ficou claro o funcionando do cache no Endian.

    • #14628
      Eduardo Silva
      Participante

      Pessoal,

      gostaria de fazer duas observações importantes

      1- NUNCA use “kill -9” procure usar no máximo -6!

      Como o sistema interpreta o kill:

      * “kill squid” -> envia o sinal para o squid fechar e parar de trabalhar. O processo tem todo o tempo que precisa para “fechar arquivos abertos”, encerrar gravações e leituras, remover arquivos temporários, encerrando o processo como deve ser.

      Caso o processo não responda como deve, pode-se tentar:

      * “kill -6” -> O sistema operacional força o encerramento do aplicativo, e fecha todos os arquivos aberto bem como permite que o processo faça o seu “cleanup” básico.

      Normalmente funciona para 99% dos casos de processos travados.

      * “kill -9” -> O sistema encerra o processo como ele está, encerrando totalmente as atividades do mesmo, deixando para traz arquivos abertos, lock files, e/ou arquivos temporários que deveriam ser removidos.

      Por vezes o kill -9 pode causar com que o mesmo processo não consiga inicializar novamente ou mesmo corromper arquivos que estavam abertos.

      2- Observação MUITO importante:

      Se o squid estiver configurado corretamente, nunca será necessário limpar o cache!

      O squid tem uma gerência excelente do cache em disco. Basta configurar corretamente!

      Tenho um endian rodando a anos, com a opção “Cache size on harddisk (MB) * ” ajustada para “1024”

      Segue abaixo o retorno do “du” para o meu diretório de cache.

      root@efw-corp:~ # du -csh /var/spool/squid

      960M /var/spool/squid

      960M total

      Esta opção encontra-se em Proxy Configuration Cache management

      Para mais informações sobre como o squid gerencia o cache e a memória, leiam:

      http://www.comfsm.fm/computing/squid/FAQ-8.html

      []’s

    • #14629
      Eduardo Silva
      Participante

      @Rubem_mm

      O seu script é PERIGOSO demais!!!

      Se por acaso houver um erro no filesystem e não for possível executar “cd /var/spool/squid/”

      O seu “rm -fr *” pode vir a ser um desastre completo!

      Tomem cuidado, nem tudo que se lê na internet está certo!

    • #14630
      Diego Pontes
      Participante

      Eu sei bem o funcionamento do kill, uso ele ao invés de service stop, porque o service demora muito pra parar o squid e na verdade nunca usei outro sinal, há não ser o “9”, além de ser mais rápido, sempre funciona e em mais de 6 anos de Linux nunca tive problemas com ele, acho que esse problema deveria acontecer nos kernels mais antigos.

      Quem quiser se aprofundar nos sinais do kill, basta fazer uma pesquisa rápida no google: sinais do kill.

    • #14631
      Eduardo Silva
      Participante

      Diego,

      Estou apenas dando o meu ponto de vista sobre o assunto.

      Quem sabe opiniões de outros sysadmins reforcem o que eu estou dizendo: http://unix.stackexchange.com/questions/8916/why-not-kill-9-a-process

      Versão de Kernel não tem nenhuma relação com os efeitos que eu citei.

      de qualquer forma, se for um script que vai rodar “durante a madrugada”, não vejo problema em esperar 4 ou 5 segundos para o processo encerrar como deve ser. O stop é sempre a forma mais correta de fazer as coisas.

      Um script no formato:

      #!/bin/bash

      /etc/init.d/squid stop

      executar ações aqui

      /etc/init.d/squid start

      vai funcionar perfeitamente, pois ele só vai avançar para a linha das ações após o squid ser fechado corretamente.

      executar “killall -9 squid ; killall -9 squid ; killall -9 squid” é muito errado, principalmente pelo fato de que se o programa não morreu no primeiro kill -9, não vai morrer nem no décimo nem no centésimo. Vale mais a pena botar “killall -9 squid ; sleep 2.

      A propósito, agora vi que você também tem um “cd /var/spool/squid” ; “rm -fr *”

      Como eu disse antes, isso é perigoso, se preferem usar um squid configurado incorretamente, limpando o cache diariamente (desnecessário e errado), sugiro usar um comando menos arriscado tipo:

      rm -fr /var/spool/squid/*

      Isso diminui drasticamente as chances de um problema de mount resultar em perda massiva de dados.

      Por favor não confunda o que eu estou dizendo aqui… não são ordens, são sugestões e dicas, acha que eu estou errado, sinta-se livre para fazer da forma que achar melhor.

      Estou apenas dizendo a forma que eu considero mais apropriada para fazer as coisas.

      quer ver um kill -9 causar problemas sérios? Pega uma base de dados movimentada, mysql/ldap/postgresql e roda um kill -9 no meio das transações 🙂

      []’s

    • #14632
      Diego Pontes
      Participante

      Simples, para resolver o problema basta mudar para “cd /var/spool/squid && rm -fr * ; …”

      Sempre que faço isso, eu faço na mão, não faço por meios de scrpit e uso sim o sinal -9 sem nenhum problema.

      Pergunta: Se eu der um kill -9 nessa base movimentada, deletar todos os arquivos e depois recriá-los qual seria o problema dela? Nenhum, pois não teria nada de antigo nessa base, seria tudo novo! É isso que é feito com o squid 😀

Visualizando 10 respostas da discussão
  • O tópico ‘Apagar cache manualmente?’ está fechado para novas respostas.