[FUG-BR] Servidor com load altíssimo

Leonardo Augusto lalinden em gmail.com
Sexta Julho 6 17:08:46 BRT 2012


Se o apache ta matando a cpu, e o php esta dentro dele com o mod_php,
fica dificil detectar onde esta o culpado.

Usa o php em processo separado do apache, via fastcgi que fica melhor
de tu lidar.... segue como fazer isso:

#cd /usr/ports/www/apache22
#make WITH_MPM=worker install clean
#cd /usr/ports/lang/php5
#make install clean ( FPM )
#cd /usr/ports/www/mod_fastcgi
#make install clean

#vim /usr/local/etc/apache22/httpd.conf
LoadModule fastcgi_module     libexec/apache22/mod_fastcgi.so
Include etc/apache22/extra/httpd-mpm.conf

#vim /usr/local/etc/apache22/Includes/php.conf
<IfModule prefork.c>
  LoadModule php5_module        libexec/apache22/libphp5.so
  AddType application/x-httpd-php .php .html
  AddType application/x-httpd-php-source .phps
</IfModule>
 <IfModule worker.c>
  FastCGIExternalServer /usr/local/sbin/php-fpm -socket /tmp/php-fpm.sock
  AddHandler php-fastcgi .php
  Action php-fastcgi /usr/local/sbin/php-fpm.fcgi
  ScriptAlias /usr/local/sbin/php-fpm.fcgi /usr/local/sbin/php-fpm
  <Directory /usr/local/sbin >
    Options ExecCGI FollowSymLinks
    SetHandler fastcgi-script
    Order allow,deny
    Allow from all
  </Directory>
</IfModule>
 DirectoryIndex index.php index.html

#vim /usr/local/etc/php-fpm.conf
#listen = 127.0.0.1:9000
listen = /tmp/php-fpm.sock

#vim /etc/rc.conf
##fpm
php_fpm_enable="YES"

##apache
apache22_enable="YES"

#/usr/local/etc/rc.d/php-fpm start
#/usr/local/etc/rc.d/apache22 start


As vantagens estao na cara, vc pode definir numero de processos
diferenciados para o apache e para o php,
quando o apache for servir uma pagina estatica ele nao precisa lidar com o php.

Voce pode atualizar/restartar/matar o php sem pecher com o apache... e
vice-versa...

Voce pode por o php numa maquina separada do apache por exemplo...

E por ai vai... acho muito melhor assim com fast_cgi do que com mod_php.

Boa sorte


Mais detalhes sobre a lista de discussão freebsd