Desabilitar ou remover APC

Desabilitar ou remover APC

Estou muito frustrado com o sistema de cache PHP APC e queria removê-lo/desativá-lo completamente do meu servidor. Estou usando PHP com Nginx instalado no Debian Squeeze, existe alguma maneira de fazer isso?

Responder1

Em vez de remover a APC, o que causará umenormedesempenho atingido e efetivamente atirar no próprio pé.

Tente isto: em /etc/php5/conf.d/apc.ini:

extension=apc.so
apc.shm_size=128M
apc.shm_segments=1
apc.max_file_size=5M
apc.num_files_hint=10000
apc.slam_defense = 0
apc.write_lock=1

Você pode aumentar apc.shm_sizepara um valor maior que 128, digamos 512, se tiver RAM livre suficiente.

Eu fiz isso em um servidor que executo e nunca viNão foi possível alocar memória para o poolerros.

Responder2

Remova /opt/php5/etc/conf.d/apc.iniou comente todas as linhas com uma extensão ;. Não se esqueça de reiniciar seu servidor web depois.

Verifique também '/etc//php5/apache2/php.ini' para 'extension=apc.so' para comentar.

Se você ainda tiver as fontes por perto, você pode tentar fazer isso make uninstalldepois. Não sei se o makefile contém esse alvo.

Responder3

Se você não instalou algo além do que o Squeeze oferece, um simples apt-get remove php-apcdeve resolver.

Responder4

A solução é aumentar a memória alocada para a APC.

Usar um TTL de 0 significa que a APC liberará todo o cache quando ficar sem memória. O erro não aparece mais, mas torna o APC muito menos eficiente. É uma decisão sem risco, sem problemas, do tipo “não quero fazer meu trabalho”. APC não foi feito para ser usado dessa forma. Você deve escolher um TTL alto o suficiente para que as páginas mais acessadas não expirem. O melhor é fornecer memória suficiente para que a APC não precise liberar o cache.

Basta ler o manual para entender como o ttl é usado:http://www.php.net/manual/en/apc.configuration.php#ini.apc.ttl

Você pode aumentar a memória alocada aumentando apc.shm_size.

Se a APC for compilada para usar memória de segmento compartilhada, você estará limitado pelo seu sistema operacional. Digite este comando para ver o limite do seu sistema para cada segmento:

sysctl -a | grep -E "shmall|shmmax"

Para alocar mais memória você terá que aumentar o número de segmentos com o parâmetro apc.shm_segments.

Se a APC estiver usando memória mmap, você não terá limite. A quantidade de memória ainda é definida pela mesma opção apc.shm_size.

Se não houver memória suficiente no servidor, use a opção de filtros para evitar que arquivos php acessados ​​com menos frequência sejam armazenados em cache.

Mas nunca use um TTL de 0.

Use apc.php para verificar sua configuração. Você verá o que realmente está alocado e como é usado. Os gráficos devem permanecer estáveis ​​após o expediente, se eles mudarem completamente a cada atualização, significa que sua configuração está errada (a APC está liberando tudo). Aloque 20% do que a APC realmente usa como margem de segurança e verifique regularmente.

O padrão de permitir apenas 32 MB é ridiculamente baixo. O PHP foi projetado quando os servidores tinham 64 MB e a maioria dos scripts usava um arquivo php por página. Hoje em dia soluções como Magento requerem mais de 10k arquivos (~60Mb em APC). Você deve permitir memória suficiente para que a maioria dos arquivos php sejam sempre armazenados em cache. Não é um desperdício, é mais eficiente manter o opcode na memória RAM do que ter o php bruto correspondente no cache do arquivo. Hoje em dia podemos encontrar servidores dedicados com 24 Gb de memória por apenas US$ 150, então não hesite em permitir vários GB para a APC. Coloquei 2 GB de 24 GB em um servidor que hospeda 5 lojas Magento e cerca de 40 sites wordpress, a APC usa 1,2 GB. Conte 64 MB para instalação do Magento, 20 MB para Wordpress com alguns plugins.

informação relacionada