Forum Linux.général mémoire ram occupé

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
3
juin
2013

Bonjour à tous.
Voila j'ai un probleme avec un serveur vds qui rame tout le temps, et même avec une load average de 0.04.

En regardant avec top je vois que 3,5Go sur 3,8Go sont occupé hors les processus actif n'utilise que 3% de rame?
ps aux me dis la même que les processus n'utilise a peu près rien.

Free me dis:
total used free shared buffers cached
Mem: 3865560 3508924 356636 0 344788 2622668
-/+ buffers/cache: 541468 3324092
Swap: 2095096 0 2095096

et cat /proc/meminfo me dis:
MemTotal: 3865560 kB
MemFree: 356280 kB
Buffers: 344796 kB
Cached: 2621460 kB
SwapCached: 0 kB
Active: 1380212 kB
Inactive: 1790844 kB
Active(anon): 96936 kB
Inactive(anon): 110440 kB
Active(file): 1283276 kB
Inactive(file): 1680404 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 2095096 kB
SwapFree: 2095096 kB
Dirty: 1132 kB
Writeback: 0 kB
AnonPages: 204800 kB
Mapped: 14944 kB
Shmem: 2576 kB
Slab: 241164 kB
SReclaimable: 228124 kB
SUnreclaim: 13040 kB
KernelStack: 1712 kB
PageTables: 8696 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 4027876 kB
Committed_AS: 721668 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 20000 kB
VmallocChunk: 34359715588 kB
HardwareCorrupted: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 10240 kB
DirectMap2M: 3921920 kB

Quel qu'un pourrais me dire ou passe ma mémoire?
En cache?

  • # Mémoire ram occupée

    Posté par  . Évalué à 1.

    Quel qu'un pourrais me dire ou passe ma mémoire?
    En cache?

    Gagné.

    • [^] # Re: Mémoire ram occupée

      Posté par  . Évalué à 2. Dernière modification le 03 juin 2013 à 20:48.

      pas mieux, c'est marqué dessus

      Free me dis:
      total used free shared buffers cached
      Mem: 3865560 3508924 356636 0 344788 2622668
      -/+ buffers / cache: 541468 3324092
      Swap: 2095096 0 2095096

  • # 4Go de cache?

    Posté par  . Évalué à -1.

    Mais c'est enorme ?? 3G en cache?
    Comment c'est possible

    • [^] # Re: 4Go de cache?

      Posté par  . Évalué à 3.

      Pourquoi?
      Ton disque dur fait moins de 3Go?

      • [^] # Re: 4Go de cache?

        Posté par  . Évalué à 0. Dernière modification le 03 juin 2013 à 20:27.

        Euh pas compris?

        Mon probleme est:
        - un serveur qui rame
        - je recherche la source
        - la ram semble occupé par du cache à 90%

        Quel est le rapport avec le disque dur?

        • [^] # Re: 4Go de cache?

          Posté par  . Évalué à 3.

          Non, ta RAM est utilisée à 14% par les programmes et le système. Et comme il y a plein de RAM inutilisée, le noyau s'en sert comme cache disque, pour éviter de devoir lire plusieurs fois la même chose depuis le disque dur.

        • [^] # Re: 4Go de cache?

          Posté par  . Évalué à 3. Dernière modification le 03 juin 2013 à 20:39.

          Linux utilise toute la RAM libre pour mettre en cache ce qu'il lit sur le disque. Le rapport avec le disque dur (je pense) c'est qu'un disque qui ne contient que 3Go de donnée ne peux pas occuper plus de 3Go mis en cache.

          Si ça rame, c'est pas à cause de ça, dès que la RAM est nécessaire pour autre chose elle est libérée.

          Please do not feed the trolls

        • [^] # Re: 4Go de cache?

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

          Le rapport avec le disque dur est faible, je pense que c'était une blague pour dire que tu n'as pas tout ton disque dur qui tient dans la ram…

          Enfin bref, si t'as plein de cache c'est pas grave, ça veut dire que ça ram pas, c'est à un autre endroit qu'il faut chercher les lenteurs.

  • # regarde avec top, le % de wai

    Posté par  . Évalué à 3.

    ce sont les attentes d'entrées/sorties
    un disque dur qui pedale fera pedaler toute la machine,
    meme si tu as plein de ram disponible

    • [^] # Re: regarde avec top, le % de wai

      Posté par  . Évalué à 0.

      Voila le top

      top - 19:23:48 up 3 days,  8:22,  1 user,  load average: 0.09, 0.20, 0.19
      Tasks: 182 total,   1 running, 181 sleeping,   0 stopped,   0 zombie
      Cpu(s):  5.2%us,  2.3%sy,  0.0%ni, 92.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
      Mem:   3865560k total,  3508164k used,   357396k free,   344688k buffers
      Swap:  2095096k total,        0k used,  2095096k free,  2622632k cached
      
      

      Je sais plus ou chercher car je suis mpassé d'un
      mutu à vds1Go
      1Go ==> 2Go
      2Go ==> 4Go et 4 core
      Pour faire tourner un prestashop avec 7 boutique et 7 Wp ca me parais pas mal et malgré ca ca continue de ramer?
      Je comprend pas et ne sais plus ou chercher

      Les cache sont activé, quasi tout les module on été activé?

      • [^] # Re: regarde avec top, le % de wai

        Posté par  . Évalué à 3.

        ben il est bien ton top

        charge à 0.09,
        il passe 92.5% de son temps à "dormir"

        qu'est ce qui te fait dire que ca "rame" ?

  • # Identification

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

    Il faut que tu arrives à identifier plus finement la source du problème:
    - commence par essayer d'arrêter les processus qui ne servent à rien, à couper X (si il est présent), etc…, afin de voir si par hasard une des ces applications est la cause des problèmes
    - utilise "iotop" pour identifier les gros consommateurs d'I/O, qui sont des bons candidats aux ralentissements
    - d'ailleurs, dans la commande "top", regarde la valeur du "wait" time. C'est le temps que le kernel passe à attendre le hardware. Si il est excessif, c'est qu'il y a un problème de disque, de réseau, etc… Qu'ils soient physiques ou virtuels
    - utilise "strace" (perso, j'aime bien "strace -f -e open -p") afin d'identifier si un process s'amuse à beaucoup ouvrir/lire/écrire des fichiers. Récemment, sur un soft "métier", j'ai trouvé une application qui faisait 1200 ouvertures/fermetures par seconde d'un même fichier…
    - coté réseau, utilise "tcpdump/wireshark" pour voir si tu n'as pas des trafics réseaux inhabituels. Notamment, si par exemple tu as du mal à trouver un serveur DNS (UDP port 53), que tu as du trafic ipv6 "mal configuré", etc… Si une appli passe son temps à attendre des informations du réseau, cela peut expliquer les ralentissements.
    - pour ce qui est du fait que tu as une vds, regarde si ton hôte peut t'indiquer/comparer les consommations d'I/O entre les vds, voir si cette vds n'est pas moins prioritaire que les autres

    Quand à la mémoire vive:
    - Utilises en temps que root "sync ; echo 3 > /proc/sys/vm/drop_caches", ce qui va vider tous les caches (lecture/écriture) de la vds. Ainsi, en regardant l'évolution de "free", tu pourras voir si tu as des applis qui font beaucoup de lectures/écritures
    - enfin, tu as plus de 500Mo de cache en écriture ( -/+ buffers/cache: 541468 3324092). Cela fait beaucoup. Tu dois avoir un process qui écrit beaucoup, "iotop" devrait donc t'aider à dénicher le coupable.

    • [^] # Re: Identification

      Posté par  . Évalué à 0.

      Merci beaucoup,
      Je suis en train de décortiquer tout tes conseils

      Pour les processus y a pas grand chose sortit de http/mysql/smtp

      iotop.
      Je connaissais pas, et en lancant iotop j'ai découvert.
      Je vois bien le mysql qui lit et écris mais ca semble raissonable (il apparait (read 500K/s), reste `seconde, puis disparait 1s seconde etc..)

      Wait time dans le top je suis au alentour de 0.2%wa

      pour le strace il me dis:
      root@vds:~# strace -f -e open -p
      strace: option requires an argument—'p'

      Malheureusement le tcdump ne me dis pas grand chose..

      Coté mémoire vive.
      juste après "sync ; echo 3 > /proc/sys/vm/drop_caches" ma vive est déjà à 300Mo puis reste relativement Stable
      Pour le processus écrivant beaucoup je pense que c'est le mysql

      • [^] # Re: Identification

        Posté par  . Évalué à 1.

        VDS ?
        alors peut être que je me fourvoie, mais amha :

        ça veut dire que l'espace disque alloué est sur du stockage réseau ?
        des serveurs virtuels (dans le sens ressources virtualisées) j'ai eu à en administrer, et c'est une horreur côté entrées/sorties disques…

        • as-tu testé un hdparm -tT /dev/xxx ? pour voir les stats de vitesse de lecture/écriture sur le disque ?
        • j'ai une machine au taf qui a des soucis d'iostat, voilà ce qui m'a aidé à comprendre : http://bencane.com/2012/08/troubleshooting-high-io-wait-in-linux/
        • sais-tu combien de visiteurs par heure/jour vont sur ta machine/chaque site hébergé ?
        • as-tu fait du tuning d'optimisation mysql ? savoir quelles sont les tables/bdd les + interrogées ? (un outil : mysqltuner) les slow queries ? de l'innodb avec un fichier par table et non par base de données ?
        • n'y aurait-il pas des solution de caching inclus dans prestashop pour fournir le contenu qui bouge peu ?

        haaa les inconvénients du virtual hosting sur plateforme mutualisée…

        • [^] # Re: Identification

          Posté par  . Évalué à 0.

          Merci.

          voici le hdparm
          hdparm -tT /dev/sda1

          /dev/sda1:
          Timing cached reads: 9832 MB in 2.00 seconds = 4920.36 MB/sec
          Timing buffered disk reads: 258 MB in 3.12 seconds = 82.72 MB/sec

          Pour le traffic on est à : 8000/j pour l'ensemble, donc la charge visiteur n'est pas énorme

          Pour mysql non jh'ia pas fait d'optimisation mysql, mais les cache sont actié
          oui prestashop a un solution de cache activé comme les wordpress

          • [^] # Re: Identification

            Posté par  . Évalué à 1. Dernière modification le 04 juin 2013 à 08:28.

            Bon niveau disque c'est bon…

            Comment est-ce que tu voies que ton serveur rame tout le temps ?
            Le temps d'affichage d'une page ?

            C'est quelle distribution Linux ? et quelle version de noyau ?

            Là ça relève des compétences d'un admin sys et réseaux linux…

            Mise en place de monitoring, nettoyage et sécurisation

            En général on vérifie basiquement :
            - mises à jour de sécurité activées
            - services activés à quels utilisateurs
            - utilisateurs/comptes système par défaut inutilisés désactivés/supprimés
            - ports publiques ouverts
            - logs de chacun de ces services, et du auth.log, secure.log, messages.log, etc.
            pour voir si l'un de ces services ne subirait pas des attaques
            - sécurisation du ssh et désactivation du ftp suivant qui peut uploader sur le serveur
            - logs apache access et errors : un fichier par virtualhost
            C'est pas ton apache qui a du mal à fournir sinon ?

      • [^] # Re: Identification

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

        pour le strace il me dis:
        root@vds:~# strace -f -e open -p
        strace: option requires an argument—'p'

        man strace …
        le paramètre "-p" doit être suivit du numéro de process que l'on veut étudier. Tu retrouveras ce numéro de process avec la commande "ps -edf" (2nd colone)
        regarde aussi du coté du paramètre "-e", pour voir les filtres (ici, c'est "open"), que tu veux utiliser.

Suivre le flux des commentaires

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