Codaz U Can’t VMTouch This

April 11th, 2012 par Klyr

Quelle ne fut pas ma joie quand aujourd’hui j’ai pu me changer les idées en jouant avec vmtouch.

Un petit programme C, tout mignon, qui nous permet de jouer avec le cache fichier: savoir quelle part d’un fichier est en cache, monter un fichier en cache, virer un fichier du cache.

Tout cela grace à des syscalls bien sympas:

  • mincore(2) pour savoir quels sont les pages en mémoire,
  • posix_fadvise(2) sur linux pour expliquer à l’OS si on veut garder ou virer un fichier du cache,
  • msync(2) sur FreeBSD sert à peu près à la même chose,
  • mlock(2) et mlockall(2) pour locker des pages en RAM.

Exemple d’utilisation: pré-cacher les mêmes fichiers sur un slave que sur un master pour qu’au moment du failover il n’y ait pas de ralentissement.

Dans le même genre, voilà un petit patch de rsync qui utilise posix_fadvise(2) et mincore(2) pour éviter à l’OS de perturber le cache fichier à cause d’un gros rsync et éviter les ralentissements.

Ça peut toujours servir quand on backup une DB et qu’on ne veut pas que le cache fichier soit totalement utlisé par les fichiers de la DB.

Le tout très bien expliqué ici par notre ami RRD.

Posté dans Codaz, FreeBSD, Linux, Unix | No Comments »

Répondre

Vous devez être identifié pour poster un commentaire.

Identification

Enregistrez-vous

SQUAD!

GCU live

-- [22:00:35] Nick change: semarie_ -> semarie
--> jazz joined #gcu.
<-- nightmared left irc: Ping timeout: 264 seconds
<-- jazz left irc: Remote host closed the connection
--> jazz joined #gcu.
<-- jazz left irc: Remote host closed the connection
--> jazz joined #gcu.
<-- jazz left irc: Ping timeout: 258 seconds
<-- amj left irc: Ping timeout: 255 seconds
--> amj joined #gcu.
--> jazz joined #gcu.

Miiissioudaaam'

Archives:

Meta:

Hosted by:

NBS-System