O tamanho da tabela de cache aumentou para mais de 10 GB no mês passado, e eu a corrigi temporariamente ao truncá-la. A última vez que verifiquei foi de cerca de 1 GB. Assim, em alguns meses, atingirá 10 GB novamente. Como isso deve ser tratado?
Observe que desabilitei todos os trabalhos cron neste site. Se esse for o motivo, qual cron deve ser ativado?
Você mencionou em seu comentário ao MPD que, apesar de configurar o cron e executá-lo regularmente, sua tabela cache_form está crescendo rapidamente.
Uma solução para isso é executar o cron com mais frequência. Diga a cada seis horas ou menos? Se você não puder fazer isso, leia mais.
Solução alternativa:
Instale o Elysia Cron e agora você pode executar a função cron do seu módulo separadamente. Você pode manter a frequência do Elysia cron para que seu módulo seja executado a cada seis horas. Para que sua
cache_form
mesa seja podada a cada seis horas.Durante esse processo de remoção, as entradas que não tenham mais de 6 horas serão excluídas. O motivo é que, se todas as entradas forem excluídas, quaisquer formulários enviados no momento da exclusão das entradas poderão se comportar de maneira estranha.
Veja o código em https://api.drupal.org/api/drupal/includes!form.inc/function/form_set_cache/7
Enquanto o comentário diz, eles assumem que deve ser suficiente e, no seu caso, está se tornando demais para você. Portanto, o truque é limpar a tabela cache_form com mais frequência e reduzir o valor de $ expirar para um valor mais baixo, se você desejar limpar as entradas cache_form com mais frequência do que o valor padrão de 6 seis horas, será necessário alterar o TTL de as entradas cache_form.
Você pode fazer isso instalando o cacheboject e implementando o período
hook_cacheobject_presave
em que você pode alterar o TTL para 2 ou 3 horas.Uma desvantagem dessa abordagem é que, se os formulários não forem enviados dentro de duas horas (o valor da RTL definido), os dados do formulário poderão ser perdidos e você poderá obter alguns problemas de validade do formulário.
fonte
Como solução alternativa para este problema, criei o módulo https://www.drupal.org/project/session_cache_form
fonte
Quando eu estava tendo problemas de desempenho em um site em que trabalhava, deparei-me com isso depois de corrigir o cache. Você pode ler o artigo aqui: https://thinktandem.io/blog/2017/11/22/debugging-with-new-relic-blazemeter-strace-more/
No meu blog, você pode adicionar uma fila e uma configuração cron, e usar algo como Elysia Cron para fazer tudo funcionar bem:
fonte
Use o módulo Limpar cache_form seguro .
Isso permitirá que você corte a tabela em um tamanho razoável primeiro e depois a mantenha.
Resumo extraído da página do projeto:
Depois que o módulo estiver instalado, remova primeiro cache_form: execute
drush safe-cache-form-clear
até que o tamanho da tabela permaneça consistente, indicando que você removeu todos os registros anteriores a 6 horas.Ele continuará sendo executado no cron.
Este é o módulo documentado para essa finalidade pela Acquia para seus assinantes. A página de documentação do Acquia fornece boas informações adicionais.
fonte