web-dev-qa-db-fra.com

À quelle fréquence devrais-je redémarrer les serveurs Linux?

J'ai de nombreux serveurs Linux (SUSE 9 & 10) utilisés pour exécuter des services Web qui fournissent des données aux grandes grilles de calcul. Récemment, nous avons eu des pannes difficiles à expliquer (c'est-à-dire des journaux matériels et logiciels ne montrent aucune erreur évidente) et nous commençons à nous demander si la longue disponibilité (généralement 200-300 jours) est la question. Étant donné que ces serveurs sont fortement utilisés, devrais-je envisager un cycle de redémarrage régulier?

30
John Channing

Vous devez redémarrer après une mise à jour du noyau (sauf si vous utilisez Ksplice), tout le reste est facultatif. Personnellement, je redémarre sur un cycle mensuel pendant une fenêtre de maintenance pour vous assurer que le serveur et tous les services sont revenus comme prévu. De cette façon, je peux être raisonnablement certain que je dois faire un redémarrage de l'annexe (c'est-à-dire une mise à jour du noyau critique) que le système reviendra correctement. La surveillance automatisée des serveurs et des services (c'est-à-dire Nagios) contribue également à ce processus (redémarrer, regarder les lumières aller rouge, puis espérons-le tout de retour en vert).

P.s. Si vous redémarrez régulièrement, vous voudrez vous assurer que vous ajustez vos chèques FSCK (c.-à-d. Compte de montage maximal entre les chèques de manière appropriée, sinon un redémarrage rapide de 2 minutes peut prendre 30 minutes si le serveur démarre FSCK 'en quelques téraoctets de données. je Généralement, réglez mon montage sur 0 (TUNE2FS -C 0) et l'intervalle entre les chèques à 6 mois, puis force manuellement un FSCK de temps en temps et réinitialiser le compte.

47
Kurt

En fait, je redémarre mes serveurs à une base assez régulière, à tout moment des changements de configuration majeurs sont effectués. Il est important de savoir que, dans le cas d'une urgence, le logiciel serveur viendra sans tracas. La dernière chose que vous voulez est d'être dans une position où vous essayez de récupérer d'une panne, mais que vous devez jouer avec votre configuration de serveur, car vous ne l'avez pas testé complètement lorsque vous l'avez configuré.

11
Kamil Kisiel

Les serveurs Linux n'ont jamais besoin d'être redémarrés que si vous Absolument besoin de changer la version du noyau en cours d'exécution. La plupart des problèmes peuvent être résolus en modifiant un fichier de configuration et en redémarrant un service avec un script init.

Vous devez faire attention aux redémarrages ... Si vous avez changé quelque chose "à la volée" sans réfléchir vos modifications dans le fichier de configuration d'un service, ces modifications ne seront pas appliquées après un redémarrage.

Je redémarre habituellement après des mises à jour du système programmées. Ce n'est généralement pas nécessaire, mais je les fais quand personne n'est au bureau, alors pourquoi pas? Il y a souvent des mises à niveau du noyau lorsque je vais faire la mise à jour, de toute façon.

6
Brad Beyenhof

Je pense que vous devriez redémarrer s'il y a eu une récente mise à jour du noyau OR une mise à jour libc. Beaucoup de choses sont liées à Libc et il n'est pas vraiment possible de décharger cette libère de la mémoire et de la remplacer avec la nouvelle version sauf si vous faites un redémarrage.

Par exemple, même des choses de base comme/bin/ls et d'autres choses dans/bin utilisent libc. Si vous utilisez simplement une console et utilisez Bash, vous utilisez libc.

$ ldd /bin/bash
        linux-gate.so.1 =>  (0xffffe000)
        libtermcap.so.2 => /lib/libtermcap.so.2 (0xb8029000)
        libdl.so.2 => /lib/libdl.so.2 (0xb8025000)
        libc.so.6 => /lib/libc.so.6 (0xb7ed9000)
        /lib/ld-linux.so.2 (0xb804b000)

$ ldd /bin/ls
        linux-gate.so.1 =>  (0xffffe000)
        librt.so.1 => /lib/librt.so.1 (0xb7f3a000)
        libacl.so.1 => /lib/libacl.so.1 (0xb7f33000)
        libc.so.6 => /lib/libc.so.6 (0xb7de7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7dd0000)
        /lib/ld-linux.so.2 (0xb7f61000)
        libattr.so.1 => /lib/libattr.so.1 (0xb7dcc000)

Et oui, si vous modifiez des fichiers dans /etc/init.d, qui affectent le démarrage d'une manière ou d'une autre, je recommanderais un redémarrage. Vous ne voulez pas savoir que vous avez commis une petite erreur dans un fichier de démarrage lorsque vous avez besoin de les choses rapidement et de courir rapidement.

Si un serveur est devenu plusieurs jours sans redémarrage, cela signifie réellement qu'il n'ya aucun moyen de ne pas être sûr que cela reviendra correctement. Encore une fois, cela est dû au fait que de nombreux fichiers de configuration auraient pu être modifiés dessus et que personne ne l'a redémarré depuis longtemps pour s'assurer qu'elle se présente. En outre, si le serveur a beaucoup de mises à jour en raison et que vous n'avez pas redémarré depuis longtemps, redémarrez avant Vous appliquez les mises à jour, sinon s'il y a un problème, vous ne pouvez pas en être sûr. a été causé par une erreur de configuration il y a longtemps ou les nouvelles mises à jour que vous avez appliquées.

Enfin, si vous redémarrez un serveur critique après une très longue période, le FSCK pourrait signifier que vous devez attendre très longtemps maintenant pour que cela puisse revenir. Vous pouvez utiliser Tune2fs pour éviter cela, mais c'est une bonne idée de le vérifier régulièrement, je suppose. C'est pourquoi vous ne devriez pas être dans une position où vous dépendez d'un seul serveur et si cela se passe, tout votre site Web est parti. Vous devriez en avoir un autre en attente.

4
afa

Pas vraiment nécessaire, la manutention de la mémoire Linux est excellente. Mais si vous avez des heures de pointe de cette longueur, vous courez probablement des noyaux qui ont connu des vulnérabilités - vous voudrez peut-être regarder cela.

4
pete

Ce n'est pas une mauvaise idée de redémarrer si cela a été aussi long, vous pouvez donc exécuter une vérification de disque (FSCK) sur la partition racine. Votre argument peut être que cela aide à assurer l'intégrité des données.

2
Kyle Brandt

Une autre chose à rechercher tout en ayant ce temps d'arrêt inattendu, est de regarder la manière dont la mémoire et le processeur sont utilisés et par quels programmes. top devrait être en mesure de déterminer quels processus sont le coupable pour la perte de ressources, puis être capable de les gérer directement. Une autre idée serait d'initialiser un cronjob à arrêter et à redémarrer vos processus sur un calendrier spécifique.

2
bobby

Un serveur Linux correctement doit avoir besoin de redémarrer pour les mises à jour des noyaux. La même chose ne peut pas toujours être dite pour certains logiciels - par exemple, je dois parfois redémarrer Apache2 ou Mailman.

1
Paul Tomblin

Mon infrastructure a deux sites de données, l'alpha (où les opérations ont lieu quotidiennement) et la version bêta (le site de sauvegarde, au cas où les choses se manifestent horriblement à Alpha). Bien que ce n'était pas actuellement le cas, je demande à avoir des temps d'arrêt planifiés sur le site alpha tous les 6 mois, afin que nous puissions exécuter tous les services de bêta.

Cela accomplira deux choses. Premièrement, cela prouvera que notre site de récupération après sinistre est totalement viable. Deuxièmement, cela me donnera une semaine de temps pour éliminer le crombeur accumulé à Alpha.

Comme c'est le cas, je ne redémarrez pas mes serveurs aussi souvent que je devrais. Je suis d'accord avec les autres affiches qui ont dit qu'il est important de savoir que vos serveurs reviendront lorsque vous en avez besoin. Vous ne voulez pas "penser" qu'ils le feront, seulement pour savoir que vous avez changé quelque chose et que vous ne l'avez pas fait correctement, ou pas le documenté.

0
Matt Simmons

Vous pouvez en outre écraser certains scripts qui vérifieront (autant que possible), si l'état actuel de votre machine sera l'état de la machine post-redémarrer.

Ce que je veux dire par c'est ...

  • /etc/init.d/*
    • Vérifiez que tous les services en cours d'exécution sont signalés pour commencer le démarrage
    • Vérifiez que tous les services qui ne fonctionnent pas sont signalés pour ne pas démarrer au démarrage
  • /etc/fstab
    • Vérifiez que tous les systèmes de fichiers montés (c'est-à-dire /etc/mtab) avoir une entrée correspondante dans /etc/fstab
    • Vérifiez que tous les systèmes de fichiers spécifiés à être montés sur le démarrage /etc/fstab sont également montés actuellement.

Ceci n'est évidemment pas une vérification complète d'un moyen, mais il réduit le risque de redémarrage des problèmes.

En plus de cela, vous devriez (IMO) définir une stratégie pour les mises à jour du package de serveur, dans un ordre sensible, par exemple 1 groupe par semaine ...

  • Serveurs Crash & Burn
  • Serveurs de développement, serveurs de formation
  • Serveurs de test
  • Serveurs de pré-production
  • Serveurs de production

Avoir également un plan global, tel que "Tous les serveurs passeront par une mise à niveau complète des systèmes d'exploitation une fois tous les 6 mois".

0
Xerxes

Dépend des tâches exécutées sur le serveur. Pour certains serveurs virtuels, nous utilisons souvent un redémarrage à la place de I.e. Apachectl Redémarrez et il suffit de 5 à 10 secondes de plus. Mais certaines machines chargées lourdes sont redémarrées plusieurs fois par an avec un ensemble d'équipage administrateur surveille le processus.

0
disserman