Lorsque les demandes d'un programme en cours d'exécution l'amènent à demander des ressources excessives à votre serveur, vous pouvez rencontrer des performances médiocres et une instabilité du système.
Temps de disponibilité
Vérifiez la charge sur votre serveur en utilisant le uptime
commande.
$ uptime
15:16:45 up 41 days, 2:35, 2 users, load average: 0.01, 3.01, 2.70
L'exemple montre la sortie de uptime
. Lorsque la commande a été exécutée à 15:16:45, le serveur était opérationnel depuis 41 days 2 hours and 35 minutes
, il y avait deux utilisateurs connectés et les charges moyennes étaient de 0.01
, 3.01
, et2.70
.
La charge moyenne est le travail effectué par le système. Les trois nombres indiquent les moyennes de charge pour la dernière minute, 5 minutes et 15 minutes respectivement. Une charge moyenne de 1
reflète la charge de travail complète d'un seul processeur sur le système. Une charge de 2
sur un système avec deux processeurs signifie que ces processeurs fonctionnaient au maximum. Sur un système avec quatre processeurs, ce 2
reflète une charge de travail utilisant environ la moitié de la puissance de traitement disponible.
Dans des circonstances normales, vous souhaitez que la charge moyenne soit inférieure ou égale à 70 % de votre utilisation totale du processeur. Vous pouvez vérifier le nombre de CPU disponibles pour votre instance en exécutant la commande suivante :
$ grep processor /proc/cpuinfo | wc -l
Si les moyennes de charge montrent que la charge augmente et est supérieure au nombre de processeurs, vous devez rechercher la cause. Une charge supérieure au nombre de processeurs signifie que le système met en file d'attente les requêtes du processeur, ce qui réduit les performances.
haut
Le top
La commande affiche des informations en temps réel concernant l'utilisation des ressources du serveur. Les premières lignes fournissent un résumé de l'utilisation des ressources sur votre système. Vous pouvez trier la liste des processus par CPU (P
) ou l'utilisation de la mémoire (M
), ce qui vous permet de voir rapidement les demandes les plus importantes sur les ressources de votre serveur.
gratuit
Le free
La commande affiche des informations sur l'utilisation de la mémoire du serveur. Les premières lignes fournissent un résumé de l'utilisation de la mémoire sur votre système.
Le gratuit La colonne affiche la quantité de mémoire libre, qui est généralement minime car la mémoire inutilisée est une ressource gaspillée. Le disponible l'affichage des colonnes indique la quantité de mémoire disponible à allouer aux processus existants ou nouveaux.
vmstat
La quantité de mémoire système est l'un des facteurs de restriction les plus courants. Le swap est une zone du disque dur où les données sont déplacées pour libérer de la mémoire physique (RAM) pour un processus à utiliser (tous les serveurs n'ont pas d'espace d'échange configuré). Si votre système consomme la majeure partie de sa zone d'échange, cela peut signifier que le serveur est essayer de faire plus que sa mémoire disponible ne le permet pas qu'il manque de mémoire.
Si vous avez configuré l'espace d'échange et que vous pensez que votre serveur manque de mémoire standard, vous pouvez utiliser vmstat
pour montrer combien d'échanges se produisent.
L'exemple suivant affiche les statistiques de mémoire virtuelle d'un système 10 fois à 5 secondes d'intervalle.
$ vmstat 5 10
procs -----------memory------------- ---swap---- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 3 138096 3904 140 584 14829 33632 16684 33633 1353 11562 64 9 16 11 0
7 4 156592 3800 132 492 53570 48618 54264 48622 2762 8148 20 5 50 24 0
2 7 258552 3040 128 668 37910 39822 39766 39826 2763 10861 43 8 23 26 0
7 4 261608 4312 116 776 41696 30854 42171 30855 2771 8631 26 6 33 35 0
3 4 259316 3824 112 576 44616 32316 44697 32320 2746 7087 15 4 52 28 0
0 5 257000 3376 116 880 25895 19847 26622 19848 1673 2877 1 2 68 29 0
4 4 263240 3384 124 1424 30018 21066 30497 21070 1732 4559 9 3 64 24 0
2 14 264656 5740 120 1812 27685 19030 28029 19031 2194 5345 11 3 51 35 0
6 3 338044 3764 132 1568 20087 31066 20470 31070 1798 9847 46 6 33 14 0
2 4 325904 4048 108 1172 13251 7190 13812 7190 1193 8838 38 5 24 32 0
Dans l'exemple, le gratuit indique que la quantité de mémoire libre n'est que d'environ 4 Mo.
Le si et ainsi Les colonnes montrent la quantité de données transférées entre le swap du système et sa mémoire. Dans cet exemple, vous pouvez voir que de nombreuses données sont déplacées. donc montre la quantité de données déplacées vers le swap pour libérer de la mémoire. si montre la quantité de données extraites du swap vers la mémoire. Cela se produit lorsqu'un processus a besoin des données pour s'exécuter.
Lorsqu'un serveur entre et sort constamment de la mémoire, cela indique que la charge sur celui-ci est trop importante pour les ressources disponibles. Utilisez le top
commande pour identifier les processus qui consomment le plus de ressources.
Résumé
Si top
et vmstat
indiquent que le serveur utilise toutes ses ressources, vous devez optimiser votre configuration actuelle. Par exemple, vous pouvez exécuter certaines tâches de traitement en dehors des heures de pointe, supprimer tous les processus inutiles et reconfigurer d'autres processus afin qu'ils utilisent moins de ressources. Vous pouvez également envisager d'augmenter la taille de votre serveur pour mieux répondre à vos besoins.
Si votre application s'exécute et semble saine, vérifiez qu'elle écoute les connexions réseau. Vérifiez si le service écoute sur le bon socket en utilisant le netstat
commande. Consultez Vérification des ports d'écoute avec netstat pour plus d'informations.