Pourquoi ne voudrais-je pas activer le swap?

J'ai récemment eu un problème où un process parasite a causé des instances ec2 à manquer de memory et de se bloquer. Il ne devrait probablement pas s'agir d'un problème, sauf que j'utilise t2.small instances qui sont assez limitées en memory et qu'elles manquent de memory avant que quelqu'un puisse répondre à nos alertes de surveillance.

Évidemment, il est préférable d'éviter d'utiliser le swap si possible, mais si j'avais permuté, mes instances auraient probablement séjourné en ligne même si elles avaient des performances dégradées.

Étant donné que l'espace du disque dur est habituellement abondant, cela semble être une bonne idée d'activer le swap, même si cela n'est requirejs que dans des circonstances exceptionnelles.

Par défaut, OpsWorks permet uniquement l'échange de micro instances, pas de petites instances. Pourquoi seraient-ils si conservateurs en permettant le swap, y at-il une raison pour laquelle je ne voudrais pas autoriser le swap si je n'en ai pas besoin pour un fonctionnement normal?

    3 Solutions collect form web for “Pourquoi ne voudrais-je pas activer le swap?”

    Je pense que la key est que vous devez savoir dans quelle memory votre process aura besoin. Si vous utilisez EC2, cela signifie que vous avez sélectionné une taille d'instance qui couvrira une certaine charge de travail; souvent j'ai vu que la charge de travail n'est qu'un process / service. Ajouter un tas de swap est bon marché, mais vous devez savoir quand / pourquoi il utilise ce swap. Trop souvent, je vois des réponses qui disent; "Ajoutez un échange dans le cas où certains process inactifs alimentent un peu de RAM", cela a du sens pour le bureau, mais sur votre instance EC2, vous devez connaître les caractéristiques de fonctionnement de votre (vos) process, c'est particulièrement le cas lorsque vous ' en développant une application – savez comment elle s'exécute généralement en désactivant le swap pendant le développement, puis ajoutez le swap et augmentez le swappiness à une valeur élevée (90+) en cours de production.

    Une autre façon de l'examiner est que dans un environnement de server et surtout dans le nuage où vous pouvez adapter votre instance à votre charge de travail, êtes-vous vraiment intéressé par votre échange de process? Est-ce OK pour la performance? Vous ne serez pas un campeur heureux lorsque vous recevrez une machine RAM de 2 Go, une taille trop petite, qui exécute un process nécessitant 3 Go pour exécuter des échanges continus de pages sur le disque.

    Avez-vous manqué de memory physique ou avez-vous manqué de magasin de soutien? Si ce dernier, le swap aurait permis à votre système de continuer à fonctionner normalement, même si aucune donnée ne lui était écrite!

    "[Je suis là une raison pour laquelle je ne voudrais peut-être pas permuter si je n'en ai pas besoin pour un fonctionnement normal?"

    Oui. L'échange de disponibilité est nécessaire pour que le operating system puisse utiliser efficacement la RAM physique.

    Par exemple, supposons qu'un process crée un mappage privé et inscriptible d'un file de 256 Mo. S'il n'y a pas de swap, le operating system doit réserver 256 Mo de RAM physique pour ce mappage, même si aucune de ces RAM n'est jamais nécessaire car le mappage n'est jamais modifié au cas où le process décide de modifier chaque octet de ce mappage.

    Essentiellement, sans échange, chaque page inscriptible propre, non protégée par un file, signifie une page de RAM physique qui ne peut pas contenir des données modifiées, même si ces pages restnt mises à jour pendant toute leur durée de vie.

    Vous avez vraiment envie de swap disponible même si vous n'en avez pas besoin.

    YMMV, mais pour des charges de travail interactives, mon expérience a été que, si vous commencez à utiliser le file de la page, la performance globale du système est interrompue de toute façon, et cela est généralement causé par un process de fuite, alors je préfèrerais que le crash de ce programme (sans memory) que de tuer les performances de tous mes autres programmes. Donc, j'ai configuré ma machine familial partagée sans file de page et beaucoup de RAM supplémentaire. Les plaintes de ma femme concernant les mauvaises performances ont diminué de façon significative. Lorsque j'ai ajouté un SSD au mix l'année dernière, les choses se sont encore améliorées.

    Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.