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?
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.
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é.
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.
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.
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.
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.
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.
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.
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é.
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/*
/etc/fstab
/etc/mtab
) avoir une entrée correspondante dans /etc/fstab
/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 ...
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".
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.