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

--> brancaleone joined #gcu.
<-- caseih left irc: Ping timeout: 276 seconds
--> caseih joined #gcu.
<-- nagoh left irc: Read error: Connection reset by peer
<-- lissyx left irc: Ping timeout: 265 seconds
<-- brancaleone left irc: Ping timeout: 256 seconds
<-- caseih left irc: Ping timeout: 240 seconds
--> caseih joined #gcu.
--> brancaleone joined #gcu.
<-- TeXitoi left irc: Ping timeout: 272 seconds
--> TeXitoi joined #gcu.

Miiissioudaaam'

Archives:

Meta:

Hosted by:

NBS-System