Para aqueles que utilizam o PHP 5.3 e gostam de performance, nada mais do que justo em utilizar a seguinte combinação:

Varnish + Nginx + PHP5-FPM + PHP-APC

  • O primeiro é responsável por fazer o cache de todo o conteúdo estático do seu site – imagens, css, java script e html
  • O segundo é o web server mais performático do mundo por trabalhar de forma assíncrona graças ao seu event-driven module. 🙂
  • Terceiro é o gerenciamento de processos php, o qual melhora e muito a performance do seu ambiente
  • E o quarto e último é o cache para o código php, feito em memória, como o varnish, mas com um pequeno problema, a fragmentação de memória.

São poucos os administradores web que percebem a fragmentação da memória ram de seu servidor linux após alguns dias dos produtos acima rodando.

Uma certa lentidão começa a aparecer no ambiente. Os tempos de resposta dos objetos php começam a aumentar e a solução que muitos empregam para isso é o simples restart do nginx e do php5-fpm.

Porém, não são todos os ambientes que permitem este tipo de ação, o restart de tudo.

Eis que lhes apresento o script php, apcClear.php (o qual consertou alguns erros do clear-apc.php) que tem a função de limpar o cache do php-apc, e com isso, desfragmentar a sua memória, melhorando e muito a performance do ambiente web.

Para roda-lo no seu ambiente, basta executar a seguinte linha de comando abaixo, caso o fpm esteja funcionando em modo socket:

php apcClear.php –sock /path/to/fpm/socket.sock

Caso ele esteja rodando em tcp/ip, altere o parâmetro socket para –port ip:porta – exemplo —port 127.0.0.1:9000

Eu o coloco para rodar direto na minha contrab, graças a um script shell e todos os dias 🙂

crontab -l

0 6 * * * /app/apcClean.sh

root@first-server:/app# cat apcClean.sh
#!/bin/bash
php apcClear.php –sock /var/run/php5-fpm.sock