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 (courriel, 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.