Calculer le Time To First Byte (TTFB) d'un serveur photo

Calculer le Time To First Byte (TTFB) d’un serveur

Le Time to First Byte (TTFB) est le temps de chargement du premier octet, c’est la mesure qui nous permet d’évaluer la vitesse d’accès à un serveur.

Plus la mesure est basse et plus le serveur commencera à servir les ressources rapidement.

Calculer le Time To First Byte (TTFB) d'un serveur photo

Le ping comme moyen de contrôle

A l’origine le “ping” vient du bruit effectué par l’écho d’un sonar, le temps entre deux ping indiquant la distance parcourue par le signal pour détecter les fonds marins et revenir vers un navire.

Les sons courts n’étaient pas de bons signaux pour un capitaine, puisqu’ils indiquaient que le danger se rapprochait de la coque du navire.

Le ping correspond pour nous au TTFB car il nous permet de mesurer la réactivité d’un serveur ou d’une ressource réseau.

Le ping comme mesure du Time To First Byte

Le TTFB mesure le temps écoulé entre la requête d’un client qui effectue une requête HTTP et le premier octet de la page reçu dans le navigateur du client.

Ce temps se compose du temps de connexion au socket, du temps pris pour envoyer la requête HTTP, et du temps pris pour recevoir le premier octet de la page.

Le calcul du TTFB inclut toujours la latence du réseau lorsqu’il calcule le temps que prend une ressource avant de se charger.

Ce temps varie en fonction de plusieurs critères: l’éloignement entre le serveur et le client, la qualité de la connexion, ou les questions de connexion directe (réseau filaire) ou indirecte (WI-FI, 3G, etc) sont des facteurs modifiant le ping.

Un TTFB faible est perçu comme une indication d’un serveur bien configuré. Cela signifie que moins de calculs dynamiques sont effectués par le serveur ou alors que le cache (DNS, serveur, ou applicatif) est en place.

Calcul to TTFB avec curl

Il existe pas mal de services en ligne qui permettent de calculer le TTFB mais il est aussi très simple de le calculer soi-même, avec un simple terminal avec curl :

curl -o /dev/null -w "Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total} \n" https://www.skyminds.netCode language: JavaScript (javascript)

Ce qui nous donne le résultat suivant depuis chez moi:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 54616    0 54616    0     0   153k      0 --:--:-- --:--:-- --:--:--  153k

Connect: 0,039729 TTFB: 0,269024 Total time: 0,347745Code language: CSS (css)

A titre indicatif, si on lance la requête depuis le serveur:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 54616    0 54616    0     0   797k      0 --:--:-- --:--:-- --:--:--  808k

Connect: 0.001645 TTFB: 0.066232 Total time: 0.066848Code language: CSS (css)

On peut voir une sacrée différence, dû au temps de latence et à l’éloignement géographique.

Une autre raison pour laquelle il faut travailler sur la baisse du TTFB : si le TTFB met 270ms en France, à combien sera-t-il pour un visiteur Américain ou Australien ?

Concrètement, plus la connexion au serveur est rapide et plus le site se chargera tôt, ce qui a un fort impact sur le ranking du site. A surveiller donc !

32 odd musical anecdotes photo

32 odd musical anecdotes

Here are 32 odd musical anecdotes.

The Beastie Boys used to open for themselves, disguised as a heavy metal band.

When Andrew Lloyd Webber was writing the sequel to ‘The Phantom of the Opera,’ the entire score was deleted by a kitten.

The only guy in ZZ Top who doesn’t have a beard is Frank Beard.

None of Elvis’ films got nominated for Oscar, but he did win 3 Grammy Awards – for his gospel recordings.

John Lennon wrote Good morning, good morning after hearing a Corn Flakes commercial.

Metallica is the first and only band to play on all 7 continents.

Members of Led Zeppelin were once accused of attacking a groupie with a mud shark.

David Bowie was using so much cocaine in 1975 that he couldn’t remember recording an entire album, Station to Station.

The Notorious B.I.G., Jay-Z, DMX, and Busta Rhymes all went to the same high school at the same time.

Before Guns N’ Roses, Slash once auditioned for the band Poison; he decided not to join when he was asked about wearing make-up.

Marilyn Monroe got a white poodle named Mafia from Frank Sinatra.

The airplane that Buddy Holly died in was called American Pie. Don McLean wrote a song with the same name about the accident.

Duran Duran was named after a mad scientist from the Jane Fonda movie Barbarella.

The first CD that was pressed in the U.S. was Bruce Springsteen’s Born in the USA.

Before composing Beethoven dipped his head in cold water.

‘Ace’ Frehley, former lead guitarist and founding member of the rock band Kiss, used to record his vocals while lying on his back.

Like humans, birds can learn music while they are still in the egg stage.

Mozart was five years old when he wrote his first piece.

The first pop video was released in 1975. It was Bohemian Rhapsody by Queen.

In 1976 Barry Manilow sang a chart topping song named I write the songs. The song wasn’t written by him.

Termites will eat wood two times faster when listening to heavy metal.

When Madonna was 15 years old, she got grounded for the whole summer, for sneaking out to see David Bowie in concert.

In the year 1988 tenor Luciano Pavarotti received a record 165 curtain calls at a Berlin opera house.

Make music not war: Monaco’s national orchestra is bigger that its army.

Wham!’s hit single Wake me up before you go go was written by George Michael who was inspired by the note that was left to his hotel room by another band member Andrew Ridgeley. The note was mistakenly written as “Don’t forget to wake me up up before you go go, George”.

House of the rising sun by The Animals was recorded with only 15 minutes because the band was on a tight budget. In spite of that the song went all the way to number one in 1964.

Kurt Cobain accidentally named Nirvana’s ‘Smells Like Teen Spirit’ after a deodorant for teenage girls.

Suzanne Vega is considered the “mother” of the mp3 format. The creators of the mp3 used her voice from the song Tom’s Diner for analyzing the different sound spectrums when creating the compression algorithm.

The British Navy uses Britney Spears’ songs to scare off Somali pirates.

Composers Bach and Handel were both blinded by the same man.

When the Foo Fighters recorded their first album, David Grohl was the only member of the band.

The Rolling Stones’ tongue logo was inspired by the Hindu goddess Kali.

Ajouter un nouveau site WordPress dans un répertoire, sans conflit avec le site principal photo

Nginx : créer un nouveau site WordPress dans un sous-répertoire, sans conflit avec le site principal

Dernièrement, j’ai développé un nouveau site WordPress pour une cliente dont l’hébergement ne prévoit pas de staging site, ce qui est un peu ballot.

Plutôt que d’utiliser son hébergeur, je me suis dit que j’allais travailler sur la nouvelle version depuis un répertoire sous SkyMinds.

Le problème s’est assez rapidement posé : les diverses règles de configuration de SkyMinds (à la racine du domaine) entrent en conflit avec le nouveau site qui se trouve dans un répertoire. Il est donc nécessaire d’ajuster la configuration du bloc serveur NginX.

J’ai bien sûr effectué quelques recherches sur le net et après moults tests, il s’avère que la plupart des configurations nginx que l’on y trouve sont erronées. En relisant les docs, j’ai fini par trouver une solution satisfaisante.

Des erreurs 404, 403 ou 500

Je mentionnais à l’instant les configurations erronées – elles ne permettent pas au nouveau site d’afficher les pages correctement : erreur 404 pour les pages, erreur 404 pour la partie administration ou alors erreur 403 ou même 500…

Le plus surprenant est que l’on retrouve quasiment ces mêmes configurations dans tous les tutoriels. Cela fonctionnait peut-être à une époque mais plus maintenant avec les dernières versions de WordPress et NginX.

La configuration qui fonctionne

Voici donc la configuration que j’ai concoctée et qui permet d’avoir un autre site WordPress (comme par exemple https://example.com/nouveau-site/) lorsqu’un site WordPress (de type https://example.com) existe déjà à la racine du domaine. Le but est donc d’avoir deux sites fonctionnels qui n’entrent pas en conflit au niveau de la gestion des règles.

On édite le server block de notre domaine :

nano /etc/nginx/sites-available/example.com

Dans la partie server de la configuration, on ajoute :


# Script name : Add new WP site in subfolder
# Author : Matt Biscay
# Author URI : https://www.skyminds.net/?p=29604

# Add new location point with rewrite rule
location @nouveausite{
rewrite . /nouveau-site/index.php last;
}

# Add subfolder config
location  /nouveau-site {
         root /home/example/public_html/nouveau-site;
         index index.php;
         try_files $uri $uri/ @nouveausite;
}Code language: PHP (php)

Sauvegardez le fichier. On teste la nouvelle configuration:

nginx -t

et on relance nginx et PHP:

service nginx restart 
service php7.2-fpm restartCode language: CSS (css)

Et voilà, le nouveau site dans son répertoire devrait maintenant être fonctionnel, sans conflit avec le site principal.