Maison  >  Article  >  Tutoriel système  >  Réglage des performances Linux ~

Réglage des performances Linux ~

WBOY
WBOYavant
2024-02-12 15:30:04570parcourir

Réglage des performances Linux ~

Le système d'exploitation Linux est un produit open source, et c'est également une plateforme de pratique et d'application pour les logiciels open source. Sous cette plateforme, il existe d'innombrables supports de logiciels open source, tels qu'apache, tomcat, mysql, php, etc. Le concept le plus important des logiciels open source est la liberté et l’ouverture. Par conséquent, en tant que plate-forme open source, l'objectif de Linux est d'obtenir des performances applicatives optimales au moindre coût grâce à la prise en charge de ces logiciels open source. En ce qui concerne les problèmes de performances, ce qui est principalement obtenu est la meilleure combinaison du système d'exploitation Linux et des applications.

1. Aperçu des problèmes de performances

Les performances du système font référence à l'efficacité, à la stabilité et à la vitesse de réponse du système d'exploitation dans l'exécution des tâches. Les administrateurs système Linux peuvent souvent rencontrer des problèmes tels qu'une instabilité du système et une vitesse de réponse lente. Par exemple, lors de la création d'un service Web sous Linux, les pages Web ne peuvent souvent pas être ouvertes et la vitesse d'ouverture est lente. Lorsqu'elles rencontrent ces problèmes, certaines personnes se plaignent de cela. le système Linux n'est pas bon, il est en fait superficiel. Lorsque le système d'exploitation termine une tâche, elle est étroitement liée aux paramètres du système, à la topologie du réseau, à l'équipement de routage, aux politiques de routage, à l'équipement d'accès, aux lignes physiques et à d'autres aspects. Les problèmes dans n'importe quelle liaison affecteront les performances de l'ensemble du système. Par conséquent, lorsqu'un problème survient dans une application Linux, une enquête approfondie doit être menée à partir du programme d'application, du système d'exploitation, du matériel du serveur, de l'environnement réseau, etc., pour localiser la partie où le problème se produit, puis le résoudre de manière centralisée.

En termes d'applications, de systèmes d'exploitation, de matériel serveur, d'environnement réseau, etc., les deux aspects qui ont le plus grand impact sur les performances sont les applications et les systèmes d'exploitation, car les problèmes dans ces deux aspects sont difficiles à détecter et sont hautement dissimulés. Tant qu'il y a un problème avec le matériel ou le réseau, il peut généralement être localisé immédiatement. Ce qui suit explique principalement les idées d'optimisation des performances du système d'exploitation. Les problèmes spécifiques de l'application doivent être traités en détail.

Ce qui suit présente les idées générales et les méthodes d'optimisation de Linux sous quatre aspects : les facteurs affectant les performances de Linux, les personnes impliquées dans l'analyse des performances, les outils d'optimisation des performances du système et les normes d'évaluation des performances du système.

2. Facteurs affectant les performances de Linux

Ressources matérielles du système 2.1

1. Processeur

Le processeur est la base du fonctionnement stable du système d'exploitation. La vitesse et les performances du processeur déterminent dans une large mesure les performances globales du système. Par conséquent, plus il y a de processeurs et plus la fréquence principale est élevée, meilleures sont les performances du serveur. sera. Mais ce n'est pas tout à fait vrai.

Actuellement, la plupart des processeurs ne peuvent exécuter qu'un seul thread en même temps. Les processeurs hyper-thread peuvent exécuter plusieurs threads en même temps. Par conséquent, la fonction hyper-threading du processeur peut être utilisée pour améliorer les performances du système. Sous les systèmes Linux, l'Hyper-Threading n'est pris en charge que lors de l'exécution de noyaux SMP, mais plus vous avez installé de processeurs, moins vous obtiendrez de performances grâce à l'Hyper-Threading. De plus, le noyau Linux reconnaîtra les processeurs multicœurs comme plusieurs processeurs distincts. Par exemple, deux processeurs à 4 cœurs seront considérés comme 8 processeurs monocœur sous le système Lnux. Cependant, du point de vue des performances, deux processeurs à 4 cœurs et 8 processeurs à un seul cœur ne sont pas complètement équivalents. Selon les conclusions des tests tirés par des départements faisant autorité, les performances globales du premier sont de 25 à 30 % inférieures à celles du second.

Les applications susceptibles de rencontrer des goulots d'étranglement du processeur incluent les serveurs de base de données, les serveurs Web dynamiques, etc. Pour de telles applications, la configuration et les performances du processeur doivent être prioritaires.

2. Mémoire

La taille de la mémoire est également un facteur important affectant les performances de Linux. Si la mémoire est trop petite, les processus système seront bloqués et les applications deviendront lentes, voire ne répondront plus ; si la mémoire est trop grande, les ressources seront gaspillées. Le système Linux utilise deux méthodes : la mémoire physique et la mémoire virtuelle. Bien que la mémoire virtuelle puisse atténuer le manque de mémoire physique, si elle occupe trop de mémoire virtuelle, les performances de l'application seront considérablement réduites pour garantir un fonctionnement performant. de l'application, mémoire physique Elle doit être suffisamment grande ; mais une mémoire physique trop grande entraînera un gaspillage de ressources mémoire. Par exemple, sur un système d'exploitation Linux avec un processeur 32 bits, toute mémoire physique dépassant 8 Go sera gaspillée. Par conséquent, pour utiliser une mémoire plus grande, il est recommandé d'installer un système d'exploitation 64 bits et d'activer la prise en charge du noyau à grande mémoire de Linux.

En raison de la limitation de la plage d'adressage du processeur, sur un système d'exploitation Linux 32 bits, un seul processus d'application ne peut utiliser qu'un maximum de 4 Go de mémoire. De cette façon, même si le système dispose d'une mémoire plus grande, l'application ne peut pas ". profitez-en. La solution consiste à utiliser un processeur 64 bits et à installer un système d'exploitation 64 bits. Sous un système d'exploitation 64 bits, les besoins d'utilisation de la mémoire de toutes les applications peuvent être satisfaits presque sans restrictions.

Les applications susceptibles de rencontrer des goulots d'étranglement en termes de performances de mémoire incluent les serveurs NOSQL, les serveurs de base de données, les serveurs de cache, etc. Pour de telles applications, la taille de la mémoire doit être prioritaire.

3. Performances d'E/S disque

Les performances des E/S disque affectent directement les performances de l'application. Dans une application avec des lectures et des écritures fréquentes, si les performances des E/S disque ne sont pas respectées, l'application stagnera. Heureusement, les disques actuels utilisent de nombreuses méthodes pour améliorer les performances d'E/S, telles que la technologie RAID de disque courante.
Un groupe de disques formé par la technologie RAID est équivalent à un grand disque dur. Les utilisateurs peuvent y effectuer des opérations telles que le formatage de partition et la création de systèmes de fichiers. La seule différence réside dans les E/S. Le rapport de performances du groupe de disques RAID avec un seul disque dur est beaucoup plus élevé et la sécurité des données est également grandement améliorée.

Selon différentes méthodes de combinaison de disques, le RAID peut être divisé en RAID0, RAID1, RAID2, RAID3, RAID4, RAID5, RAID6, RAID7, RAID0+1, RAID10 et d'autres niveaux RAID couramment utilisés sont RAID0, RAID1, RAID5, RAID0. +1. , voici une brève introduction.

«

RAID 0 : améliore les performances et le débit du disque en regroupant plusieurs disques durs dans un groupe de disques durs de plus grande capacité. Cette méthode est peu coûteuse et nécessite au moins deux disques, mais elle n'a pas de fonctions de tolérance aux pannes et de récupération de données, elle ne peut donc être utilisée que dans des environnements qui ne nécessitent pas une sécurité élevée des données.
RAID 1 : c'est-à-dire la mise en miroir des disques. En mettant en miroir les données d'un disque sur un autre disque, il maximise la fiabilité et la réparabilité des données du disque. Il a une capacité de redondance des données élevée, mais l'efficacité du disque n'est que de 50 %. par conséquent, le coût est le plus élevé et il est principalement utilisé dans les situations où des données importantes sont sauvegardées.
RAID5 : Il utilise la technologie de segmentation de disque et de contrôle de parité pour améliorer la fiabilité du système. RAID5 a une efficacité de lecture élevée et une efficacité d'écriture moyenne, nécessitant au moins 3 disques. Permet à un disque de tomber en panne sans affecter la disponibilité des données.
RAID0+1 : La combinaison des technologies RAID0 et RAID1 devient RAID0+1, qui nécessite au moins 4 disques durs. En plus des données de cette méthode distribuées sur plusieurs disques, chaque disque possède son propre disque miroir, offrant une redondance complète, permettant une panne de disque sans affecter la disponibilité des données, et dispose de capacités de lecture/écriture rapides.

En comprenant les performances de chaque niveau RAID, vous pouvez choisir le niveau RAID qui vous convient en fonction des différentes caractéristiques de l'application, garantissant ainsi que l'application atteint des performances de disque optimales.

4. Internet haut débit

Diverses applications sous Linux sont généralement basées sur le réseau, donc la bande passante du réseau est également un facteur important affectant les performances. Un réseau à faible vitesse et instable entraînera le blocage de l'accès aux applications réseau, tandis qu'une bande passante réseau stable et à haut débit le fera. garantit le bon fonctionnement des applications sur le réseau. Heureusement, les réseaux actuels sont généralement des réseaux à bande passante gigabit ou à fibre optique, et l'impact des problèmes de bande passante sur les performances des applications diminue progressivement.

2.2 Ressources liées au système d'exploitation

L'optimisation des performances basée sur le système d'exploitation a également de multiples facettes et peut être mesurée sous plusieurs aspects tels que l'installation du système, les paramètres du noyau système, les paramètres réseau, le système de fichiers, etc., qui sont brièvement présentés ci-dessous.

1. Optimisation de l'installation du système

L'optimisation du système peut commencer dès l'installation du système d'exploitation. Lors de l'installation d'un système Linux, le partitionnement du disque et l'allocation de mémoire SWAP affecteront directement les performances de fonctionnement futures du système. Par exemple, l'allocation de disque peut suivre les besoins de l'application :

  • Pour les applications qui nécessitent des opérations d'écriture fréquentes mais de faibles exigences en matière de sécurité des données, le disque peut être transformé en RAID 0
  •  ;
  • Pour les applications avec une sécurité élevée des données et sans exigences particulières en matière de lecture et d'écriture, le disque peut être transformé en RAID 1 ;
  • Pour les applications qui ont des exigences élevées en matière d'opérations de lecture mais aucune exigence particulière en matière d'opérations d'écriture et qui souhaitent garantir la sécurité des données, vous pouvez choisir RAID 5 ; Pour les applications qui ont des exigences élevées en matière de lecture et d'écriture et des exigences élevées en matière de sécurité des données, vous pouvez choisir RAID10/01.
  • De cette façon, différents niveaux RAID sont définis en fonction des différentes exigences des applications et le système est optimisé au bas du disque.

Avec la baisse des prix de la mémoire et l'augmentation de la capacité de mémoire, le paramétrage de la mémoire virtuelle SWAP ne nécessite plus que la mémoire dite virtuelle soit deux fois supérieure à la mémoire physique. Cependant, le paramétrage de SWAP ne peut être ignoré :

.
  • Si la mémoire est petite (la mémoire physique est inférieure à 4 Go), définissez généralement la taille de la partition d'échange SWAP à 2 fois la mémoire ; Si la mémoire physique est supérieure à 8 Go et inférieure à 16 Go, vous pouvez définir la taille du SWAP pour qu'elle soit égale ou légèrement inférieure à la mémoire physique
  •  ; Si la taille de la mémoire est supérieure à 16 Go, vous pouvez en principe définir SWAP sur 0, mais cela n'est pas recommandé car la définition d'une certaine taille de SWAP a toujours un certain effet.
  • 2. Optimisation des paramètres du noyau

Une fois l'installation du système terminée, le travail d'optimisation n'est pas terminé. Ensuite, les paramètres du noyau du système peuvent être optimisés. Cependant, l'optimisation des paramètres du noyau doit être considérée en conjonction avec les applications déployées dans le système.

Par exemple, si le système déploie une application de base de données Oracle, vous devez alors configurer le segment de mémoire partagée du système (kernel.shmmax, kernel.shmmni, kernel.shmall), le sémaphore système (kernel.sem) et le descripteur de fichier (fs .file- max) et d'autres paramètres ; si vous déployez une application Web, vous devez optimiser les paramètres réseau en fonction des caractéristiques de l'application Web, par exemple en modifiant les noyaux réseau tels que net.ipv4.ip_local_port_range, net.ipv4.tcp_tw_reuse. , paramètre net.core.somaxconn, etc.

3. Optimisation du système de fichiers

L'optimisation du système de fichiers est également au centre de l'optimisation des ressources système. Les systèmes de fichiers facultatifs sous Linux incluent ext2, ext3, ReiserFS, ext4 et xfs. Choisissez différents systèmes de fichiers en fonction des différentes applications.

Le système de fichiers standard Linux démarre à partir de VFS, puis ext, puis ext2. Il faut dire que ext2 est le système de fichiers standard sous Linux, ext3 est formé en ajoutant des journaux sur la base de ext2, de VFS à ext4, l'idée de conception est là. Il n'y a pas beaucoup de changements, ils sont tous basés sur les concepts de conception de la première famille UNIX basés sur des super blocs et des inodes.

Le système de fichiers XFS est un système de fichiers journaux avancé. XFS offre un accès à faible latence et à bande passante élevée aux données du système de fichiers en distribuant les requêtes de disque, en localisant les données et en maintenant la cohérence du cache. Par conséquent, XFS est extrêmement évolutif et très robuste. d'excellentes capacités de journalisation, une forte évolutivité et des performances d'écriture rapides.

Actuellement, ext4 et xfs côté serveur sont les systèmes de fichiers courants. Le choix d'un système de fichiers approprié doit être déterminé en fonction des caractéristiques du système de fichiers et des besoins de l'entreprise.

2.3, ressources logicielles d'application

L'optimisation de l'application est en fait au cœur de l'ensemble du projet d'optimisation. Si une application présente un BUG, ​​​​même si tous les autres aspects ont atteint l'état optimal, les performances de l'ensemble du système d'application seront toujours faibles. l'optimisation de l'application est un processus d'optimisation des performances qui constitue la priorité absolue, ce qui impose des exigences plus élevées aux architectes et aux développeurs de programmes.

3. Personnel impliqué dans l'analyse des performances du système

3.1, Personnel d'exploitation et de maintenance Linux

Dans le processus d'optimisation des performances, le personnel d'exploitation et de maintenance de Linux assume des tâches très importantes.

Tout d'abord, le personnel d'exploitation et de maintenance de Linux doit comprendre et maîtriser l'état de fonctionnement actuel du système d'exploitation, tel que la charge du système, l'état de la mémoire, l'état des processus, la charge du processeur et d'autres informations. Ces informations constituent la base de la détection et du jugement. performances du système ;
  • Deuxièmement, le personnel d'exploitation et de maintenance de Linux doit également maîtriser les informations matérielles du système, telles que les E/S du disque, le modèle de processeur, la taille de la mémoire, la bande passante de la carte réseau et d'autres informations sur les paramètres, puis évaluer de manière exhaustive l'utilisation des ressources système en fonction de ces informations;
  • Troisièmement, en tant que personnel d'exploitation et de maintenance Linux, vous devez également comprendre l'utilisation des ressources système par les applications. Un point plus approfondi consiste à comprendre l'efficacité de fonctionnement des applications, par exemple s'il y a des bogues de programme, des débordements de mémoire et d'autres problèmes. En analysant le système En surveillant les ressources, vous pouvez découvrir s'il y a des anomalies dans l'application. S'il y a effectivement un problème avec l'application, le problème doit être immédiatement signalé au développeur du programme afin que le programme puisse être amélioré ou mis à niveau. .
  • L'optimisation des performances en elle-même est un processus complexe et fastidieux. Ce n'est qu'en comprenant les informations sur le matériel du système, les informations sur le réseau, les informations sur la configuration du système d'exploitation et les informations sur les applications que le personnel d'exploitation et de maintenance de Linux peut effectuer une optimisation ciblée des performances du serveur. le personnel possède des connaissances théoriques suffisantes, une riche expérience pratique et l'esprit nécessaire pour analyser soigneusement les problèmes.

3.2. Concepteur d'architecture système

Le deuxième type de personnel impliqué dans l'optimisation des performances du système est l'architecte d'application. Si le personnel d'exploitation et de maintenance de Linux, après un jugement approfondi, constate que les performances sont affectées par l'efficacité d'exécution de l'application, alors le concepteur de l'architecture du programme doit intervenir en temps opportun pour acquérir une compréhension approfondie de l'état d'exécution du programme.

  • Tout d'abord, les concepteurs d'architecture système doivent suivre et comprendre l'efficacité d'exécution du programme. S'il y a un problème avec l'efficacité d'exécution, ils doivent découvrir où se situe le problème ; Deuxièmement, s'il y a vraiment un problème avec la conception de l'architecture, alors l'architecture du système doit être optimisée ou améliorée immédiatement et une meilleure architecture du système d'application doit être conçue.
3.3, Développeur de logiciels

La dernière étape de l'optimisation des performances du système implique les développeurs de programmes. Une fois que le personnel d'exploitation et de maintenance de Linux ou les concepteurs d'architecture ont découvert des goulots d'étranglement dans le programme ou la structure, les développeurs de programmes doivent immédiatement intervenir pour apporter les modifications correspondantes au programme. Lors de la modification d'un programme, l'efficacité d'exécution du programme doit être utilisée comme référence, la logique du programme doit être améliorée et le code doit être optimisé de manière ciblée. Par exemple, le personnel d'exploitation et de maintenance de Linux a trouvé une instruction SQL dans le système qui consommait beaucoup de ressources système. Ils ont capturé l'instruction SQL exécutée et ont constaté que l'efficacité d'exécution de cette instruction SQL était trop faible. l'efficacité du code écrit par le développeur. , cela nécessite un retour de ces informations au développeur. Après avoir reçu cette question, le développeur peut effectuer une optimisation SQL ciblée pour optimiser le code du programme.

Comme le montre le processus ci-dessus, le processus généralement suivi pour l'optimisation des performances du système est :

Tout d'abord, le personnel d'exploitation et de maintenance de Linux vérifie l'état général du système, en portant principalement des jugements complets sur cinq aspects : le matériel du système, l'équipement réseau, la configuration du système d'exploitation, l'architecture de l'application et le code du programme. S'il s'avère qu'il y a un problème avec le système. configuration du matériel, de l'équipement réseau ou du système d'exploitation, le personnel d'exploitation et de maintenance Linux peut résoudre le problème de manière indépendante en fonction de la situation ;
  1. S'il s'avère qu'il s'agit d'un problème de structure du programme, il doit être soumis à l'architecte du programme ;
  2. S'il s'avère qu'il y a un problème d'exécution du code du programme, celui-ci sera transmis au développeur pour optimisation du code.
  3. Ceci termine un processus d’optimisation des performances du système.

4.Résumé du réglage L'optimisation des performances du système est une tâche longue, fastidieuse et à long terme. Trouver la cause profonde des problèmes de performances est souvent la partie la plus difficile. Une fois la cause du problème trouvée, le problème de performances sera facilement résolu. Par conséquent, les idées pour résoudre les problèmes deviennent très importantes.

Par exemple, pour un système de site Web sous Linux, les utilisateurs ont signalé que la vitesse d'accès au site Web est très lente et parfois inaccessible.

En réponse à cette question :

La première étape consiste à détecter le réseau. Vous pouvez utiliser la commande ping pour vérifier si la résolution du nom de domaine du site Web est normale, si le délai de ping de l'adresse du serveur est trop long, etc. , vous pouvez d'abord éliminer d'éventuels problèmes dans le réseau s'il n'y a aucun problème avec le réseau
  1. Entrez ensuite dans la deuxième étape pour vérifier l'utilisation de la mémoire du système Linux. Étant donné que la vitesse de réponse du site Web est lente, elle est généralement liée à la mémoire. Utilisez free, vmstat et d'autres commandes pour déterminer si les ressources mémoire sont insuffisantes. il n'y a aucun problème avec les ressources mémoire
  2. Entrez dans la troisième étape pour vérifier l'état de charge du processeur du système. Vous pouvez déterminer de manière exhaustive s'il y a un problème de surcharge sur le processeur grâce à la sortie des commandes sar, vmstat, top et autres. S'il n'y a pas de problème avec le processeur
  3. . Passez à la quatrième étape pour vérifier s'il y a un goulot d'étranglement dans les E/S du disque du système. Vous pouvez vérifier les performances de lecture et d'écriture du disque via iostat, vmstat et d'autres commandes. S'il n'y a aucun problème avec la lecture et l'écriture du disque, le problème de performances du système Linux lui-même est pratiquement éliminé. Enfin, il vérifie s'il y a un problème avec le programme lui-même. Grâce à ce type de réflexion, grâce à la détection couche par couche et au dépannage étape par étape, les problèmes de performances n'auront « nulle part où se cacher » et il deviendra très simple de trouver les liens où les problèmes de performances surviennent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer