{"id":9,"date":"2012-04-11T11:31:00","date_gmt":"2012-04-11T11:31:00","guid":{"rendered":"http:\/\/www.olivierdoucet.info\/wordpress\/?p=9"},"modified":"2012-04-11T11:31:00","modified_gmt":"2012-04-11T11:31:00","slug":"comprendre-les-statistiques-nfsd-sous-linux","status":"publish","type":"post","link":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/","title":{"rendered":"Comprendre les statistiques NFSD sous Linux"},"content":{"rendered":"<p>Les statistiques du serveur NFS sont accessibles dans le fichier \/proc\/net\/rpc\/nfsd&nbsp;; c&rsquo;est ce fichier qu&rsquo;il faut lire si vous avez votre propre programme de monitoring et qu&rsquo;il vous faut les valeurs \u00ab\u00a0brutes\u00a0\u00bb. Si c&rsquo;est pour une lecture par un humain, l&rsquo;utilitaire nfsstat est l\u00e0 pour \u00e7a. Petit tour d&rsquo;aper\u00e7u des deux outils<\/p>\n<p><!--more--><\/p>\n<p>Commen\u00e7ons par le fichier source des statistiques (en effet, nfsstat se contente de lire ce fichier).<\/p>\n<h2>Informations dans \/proc\/net\/rpc\/nfsd<\/h2>\n<p>Exemple&nbsp;:<\/p>\n<pre>rc 52603 2106994613 989994491 fh 4 0 0 0 0 io 390118560 2479849292 th 512 549429 97890.216 29560.756 6016.820 1743.004 851.868 419.216 239.144 173.020 131.476 355.180 ra 1024 1554405721 0 0 0 0 0 0 0 0 0 923683645 net 3158986943 0 3158896106 4484 rpc 3149953922 2 2 0 0 proc3 22 1746 1055191401 195469818 34714069 722236051 618167 2478122396 1681654973 90492213 2315234 377 1 82213841 1538965 53357411 127 37630038 229128479 197374 2592 0 773272877 proc4 2 0 0 proc4ops 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 <\/pre>\n<p>chaque ligne correspond \u00e0 des informations diff\u00e9rentes&nbsp;:<\/p>\n<ul>\n<li>rc&nbsp;: reply cache stats<\/li>\n<li>fh&nbsp;: file handle cache&nbsp;: gestion du cache des descripteurs de fichiers<\/li>\n<li>io&nbsp;: I\/O effectu\u00e9es (lectures \/ \u00e9critures)<\/li>\n<li>th&nbsp;: threads NFS<\/li>\n<li>ra&nbsp;: read ahead cache<\/li>\n<li>net&nbsp;: statistiques r\u00e9seau<\/li>\n<li>rpc&nbsp;: Informations RPC<\/li>\n<li>proc3&nbsp;:  appels NFS dans le protocole 3<\/li>\n<li>proc4&nbsp;: statistiques g\u00e9n\u00e9rales NFS v4<\/li>\n<li>proc4ops&nbsp;: appels NFS dans le protocole 4 (\u00e9quivalent de la ligne proc3 mais en nfsv4)<\/li>\n<\/ul>\n<p>D\u00e9crivons ensuite chaque champ de chaque ligne&nbsp;:<\/p>\n<h3>rc &#8211; read ahead cache<\/h3>\n<ul>\n<li>hits : signifie qu&rsquo;une retransmission a eu lieu (mauvais signe)<\/li>\n<li>Misses : une op\u00e9ration requiert du cache<\/li>\n<li>Nocache : une op\u00e9ration ne requiert pas de cache<\/li>\n<\/ul>\n<h3>fh &#8211; file handle cache<\/h3>\n<div>Petite explication sur le fonctionnement de NFS :&nbsp;<\/div>\n<div>Chaque client va d&rsquo;abord faire un appel lookup() avec un nom de fichier. Le serveur NFS va retourner un filehandle (FH), et c&rsquo;est ce file handle qui sera ensuite utilis\u00e9 par le client.&nbsp;<\/div>\n<div>Le serveur a donc \u00e9videmment un cache de file handle afin de ne pas chercher de correspondances \u00e0 chaque fois.<\/div>\n<ul>\n<li>stale : suppos\u00e9 \u00eatre le nombre d&rsquo;erreur de file handle (pas bon signe)<\/li>\n<li>total lookup<\/li>\n<li>anon lookup<\/li>\n<li>dir not in cache<\/li>\n<li>nodir not in cache<\/li>\n<\/ul>\n<div>Ces 4 derni\u00e8res variables semblent inutilis\u00e9es (valeur toujours \u00e0 0).<\/div>\n<h3>io &#8211; I\/O effectu\u00e9es<\/h3>\n<ul>\n<li>lectures (en octets) sur disque<\/li>\n<li>\u00e9critures (en octets) sur disque<\/li>\n<\/ul>\n<h3>th &#8211; threads NFS<\/h3>\n<p>nombre de threads NFS&nbsp;; Puis histogramme de l&rsquo;utilisation des threads.<\/p>\n<p>Le serveur NFS lance X threads au d\u00e9marrage (X == premier argument de cette ligne, r\u00e9glable dans votre config NFSD). Pour assigner les t\u00e2ches, il fait \u00e7a de mani\u00e8re simple : il essaie d&rsquo;assigner au 1er thread. Si celui-ci est occup\u00e9, il essaie d&rsquo;assigner au 2e, et ainsi de suite jusqu&rsquo;au dernier.<\/p>\n<p>Le 2e&nbsp;param\u00e8tre&nbsp;de cette ligne correspond au nombre de fois o\u00f9 tous les threads ont \u00e9t\u00e9 occup\u00e9s. C&rsquo;est tr\u00e8s mauvais si cette valeur est sup\u00e9rieure \u00e0 0, cela veut dire que le serveur NFS n&rsquo;a pas pu r\u00e9pondre au client car il \u00e9tait surcharg\u00e9 par les autres demandes en cours.<br \/>Suit alors 10 valeurs correspondant aux tranches d&rsquo;utilisation : 0-10% ; 10-20%, etc.<\/p>\n<p>Pour en d\u00e9duire si vous avez ajust\u00e9 correctement le nombre de threads NFS, regarder dans quelle tranche se situe le premier 0 (ce qui correspond donc au pourcentage jamais atteint).<\/p>\n<h3>ra &#8211; read ahead cache<\/h3>\n<ul>\n<li>taille du cache en Kilo-octets<\/li>\n<li>histogramme d&rsquo;utilisation, comme pour &lsquo;th&rsquo;, mais cette fois avec les valeurs dans cet ordre : &lt;0-10%&gt; &lt;10-20%&gt; &#8230; &lt;100%&gt;<\/li>\n<li>dernier chiffre : not-found ; requ\u00eates non trouv\u00e9es dans le cache<\/li>\n<\/ul>\n<h3>net&nbsp;: statistiques r\u00e9seau<\/h3>\n<ul>\n<li>&lsquo;netcnt&rsquo; : compte chaque lecture<\/li>\n<li>nombre de paquets UDP re\u00e7u<\/li>\n<li>nombre de fois o\u00f9 le serveur a re\u00e7u des donn\u00e9es d&rsquo;une connexion TCP<\/li>\n<li>Nombre de connexions TCP \u00e9tablies<\/li>\n<\/ul>\n<div>Un client \u00e9tablit une session TCP avec le serveur une seule fois (sauf d\u00e9connexion ou autre action sp\u00e9cifique). Vous devez donc avoir un nombre de connexions TCP faible.<\/div>\n<h3>rpc &#8211; Informations RPC<\/h3>\n<ul>\n<li>Nombre d&rsquo;appels RPC&nbsp;;&nbsp;<\/li>\n<li>mauvais appels&nbsp;; mauvaise authentification&nbsp;; mauvais client&nbsp;; appels XDR(<a href=\"http:\/\/tools.ietf.org\/html\/rfc1014\" hreflang=\"en\" title=\"External Data Representation\">External Data Representation<\/a>)<\/li>\n<\/ul>\n<h3>proc3&nbsp;:  appels NFS dans le protocole 3<\/h3>\n<div>La norme nfsv3 offre un nombre restreint d&rsquo;appels. Toutes les op\u00e9rations sont r\u00e9sum\u00e9es en 22 calls NFS qui sont comptabilis\u00e9s comme suit dans l&rsquo;ordre (explication en anglais, je vais pas traduire \u00e7a &#8230;) :&nbsp;<\/div>\n<div>\n<ul>\n<li>NULL &#8211; Do nothing&nbsp;<\/li>\n<li>GETATTR &#8211; Get file attributes&nbsp;<\/li>\n<li>SETATTR &#8211; Set file attributes&nbsp;<\/li>\n<li>LOOKUP &#8211; Lookup filename&nbsp;<\/li>\n<li>ACCESS &#8211; Check Access Permission&nbsp;<\/li>\n<li>READLINK &#8211; Read from symbolic link&nbsp;<\/li>\n<li>READ &#8211; Read From file&nbsp;<\/li>\n<li>WRITE &#8211; Write to file&nbsp;<\/li>\n<li>CREATE &#8211; Create a file&nbsp;<\/li>\n<li>MKDIR &#8211; Create a directory&nbsp;<\/li>\n<li>SYMLINK &#8211; Create a symbolic link&nbsp;<\/li>\n<li>MKNOD &#8211; Create a special device&nbsp;<\/li>\n<li>REMOVE &#8211; Remove a File&nbsp;<\/li>\n<li>RMDIR &#8211; Remove a Directory&nbsp;<\/li>\n<li>RENAME &#8211; Rename a File or Directory&nbsp;<\/li>\n<li>LINK &#8211; Create Link to an object&nbsp;<\/li>\n<li>READDIR &#8211; Read From Directory&nbsp;<\/li>\n<li>READDIRPLUS &#8211; Extended read from directory&nbsp;<\/li>\n<li>FSSTAT &#8211; Get dynamic file system information&nbsp;<\/li>\n<li>FSINFO &#8211; Get static file system Information&nbsp;<\/li>\n<li>PATHCONF &#8211; Retrieve POSIX information&nbsp;<\/li>\n<li>COMMIT &#8211; Commit cached data on a server to stable storage&nbsp;<\/li>\n<\/ul><\/div>\n<div><\/p>\n<h3>proc4&nbsp;: statistiques g\u00e9n\u00e9rales NFS v4<\/h3>\n<\/p><\/div>\n<div>Juste trois compteurs : premier inconnu ; 2e: &lsquo;null&rsquo; ; 3e: &lsquo;compound&rsquo;; Ce d\u00e9coupage est bas\u00e9 sur la RFC 3530 qui explique NFSv4 :&nbsp;<\/div>\n<div><a href=\"http:\/\/www.ietf.org\/rfc\/rfc3530.txt\">http:\/\/www.ietf.org\/rfc\/rfc3530.txt<\/a>&nbsp;(chapitre 14)<\/div>\n<h3>proc4ops&nbsp;: appels NFS dans le protocole 4<\/h3>\n<div>Comme pour proc3, il s&rsquo;agit des appels de base du protocole, soit dans l&rsquo;ordre :&nbsp; <\/div>\n<div>\n<ul>\n<li>null<\/li>\n<li>read<\/li>\n<li>write<\/li>\n<li>commit<\/li>\n<li>open<\/li>\n<li>open_conf<\/li>\n<li>open_noat<\/li>\n<li>open_dgrd<\/li>\n<li>close<\/li>\n<li>setattr<\/li>\n<li>fsinfo<\/li>\n<li>renew<\/li>\n<li>setclntid<\/li>\n<li>confirm<\/li>\n<li>lock<\/li>\n<li>lockt<\/li>\n<li>locku<\/li>\n<li>access<\/li>\n<li>getattr<\/li>\n<li>lookup<\/li>\n<li>lookup_root<\/li>\n<li>remove<\/li>\n<li>rename<\/li>\n<li>link<\/li>\n<li>symlink<\/li>\n<li>create<\/li>\n<li>pathconf<\/li>\n<li>statfs<\/li>\n<li>readlink<\/li>\n<li>readdir<\/li>\n<li>server_caps<\/li>\n<li>delegreturn<\/li>\n<li>setacl<\/li>\n<li>fs_locations.<\/li>\n<\/ul>\n<div>Ce n&rsquo;est pas le m\u00eame ordre que dans la RFC contrairement \u00e0 NFSv3 &#8230; Si vous avez un doute, n&rsquo;h\u00e9sitez pas \u00e0 m&rsquo;en faire part.<\/div>\n<\/p><\/div>\n<h2>Programme nfsstat<\/h2>\n<div>Comme toujours, je vous encourage \u00e0 lire attentivement la doc du logiciel, tout est bien expliqu\u00e9 et je ne ferais que de la&nbsp;paraphrase&nbsp;:<\/div>\n<div><a href=\"http:\/\/linux.die.net\/man\/8\/nfsstat\">http:\/\/linux.die.net\/man\/8\/nfsstat<\/a> <\/div>\n<div>Quelques exemples :<\/div>\n<div>\n<dt><strong>nfsstat -o all -34<\/strong><\/dt>\n<dd>Affiche toutes les informations (client\/serveur) pour les versions 3 et 4 de<strong>&nbsp;NFS<\/strong>.<\/dd>\n<dt><strong>nfsstat &#8211;verbose -34<\/strong><\/dt>\n<dd>Identique.<\/dd>\n<dt><strong>nfsstat -o all<\/strong><\/dt>\n<dd>Affiche toutes les informations NFS (client\/serveur) sur la version en cours d&rsquo;utilisation de&nbsp;<strong>NFS<\/strong>.<\/dd>\n<dt><strong>nfsstat &#8211;nfs &#8211;server -3<\/strong><\/dt>\n<dd>Affiche les statistiques serveurs uniquement pour &nbsp;<strong>NFS<\/strong>&nbsp;version 3.<\/dd>\n<dt><strong>nfsstat -m<\/strong><\/dt>\n<dd>Affiche des informations sur les montages&nbsp;<strong>NFS<\/strong> (fonctionnement en mode client uniquement).<\/dd>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Les statistiques du serveur NFS sont accessibles dans le fichier \/proc\/net\/rpc\/nfsd&nbsp;; c&rsquo;est ce fichier qu&rsquo;il faut lire si vous avez votre propre programme de monitoring et qu&rsquo;il vous faut les valeurs \u00ab\u00a0brutes\u00a0\u00bb. Si c&rsquo;est pour une lecture par un humain, l&rsquo;utilitaire nfsstat est l\u00e0 pour \u00e7a. Petit tour d&rsquo;aper\u00e7u des deux outils<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-9","post","type-post","status-publish","format-standard","hentry","category-divers-informatique"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comprendre les statistiques NFSD sous Linux - My thoughts<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comprendre les statistiques NFSD sous Linux - My thoughts\" \/>\n<meta property=\"og:description\" content=\"Les statistiques du serveur NFS sont accessibles dans le fichier \/proc\/net\/rpc\/nfsd&nbsp;; c&#039;est ce fichier qu&#039;il faut lire si vous avez votre propre programme de monitoring et qu&#039;il vous faut les valeurs &quot;brutes&quot;. Si c&#039;est pour une lecture par un humain, l&#039;utilitaire nfsstat est l\u00e0 pour \u00e7a. Petit tour d&#039;aper\u00e7u des deux outils\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/\" \/>\n<meta property=\"og:site_name\" content=\"My thoughts\" \/>\n<meta property=\"article:published_time\" content=\"2012-04-11T11:31:00+00:00\" \/>\n<meta name=\"author\" content=\"olivier\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@odoucet\" \/>\n<meta name=\"twitter:site\" content=\"@odoucet\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"olivier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/\",\"name\":\"Comprendre les statistiques NFSD sous Linux - My thoughts\",\"isPartOf\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\"},\"datePublished\":\"2012-04-11T11:31:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.olivierdoucet.info\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Comprendre les statistiques NFSD sous Linux\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#website\",\"url\":\"https:\/\/www.olivierdoucet.info\/blog\/\",\"name\":\"My thoughts\",\"description\":\"En fran\u00e7ais and in english :)\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96\",\"name\":\"olivier\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g\",\"caption\":\"olivier\"},\"sameAs\":[\"http:\/\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Comprendre les statistiques NFSD sous Linux - My thoughts","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/","og_locale":"fr_FR","og_type":"article","og_title":"Comprendre les statistiques NFSD sous Linux - My thoughts","og_description":"Les statistiques du serveur NFS sont accessibles dans le fichier \/proc\/net\/rpc\/nfsd&nbsp;; c'est ce fichier qu'il faut lire si vous avez votre propre programme de monitoring et qu'il vous faut les valeurs \"brutes\". Si c'est pour une lecture par un humain, l'utilitaire nfsstat est l\u00e0 pour \u00e7a. Petit tour d'aper\u00e7u des deux outils","og_url":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/","og_site_name":"My thoughts","article_published_time":"2012-04-11T11:31:00+00:00","author":"olivier","twitter_card":"summary_large_image","twitter_creator":"@odoucet","twitter_site":"@odoucet","twitter_misc":{"\u00c9crit par":"olivier","Dur\u00e9e de lecture estim\u00e9e":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/","url":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/","name":"Comprendre les statistiques NFSD sous Linux - My thoughts","isPartOf":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#website"},"datePublished":"2012-04-11T11:31:00+00:00","author":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96"},"breadcrumb":{"@id":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.olivierdoucet.info\/blog\/2012\/04\/11\/comprendre-les-statistiques-nfsd-sous-linux\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.olivierdoucet.info\/blog\/"},{"@type":"ListItem","position":2,"name":"Comprendre les statistiques NFSD sous Linux"}]},{"@type":"WebSite","@id":"https:\/\/www.olivierdoucet.info\/blog\/#website","url":"https:\/\/www.olivierdoucet.info\/blog\/","name":"My thoughts","description":"En fran\u00e7ais and in english :)","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.olivierdoucet.info\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/2a02230ae6aeac086b3379e5853c6f96","name":"olivier","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.olivierdoucet.info\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/febd16d726b2266a512e951d03424de3?s=96&d=mm&r=g","caption":"olivier"},"sameAs":["http:\/\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":0,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/posts\/9\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/media?parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/categories?post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.olivierdoucet.info\/blog\/wp-json\/wp\/v2\/tags?post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}