Ecouter de la musique en ligne avec Grooveshark

L’offre d’écoute de musique en ligne commence à s’étoffer : après Deezer (que j’ai définitivement abandonné)  et Spotify, j’ai testé Grooveshark parallèlement.

Ecouter de la musique en ligne avec Grooveshark

L’interface n’est pas des plus intuitives, et consomme assez de ressources (Flash en plein écran), mais le choix est conséquent et il est facile de créer ses listes de lectures.

En dehors des comptes gratuits, il existe deux abonnements, dont les prix sont curieusement similaires à ceux de Spotify :

  • un abonnement Grooveshark Plus pour 6$ par mois qui supprime la pub,
  • un abonnement Grooveshark Premium/Anywhere pour 9$ par mois qui permet d’utiliser l’application mobile.

U2 sur Grooveshark

L’inconvénient majeur de Grooveshark est qu’il n’existe pas d’application comme Spotify, qui a l’avantage d’exister sur presque toutes les plate-formes.

Note : même s’il existe une application Grooveshark pour certains téléphones mobile, l’iPhone n’est pas dans la liste car l’application a été refusée par l’App Store.

Surveillez vos serveurs Memcached

Après un court article d’introduction sur Memcached, je reviens sur son monitoring. :)

Pour rappel :

Memcached est un système de cache d’objets distribué et non répliqué. Il va stocker des objets en RAM, pour diminuer les temps de réponses des applications.

Chaque serveur Memcached démarre avec une certaine quantité de mémoire allouée. Comme le système est de type LRU (Least Recently Used), ce sont les données les plus anciennes qui seront supprimées une fois la limite de la mémoire atteinte. Et inversement, il n’est pas non plus judicieux d’allouer trop de RAM car la perte d’une instance Memcached entrainerait la perte des données stockées (si elle n’est pas protégée/répliquée).

Pour surveiller les serveurs Memcached, on peut jouer avec beaucoup d’outils / de scripts (templates Cacti, Nagios, etc.), mais il existe une solution dédiée au monitoring  et au debugging de Memcached : phpmemcacheadmin.

Logo phpmemcacheadmin

Se présentant sous la forme de quelques fichiers PHP à déposer sur un serveur Web, on peut y ajouter et monitorer autant de serveurs Memcached que l’on souhaite.

On y retrouvera un tableau de bord avec divers statistiques :

  • mémoire utilisée pour le cache,
  • nombre de requêtes,
  • nombre et taux de hits (données présentes en cache, environ 75% dans mon cas),
  • trafic réseau,
  • etc.

Consultation des statistiques de vos serveurs Memcached via le Dashboard de phpmemcacheadmin

Il est également possible de consulter des statistiques « live » par serveur surveillé.

Statistiques live de Memcached via phpmemcacheadmin

Consultation "live" des statistiques

Enfin, il est possible de consulter les valeurs stockées via la page « Execute commands on Servers », et d’interagir avec : insertion, suppression, flush des données, etc.

Exécution de commandes via phpmemcacheadmin

Exécution de commandes via phpmemcacheadmin

Très bon complément de votre système de monitoring global, phpmemcacheadmin permet une vue plus complète de vos serveurs Memcached, pour une installation simplissime.

Analyse de performance et d’optimisation des 1000 sites les plus visités

Disponible sur une page permanente de GTmetrix, on retrouve le top 1000 des sites ayant la meilleure note pour des tests de rapidité : Performance and Optimization Analysis of the Top 1000* Sites.

GTmetrix est un service en ligne qui analyse plusieurs facteurs (vitesse de chargement, compression, etc.) pour affecter une note à un site.

Performance et optimisation des 1000 sites les plus visités dans le monde

Par exemple, on peut accéder au rapport pour Facebook. Celui-ci est tout à fait relatif, car le bot ne peut accéder qu’à la page d’accueil statique (puisqu’il n’est pas connecté) pendant la prise de mesure.

Performance et optimisation de Facebook via GTmetrix

Le classement des 1000 premiers sites se base sur le classement de Double Click Ad Planner, dont je parlais récemment.

Trouvez l’âge de votre compte Twitter avec Twuration

Dans le genre service minimaliste, Twuration permet de retrouver sa date d’inscription à Twitter, et de calculer l’âge de votre compte (en jours). C’est peu, mais c’est rapide et efficace, j’aime !

Twuration : depuis quand êtes-vous inscrit sur Twitter ?

Mince, bientôt 4 ans que je suis inscrit ? Qui se souvient du début ?

  • quand on n’était pas beaucoup,
  • que Pownce était un concurrent sérieux,
  • et que Facebook n’avait que quelques millions d’inscrits ? :)

En vrac #60

Revue de presse hebdomadaire par Romain DECKERAu départ prévue pour stocker des liens que je jugeais intéressants, la revue de presse hebdomadaire me permet de partager mes découvertes avec vous. Pour cette 60ème édition : résolution d’écran, des belles photos, le résultat de l’enquête sur les blogueurs francophones, et une comparaison entre le cerveau humain et la puissance informatique totale dans le monde.

Optimisez les performances de votre site avec Memcached

Parmi toutes les optimisations possibles pour un blog, un site ou une application, on retrouve Memcached qui se positionne comme un système de cache d’objets distribué et non répliqué. Initialement développé par Danga pour Livejournal, c’est un outil open source qui est maintenant utilisé par de nombreux sites (Facebook, Youtube, mon blog, Flickr, etc.)

J’utilise Memcached sur le serveur de mon blog depuis quelques mois, et la différence avec/sans est assez flagrante.

Memcached : système de mise en cache d'objets

Logo MemcachedPour comprendre son utilité, je rappelle simplement que les temps d’accès à la mémoire vive d’un serveur sont nettement supérieurs à ceux d’un disque (nanosecondes VS millisecondes, cad un ratio compris entre 10 000 et 100 000).

C’est là que Memcached intervient. Il va créer des tableaux de données en RAM : cela va contribuer à réduire le nombre de fois qu’une même donnée stockée sur un périphérique de stockage mécanique est lue.

La principale chose à comprendre avec Memcached est qu’il s’agit d’un système d’usage général, et que les applications doivent être « conscientes » de sa présence. Ce n’est pas quelque chose de magique, qu’il suffit d’installer pour multiplier les performances par 10. Il faudra a minima installer un plugin si vous utilisez un CMS, voire repasser dans une partie du code.

Sous forme d’architecture client-serveur, Memcached se présente comme un démon qui écoute par défaut sur le port 11211. Le système créé des tableaux dont les clés de 250 octets pointent vers des valeurs qui peuvent avoir jusqu’à 1 Mo (mégaoctet). Si la quantité de mémoire allouée est pleine, les clés les plus anciennes sont supprimées (méthode Least Recently Used). Comme les données sont stockées en RAM, elles seront perdues si le serveur redémarre.

Il est possibles d’utiliser plusieurs instances Memcached. Par exemple, une application ABC peut mettre des données en cache sur 3 serveurs différents :

  • memcached1.monappli.com
  • memcached2.monappli.com
  • memcached3.monappli.com

Chaque serveur sera autonome et ne communiquera pas avec ses voisins.

Architecture Memcached : isolation des serveurs

Il est possible de répliquer des instances Memcached, mais ceci est une autre histoire ! :)

Un grand nombre de librairies clientes pour accéder à Memcached sont disponibles : C/C++, PHP, Java, Windows/.Net, Ruby, Perl, etc.

Performances : avec / sans Memcached sur un WordPress

Pour vérifier le gain de performances, j’ai utilisé un serveur de test, avec une installation de WordPress vierge. J’ai fait un test de charge avec ApacheBench, avec et sans Memcached activé.

Benchmark :

  • WordPress sans Memcached : 8,75 requêtes / secondes,
  • WordPress avec Memcached : 150 requêtes / secondes.

Nb : il s’agit d’une installation d’Apache2 avec un paramétrage par défaut sur une CentOS 5.5 32 bits, 1 vCPU 2 Ghz, 512 Mo de Ram.

En conclusion, Memcached est un élément non négligeable qu’il est bon d’intégrer dans la conception d’une application. Cependant, comme c’est une couche d’intégration supplémentaire, il faut faire en sorte que l’application soit consciente que système existe.

Je reviendrais plus tard sur l’installation de Memcached…