Forum Linux.noyau Cache limité à 6G

Posté par  (site web personnel) .
Étiquettes : aucune
-1
29
nov.
2012

Bonjour

J'ai 12G de RAM et impossible de passer au dessus de 6G de cache.
voici la sortie de free -m :

             total       used       free     shared    buffers     cached
Mem:         12043      11017       1025          0        218       6501
-/+ buffers/cache:       4297       7745
Swap:        61034         10      61024

Auriez vous une idée ?

  • # Il est ou ton swap ?

    Posté par  . Évalué à -10.

    Car je suppose que par "cache" tu parle de la partition utilisé pour swapper les pages mémoire quand il n'y en as plus de disponible ?
    Si tu ne peut aller au delà de 6G c'est peut être parce que la taille de la partition ne peut pas augmenter.
    Ou que le swap est orienté vers la RAM parce que ton disque est un ssd ?
    peut tu poster le résultat des commandes suivante
    "mount"
    "df -h"

    • [^] # Re: Il est ou ton swap ?

      Posté par  (site web personnel) . Évalué à 2.

      Il apparaït sur la commande free.

      [juke:~/gitkilli/killi] (no branch) ± mount && df -h
      rootfs on / type rootfs (rw)
      sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
      proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
      udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=1539977,mode=755)
      devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
      tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=1233216k,mode=755)
      /dev/disk/by-uuid/b02d4378-b5c7-42b6-b377-d35f11dd18a2 on / type ext4 (rw,relatime,errors=remount-ro,user_xattr,acl,barrier=1,data=ordered)
      tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
      tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=14966380k)
      /dev/md0 on /boot type ext4 (rw,relatime,user_xattr,acl,barrier=1,data=ordered)
      fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
      Sys. de fichiers    Taille  Uti. Disp. Uti% Monté sur
      rootfs                435G   86G  327G  21% /
      udev                   10M  220K  9,8M   3% /dev
      tmpfs                 1,2G  104K  1,2G   1% /run
      /dev/disk/by-uuid/b02d4378-b5c7-42b6-b377-d35f11dd18a2
                            435G   86G  327G  21% /
      tmpfs                 5,0M     0  5,0M   0% /run/lock
      tmpfs                  15G     0   15G   0% /run/shm
      /dev/md0              950M  107M  796M  12% /boot
      
      
  • # Que mettre en cache ?

    Posté par  (site web personnel) . Évalué à -2.

    Quel genre de données souhaiteriez-vous voir mises en cache ?
    Il me semble qu'au maximum l'on doit s'attendre à voir toutes les librairies du système en mémoire cache. Vos codes sont-ils si gros que vous vous attendez à les voir consommer plus de 6GiO ?

    Sinon le noyau dispose d'un paramètre pour augmenter ou réduire sa propension à mettre des données en cache.
    echo 100 > /proc/sys/vm/swappiness
    Par défaut, ce doit être 60. En mettant 100 il devrait essayer de garder absolument tout et vous pourriez peut-être voir augmenter la quantité de cache employée.

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Que mettre en cache ?

      Posté par  (site web personnel, Mastodon) . Évalué à -1.

      Et puis quel intérêt aussi de mettre plus de 6Go en cache ? Si toute la ram devient du cache, alors il n'y a plus de cache à proprement parler (ou j'ai rien compris et je dis une grosse connerie ?)

      • [^] # Re: Que mettre en cache ?

        Posté par  (site web personnel) . Évalué à 5.

        Oui, crois-je. L'intérêt de mettre en cache, c'est qu'au lieu d'aller recharger la fonction bidule de la libmachin sur le disque, le noyau aura déjà la fonction en mémoire pour le prochain programme qui voudra appeler cette fonction.

        « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Que mettre en cache ?

      Posté par  . Évalué à 2.

      Moinssez moi si je me trompe mais swappiness c'est pour régler la propension à utiliser la partition de swap.
      Donc en gros passez à 100 va avoir pour effet de swapper systématiquement et 0 va plutôt tout garder en RAM et n'utiliser le swap que quand la RAM sera pleine.

      • [^] # Re: Que mettre en cache ?

        Posté par  (site web personnel) . Évalué à 3. Dernière modification le 29 novembre 2012 à 21:27.

        Partiellement juste si je ne m'abuse.
        Le noyau ne voudra jamais swapper et se débarrassera des données en cache si elles excède trop de mémoire est utilisé et que swapiness est à zéro. Si swapiness est à 100, il ira systématiquement les écrire sur disque.
        D'où ma suggestion (peut-être un peu osée) : j'imagine qu'en mettant swapiness à 100, le noyau ne se débarrasse plus que très rarement de son cache et il l'écrira sur le disque plutôt que de le vider. Du coup, la mémoire sera remplie « au maximum » avec du cache. Ce qu'à l'air de souhaiter la personne ayant posée la question.

        « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

  • # Similaire avec 4 Go de RAM sans swap...

    Posté par  . Évalué à 1. Dernière modification le 30 novembre 2012 à 21:15.

    A peu près la moitié de la RAM utilisé pour le cache :

    $free
                 total       used       free     shared    buffers     cached
    Mem:       4053248    3310172     743076          0     133032    1837416
    -/+ buffers/cache:    1339724    2713524
    Swap:            0          0          0
    
    

    "Quand certains râlent contre systemd, d'autres s'attaquent aux vrais problèmes." (merci Sinma !)

    • [^] # Re: Similaire avec 4 Go de RAM sans swap...

      Posté par  . Évalué à 4.

      Le noyau n'a aucune raison de limiter la quantité de RAM utilisée pour le cache s'il à de la mémoire libre. lit un peu le contenu de ton disque dur que tu ne lit jamais et regarde comment ton cache augmente.

      Un cas ou la quantité de RAM libre est élevé et le cache faible, c'est lorsqu'une application à consommé de la RAM (et à du empiéter sur le cache) puis à libéré cette mémoire (par exemple en quittant). C'est parfaitement normal, et il n'y a pas de quoi s'inquiéter.

  • # il est inutile d'avoir plus de 2Go de swap par disque physique

    Posté par  . Évalué à -3.

    il est inutile d'avoir plus de 2Go de swap par disque physique sauf dans de très très très très rares cas …. genre 0.00000…..000000000000000000001% des cas

    normalement il devrait même pas être possible de le faire.

    par contre si tu as un très grand nombre prévisionnel d'accès disques, le mieux est d'avoir des partitions raid0hard sur au moins deux disques et de mettre genre 1G de swap sur chacun

    exemple typique d'un serveur de fichier/application très solicité
    4 proc bi-cores
    16 Go de ram
    3 grappes raid 0+1
    2 disque ultra-rapide petite taille 4*2Go de swap (flash disk)
    3 grappes raid 5
    2 disques systèmes

  • # ici c'est pas si haut

    Posté par  . Évalué à 0.

     ~$ free -m
                 total       used       free     shared    buffers     cached
    Mem:          1994       1834        160          0         32        627
    -/+ buffers/cache:       1174        820
    Swap:         3904         42       3862
    
    

    avec un swappiness de 60

    ~$ cat /proc/sys/vm/swappiness
    60

  • # /proc/sys/vm/

    Posté par  (site web personnel) . Évalué à 4.

    Va lire /usr/src/linux/Documentation/sysctl/vm.txt
    Après, en examinant la valeur de chacun de ces sysctl, la raison devrait devenir évidente.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.