Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

Damien Alexandre

Benjamin Clay

Damien Alexandre

Damien ALEXANDRE twitter

@damienalexandre
Consultant Web - PHP/Symfony/Js
Clever Age

Benjamin Clay

Benjamin CLAY twitter

@ternel
Éleveur de poneys - PHP/Symfony
Clever Age

CleverAge Logo CleverAge
Coup de pied dans la

LAMP

Cette conférence n'est pas une conférence sur le cyclimse.

Performances

Un site excellent qui met trop de temps à s'afficher, c'est un site pénalisé.

Attention, il n'existe pas *UNE* configuration de la stack LAMP parfaite

YOU DON'T SAY?
Notch
Notch

La stack LAMP

LAMP dans le monde

http://news.netcraft.com/archives/2012/05/02/may-2012-web-server-survey.html
http://www.readwriteweb.com/hack/2011/10/mysql-leads-open-source-market.php
http://w3techs.com/technologies/history_overview/programming_language

Serveur de test

Serveur basique (kimsufi OVH), 50€ / mois

Not bad!

Procédure de test

Installation basique

Versions

Bench de référence

Are you kiddin' me?
htop

Load Average

1.03        0.22        0.11
1min         5min       15min

Monitorer ses serveurs !

Comment monitorer ?

PHP
Compilation PHP
APC
Compilation PHP avec APC

APC : Cache d'OpCode

apt-get install php5-apc
On obtient 70 req/s et temps de réponse diminués

FREE WIN

FUCK YEAH!

If you care about performance and don’t use a bytecode cache then you don’t really care about performance. Please get one and start using it.

Stas Malyshev, PHP Core Contributor, Zend employee

Dotdeb

♥ by Guillaume Plessis ♥

Sur Debian 6.0 pour amd64 et i386.

Protip® : Laissez la compilations à ceux dont c'est le métier.

Installation

/etc/apt/sources.list

deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all
wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | sudo apt-key add -
apt-get update

Installation basique bis

Versions

"fonctions avancés du driver MySQL natif pour PHP" à 16:30, Espace Adenauer par Serge Frezefond

Version dotdeb et APC

5 secondes de temps de réponse,
et presque 100 req/s

MySQLTuner.pl

MySQL Tuning Primer

Configurons MySQL

Apache2 mod_status

Installer mod_status

a2enmod mod_status
ExtendedStatus On

<Location /server-status>
    SetHandler server-status

    Order Deny,Allow
    Deny from all
    Allow from .pony.com
</Location>

Tuner Apache

Moins de 5 secondes

Apache => Ngnix

MySQL => MariaDB

Linux => Windows

PHP => PERL

Modifier notre stack logiciel sans peine et sans avoir à toucher à notre code PHP.

Nous ne sommes pas des sysadmins. C'est un métier.

MariaDB

Qu'est ce que MariaDB

I ♥ MariaDB

They ♥ MariaDB

MariaDB 5.5

Facile à installer

Drop-in replacement du binaire MySQL.

# MariaDB repository list
# http://downloads.mariadb.org/mariadb/repositories/
deb http://mirror.switch.ch/mirror/mariadb/repo/5.5/debian squeeze main
deb-src http://mirror.switch.ch/mirror/mariadb/repo/5.5/debian squeeze main
apt-get update
apt-get install mariadb-server-5.5

Ne pas oublier d'exclure dotdeb du sources.list

Le Threadpool

Proposé chez Oracle sous forme de plugin dans la version commerciale de MySQL.

thread_handling=pool-of-threads

La licence de MySQL Entreprise n'autorise pas la diffusion de benchmark comparatif sans l'accord écrit d'Oracle.

Sysbencher Threadpool

Utilisation de sysbench :

sysbench --test=oltp --oltp-table-size=1G --db-driver=mysql --mysql-host=localhost --mysql-user=root --mysql-password=poney --init-rng=1 --num-threads=256 --max-requests=0 --oltp-read-only --oltp-dist-type=uniform --max-time=180 run

Le Threadpool ça rox

Threadpool
NGINX

Ou captain NGINX pour les intimes.

The Nginx story

Absolut Nginx

Nginx

Avec PHP-FPM

Nginx et PHP-FPM

apt-get install nginx php5-fpm

Copier/Coller de la configuration "Drupal" depuis le wiki nginx.

Nginx et PHP-FPM

Nginx et PHP-FPM

Et PHP 5.4 ?

Suivre les mises à jours de PHP c'est aussi bénéficier d'améliorations de performance.

PHP 5.3 a trois ans.

IMPORTANT : Il existe un site dédié aux gifs de MJ.

Installer PHP5.4

Merci Dotdeb !

deb http://packages.dotdeb.org squeeze-php54 all
deb-src http://packages.dotdeb.org squeeze-php54 all

Très peu d'incompatibilités
mais APC en beta.

PHP 5.4 == FREE WIN

Apache 2.4

Pas d'installation simple, on compile !

Pinaaaaageeeeeeeee

100 req/s, 3 secondes

©HeroCorp

Et si on virait HTTP ?

Spdy

Utilisé par Google, Wikipedia, Twitter, HumbleBundle...

Installation simple !

Le changement, c'est maintenant.

J'ai déjà entendu ça quelque part...

Merci !

Code source, outils de bench et slides sur :
github.com/
damienalexandre/lamp-website

Slides :
damienalexandre.github.io/lamp-website/Slideshow

Questions ?

De gros chocobisoux à mateo pour l'aide, et pour le serveur de Siege.

Perrine pour sa patience.

Impress.JS pour nos slides.

M. Gif animé pour son invention.