Ebb

plusieurs raisons :

  • apache à une latence plus importante que nginx ou lighttpd
    perceptible par un httperf, pas par un humain

Firefox me donne des temps de reponse tres differents sur une machine
evidemment située sur un reseau local. Donc perceptible par un humain.

Merge tes js et tes css,compresse les avant gzip,
réduit le nombre d’image et fait du css sprite,
configure tes entêtes expires et fait en sorte que les etags soient
les mêmes sur toutes la machines du clusteur,
utilise des cdn et des dns rapides,
utilise du cache static et fait du reverse proxy,
niveau appli fait du fragment caching

Là tes utilisateurs verront la différence. Mais c’est surement pas la
réactivité de nginx/versus apache qui est un facteur de qualité sur la
vitesse perçue. Faut arrêter de délirer.

Rails 2.3.x a actuellement une performance linérairement décroissante
suivant la taille du html rendu, ce qui veut dire qu’une page html de
500K est 2 fois plus lente qu’une page de 250k simplement à cause de
sa taille parce que la bufferisation effectuée via rack était débile
(en gros on met dans le socket tous les @body.each_line!!!). Et j’ai
vu personne hurler au loup bien que ca touche tous les types
d’hébergements (ca a quand même été corrigé en douce dans edge). Tout
ca pour dire qu’il y a d’énorme facteur de progression mais qu’ils ne
sont plus dans le choix de tel serveur Vs tel autre. Mais vraiment pas
du tout.

On 11 avr. 2009, at 17:48, “Renaud (Nel) Morvan”
<[email protected]

wrote:

Merge tes js et tes css,compresse les avant gzip,
réduit le nombre d’image et fait du css sprite,
configure tes entêtes expires et fait en sorte que les etags soient
les mêmes sur toutes la machines du clusteur,
utilise des cdn et des dns rapides,
utilise du cache static et fait du reverse proxy,
niveau appli fait du fragment caching

Completement d’accord. Mais je n’ai ni le choix sur le code HTML ni
sur le design et donc les images.

Là tes utilisateurs verront la différence. Mais c’est surement pas
la
réactivité de nginx/versus apache qui est un facteur de qualité
sur la
vitesse perçue. Faut arrêter de délirer.

Je crois qu’on ne pourra pas tomber d’accord et comme le disais
quelqu’un : la difference nous permet de trouver la bonne solution ou
au moins une solution qui nous convient/plait.

Tout
ca pour dire qu’il y a d’énorme facteur de progression mais qu’ils ne
sont plus dans le choix de tel serveur Vs tel autre. Mais vraiment pas
du tout.

J’ignorais cette partie sur les changements internes a rails. Merci de
l’info.

On 11 avr, 21:17, Fernando P. [email protected] wrote:

niveau appli fait du fragment caching

Le fragment caching c’est quand même une plaie douleureuse à maintenir
même si le gain est loin d’être négligeable. Personnellement j’ai
abandonné sauf sur les zones vraiment très simple à sweeper.

perso c’est clé intelligente + time based expiry, jamais de sweeper

Intéressant, tu aurais des numéros de commit à indiquer?

Response#each

Juste:

  •    @body.each_line(&callback)
    
  •    callback.call(@body)
    

Gain de performance sur une page html/xml de 250k *2 sur une page de
500k *4, plutôt que de faire une IO basé sur une taille mémoire fixe
actuellement rack/rails place sur le socket tous les \n, ce qui est
très loin d’être optimal en ruby

niveau appli fait du fragment caching
Le fragment caching c’est quand même une plaie douleureuse à maintenir
même si le gain est loin d’être négligeable. Personnellement j’ai
abandonné sauf sur les zones vraiment très simple à sweeper.

Sinon en astuce sympa, il faut tenter de réécrire ses views afin de
basculer en page caching, ça impose quelques concessions niveau design.
C’est facile à maintenir (en tout cas plus que le fragment) et là le
gain est gigantesque. Sur la homepage ou les pages diggables, c’est un
must-have.

sa taille parce que la bufferisation effectu�e via rack �tait d�bile
(en gros on met dans le socket tous les @body.each_line!!!). Et j’ai
vu personne hurler au loup bien que ca touche tous les types
d’h�bergements (ca a quand m�me �t� corrig� en douce dans edge).
Intéressant, tu aurais des numéros de commit à indiquer?

Le 11 avril 2009 17:48, Renaud a écrit :

vitesse perçue. Faut arrêter de délirer.
Ah ah ah, on sent l’influence koziarskienne sur le Neleanth !

Mais bon, t’as raison. À ce sujet, revoir les slides et la
présentation du nzkoz à Paris on Rails 2008.

http://2008.parisonrails.org/data/pdf/ParisOnRails2008-Michael_Koziarski-RailsPerformance.pdf
http://2008.parisonrails.org/torrents/ParisOnRails2008-Michael_Koziarski-Rails_performance.mov.torrent
http://2008.parisonrails.org/data/video/ParisOnRails2008-Michael_Koziarski-Rails_performance.mov
http://2008.parisonrails.org/torrents/ParisOnRails2008-Michael_Koziarski-Rails_performance.mp3.torrent
http://2008.parisonrails.org/data/audio/ParisOnRails2008-Michael_Koziarski-Rails_performance.mp3

(mp3 58 Mo, quicktime mov 274 Mo, pdf 1,3 Mo)

– Jean-François.


http://twitter.com/underflow_

Le 10 avr. 09 à 15:08, Cyril M. a écrit :

qui font la million de hit par jour, du multithread, de l’em, je
n’arrive pas à voir l’intéret par rapport à un mod_rack si ce n’est
la
fingerprint. Y a un grand secret que j’ignore ?
Ca permet en priorité de ne pas être dépendant d’Apache.

Et hop, phusion relance le débat :wink:

Phusion's One Year Anniversary Gift: Phusion Passenger 2.2.0 - Phusion Blog
=> Phusion Passenger for NginX