Notes sur la distribution source de Linux <<< |
Notes de post-installation pour Linux | Notes relatives à Linux x86 >>> |
2.6.1 Notes relatives à Linux (toutes versions) 2.6 Notes spécifiques aux systèmes d'exploitation 2 Installer MySQL Manuel de Référence MySQL 4.1 : Version Française . Notes sur Linux . Notes relatives à Linux pour les distributions binaires . Notes sur la distribution source de Linux ->Notes de post-installation pour Linux . Notes relatives à Linux x86 . Notes relatives à Linux SPARC . Notes relatives à Linux Alpha . Note relative à Linux PowerPC . Notes relatives à Linux MIPS . Notes relatives à Linux IA64 |
2.6.1.4 Notes de post-installation pour Linuxmysql.server est stocké dans le dossier support-files dans le dossier d'installation MySQL, ou dans le dossier des sources. Vous pouvez l'installer dans /etc/init.d/mysql pour assurer le démarrage et l'extinction automatique de MySQL. Lancer et arrêter automatiquement MYSQL . Si MySQL n'arrive pas à ouvrir assez de fichiers, ou à créer assez de connexions, il se peut que vous n'ayez pas configuré Linux pour qu'il gère assez de fichiers. Dans Linux 2.2 ou plus, vous pouvez connaître le nombre de gestionnaires de fichiers alloués en faisant :
Vous pouvez sinon définir ces paramètres lors du démarrage de la machine en utilisant l'outil sysctl , qui est utilisé par plusieurs distributions Linux (SuSE l'a aussi ajouté, à partir de SuSE Linux 8.0). Ajoutez simplement les valeurs suivantes dans un fichier nommé /etc/sysctl.conf :
Si vous compilez MySQL vous-mêmes, vous pouvez corriger LinuxThreads pour améliorer l'utilisation de la pile. Notes pour les distributions sources de Linux . Si vous ne voulez pas corriger LinuxThreads , vous ne devez pas dépasser 500 pour la valeur de max_connections . Cela devrait même être moins si vous avez un tampon de clefs assez large, de grosses tables heap, ou d'autres choses qui peuvent faire allouer beaucoup de mémoire à mysqld , ou si vous utilisez un noyau 2.2 avec un patch 2G. Si vous utilisez notre binaire ou RPM 3.23.25 ou plus, vous pouvez mettre max_connections à 1500 sans problèmes, en supposant que vous n'avez ni de grosses tables heap ni grands tampons de clefs. Plus vous réduirez STACK_SIZE dans LinuxThreads plus les threads créés seront sûrs. Nous recommandons une valeur entre 128 ko et 256 ko. Si vous utilisez beaucoup de connexions simultanées, vous pouvez souffrir d'une ``fonctionnalité'' du noyau 2.2, qui tente d'éviter les DOS par fork en pénalisant les processus qui forkent ou qui clonent des fils. Cela fait que MySQL ne se comporte pas bien si vous augmentez le nombre de clients simultanés. Sur les systèmes mono-processeurs, nous avons vu des symptômes sous la forme de ralentissement : il prenait un très long temps pour se connecter (parfois une minute), et il fallait autant de temps pour terminer le processus. Sur les systèmes multi-processeurs, nous avons observé une décroissance graduelle des performances des requêtes chez de nombreux clients. Durant nos recherches pour corriger le problème, nous avons reçu un patch d'un client qui prétendait avoir résolu le problème pour son site. Ce patch est disponible sur http://www.mysql.com/Downloads/Patches/linux-fork.patch . Nous avons maintenant fait des tests exhaustifs de ce patch en développement et en production. Il a amélioré significativement les performances sans causer de problèmes, et nous l'avons recommandé à nos utilisateurs qui fonctionnent avec des serveurs chargés et un noyau 2.2.Ce problème a été réglé avec le noyau 2.4 : si vous n'êtes pas satisfait avec les performances courantes de votre système, au lieu de le corriger, passez donc votre noyau 2.2 en 2.4. Sur les systèmes multi-processeurs, la mise à jour vous donnera d'ailleurs un regain de puissance, en plus de corriger le bug. Nous avons testé MySQL sur des noyaux 2.4 et sur des machines bi-processeurs, et nous avons trouvé que MySQL se comporte beaucoup mieux. Il n'y avait pratiquement pas de ralentissement de requêtes même avec 1000 client, et gain de puissance était de 180% (calculé avec le ratio de vitesse maximale divisé par la vitesse moyenne d'un client). Nous avons observé des résultats similaires sur une machine quadri-processeurs : virtuellement aucun ralentissement alors que le nombre de clients est monté jusqu'à 1000, et le gain de puissance a atteind 300%. En se basant sur ces résultats, pour un serveur haute performances multi-processeurs, nous vous recommandons de passer en noyau 2.4.Nous avons découvert qu'il est essentiel de faire fonctionner les processus mysqld avec la priorité maximal sur le noyau 2.4 pour atteindre les meilleures performances. Cela peut se faire en ajoutant la commande renice -20 $$ dans mysqld_safe . Durant nos tests sur une machine quadri-processeurs, augmenter la priorité a engendré 60% d'amélioration avec 400 clients. Nous essayons aussi de rassembler plus d'informations sur comment MySQL se comporte sur un système 2.4 quadri- ou octo-processeurs. Si vous avez accès a de telles données, envoyez nous un email à benchmarks@mysql.com avec les résultats. Nous allons les étudier pour les inclure dans le manuel.Si vous voyez un processus mysqld mort avec ps , c'est que vous avez découvert un bug dans MySQL ou qu'une des tables est corrompue. Que faire si MySQL crashe constamment . Pour obtenir un core dump sur Linux si mysqld se termine avec un signal SIGSEGV , vous pouvez lancer mysqld avec l'option --core-file . Notez que vous aurez probablement à augmenter la taille du fichier core en ajoutant la commande ulimit -c 1000000 à mysqld_safe ou en lançant mysqld_safe avec --core-file-size=1000000 . safe_mysqld , le script père de mysqld . |
<< | Notes de post-installation pour Linux | >> |
Notes sur la distribution source de Linux | Notes relatives à Linux (toutes versions) | Notes relatives à Linux x86 |