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

[00:05:19] fo0 matin
<-- lolop left irc: Ping timeout: 255 seconds
<-- toony left irc: Quit: Terminated with extreme prejudice - dircproxy 1.0.5
--> Padawan- joined #gcu.
<-- TeXitoi left irc: Read error: Connection reset by peer
--> lolop joined #gcu.
[09:29:15] ArlequInOut matin lutinesque
[09:41:17] bsdsx matin jardin lutinesque
<-- ed left irc: Ping timeout: 240 seconds
--> ed joined #gcu.
--> Moufinure joined #gcu.

Miiissioudaaam'

Archives:

Meta:

Hosted by:

NBS-System