-/+ buffers/cache, que représente le buffers ?

Yop,

Une petite question me trottine dans la tête depuis quelques jours à savoir ce que représente le buffers dans le ligne -/+ buffers/cache.
Le cache représente les applications mises en caches mais le buffers ?

18:23 cartman@serveur ~% free -m total used free shared buffers cached Mem: 1517 1435 81 0 62 564 -/+ buffers/cache: 808 708 Swap: 1427 0 1427
Si vous avez une idée sur la question. :wink:
Merci.

J’avais cherché il y a quelque temps et je n’avais trouvé que ça:
http://frederic.ple.name/dotclear/index.php/2006/11/07/372-comprendre-les-informations-de-la-commande-free-sous-linux

Merci, cependant il ne dit pas ce que représente “buffers”. :cry:

Je viens de trouver cela :

http://www.scit.wlv.ac.uk/~jphb/spos/notes/ufs.kbuff.html

Après j’ai regardé du côté de meminfo car free ne fait que lire les informations qui sont présentes dans /proc/meminfo mais rien de mieux. :frowning:

Alors, t’as trouvé quelque chose goldy?

Nop, je rame un peu je dois dire…

:laughing: .Pas mal…

Et bien si tu n’as toujours pas trouvé d’infos sur les données de /proc/meminfo demandes sur la duf, il y en a qui connaissent les profondeurs du noyau.

Buffers représente le cache des I/O.

éléments de réponse:

% ./t                                                                                       [0.56 0.72 - ]
             total       used       free     shared    buffers     cached
Mem:          2977        931       2046          0         10         86
-/+ buffers/cache:        834       2143
Swap:         3812       1179       2632
Alloue 1GB de mémoire...
             total       used       free     shared    buffers     cached
Mem:          2977       1960       1017          0         10         86
-/+ buffers/cache:       1863       1113
Swap:         3812       1179       2632
Libère la mémoire allouée...
             total       used       free     shared    buffers     cached
Mem:          2977        932       2045          0         10         86
-/+ buffers/cache:        835       2142
Swap:         3812       1179       2632
Ecrit un gros fichier de 1GB ... (long)
1024+0 enregistrements lus
1024+0 enregistrements écrits
1073741824 octets (1,1 GB) copiés, 24,9048 seconde, 43,1 MB/s
             total       used       free     shared    buffers     cached
Mem:          2977       1977       1000          0         10       1112
-/+ buffers/cache:        854       2123
Swap:         3812       1179       2632
Lit le fichier en question...
             total       used       free     shared    buffers     cached
Mem:          2977       1977       1000          0         10       1112
-/+ buffers/cache:        854       2123
Swap:         3812       1179       2632
Voila a quoi correspond free ;)
ed

Voici le code du programme qui a généré ça:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

void printfree()
{
    /* Affiche la sortie de free... */
    system("free -m");
    fflush(stdout);
}

int main(int argc, char **argv)
{
    unsigned char *p[1024];
    int i;
    FILE *f;

    printfree();


    printf("Alloue 1GB de mémoire...\n");
    /* p = malloc(1024); 1KB */
    for (i = 0; i < 1024; i++)
    {
        p[i] = malloc(1024*1024);
        memset(p[i], 1, 1024*1024); /* Force l'utilisation de la mémoire ;) */
    }
    
    printfree();

    printf("Libère la mémoire allouée...\n");
    for (i = 0; i < 1024; i++)
        free(p[i]);

    printfree();

    printf("Ecrit un gros fichier de 1GB ... (long)\n");
    system("dd if=/dev/zero of=grosfichier bs=1024k count=1024");

    printfree();

    printf("Lit le fichier en question...\n");
    system("cat grosfichier >/dev/null");

    printfree();

    printf("Voila a quoi correspond free ;)\ned\n");

    return 0;
}

Ha oué, ptite interprétation, buffers ne correspond pas dutout au cache du système de fichier hein :wink: