IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Too many connections - Configuration MySQL


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Too many connections - Configuration MySQL
    Bonjour,

    J'obtiens fréquemment sur mon site web un message d'erreur de MySQL m'indiquant qu'il y a trop de connections simultanées "Too many connections etc." => je flush / redémarre MySQL et ça fonctionne à nouveau. Mais je pense que la cause du problème est un mauvais paramètrage du fichier de configuration (cache, max_connections etc.) voici ma situation:

    Serveur dédié à MySQL :
    - MySQL version 5
    - Pentium 4, bi-processeur (2x 3 GhZ)
    - 4 GO de RAM
    - 300 GO de disque dur

    Structure de la base de données :
    - Format MyISAM
    - Environ 25 tables (toutes avec index)
    - Taille totale de la db environ 50 MO

    Environ 1'000'000 à 1'500'000 requêtes SQL par jour - site e-commerce + accès distants (flux rss etc.)

    - 90% des requêtes sont des SELECT
    - Il y a une table qui gère des sessions donc bcp de mises à jour
    - Je fais des Optimize et Repair tous les soirs automatiquement

    Voila en gros je pense que mon fichier de configuration pourrait être optimisé, notamment au niveau de la gestion du cache...

    En terme de rapidité tout va bien, mes requetes, index et tables sont donc correctement structurés, mais comment faire pourqu'il n'y ait plus ce problème de "Too many connection" ? Je change a chaque fois le paramètre max_connections, il est à 100'000 actuellement, mais je pense que je devrais modifier d'autres paramètres en conséquence.

    Si vous avez une idée ou un modèle de fichier de configuration optimisé pour mon utilisation et mon serveur...

    Merci beaucoup de votre aide.

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Bonjour,

    Tu es sûr que ce message vient de MySQL (SHOW PROCESSLIST te permet de voir le nombre de connexions réel et leur statut) ?
    Utilises-tu des connexions persistantes au niveau applicatif ?

    Pour le fichier de configuration tu peux voir du côté de my-large et my-huge.ini/.cnf qui se trouvent normalement dans le répertoire de données. Peut-on avoir un extrait de ton fichier de conf actuel ?
    Pensez au bouton

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Fichier de config
    Merci pour ta réponse ! J'ai fait quelques modifs et maintenant mon fichier de config se résume à cela:

    [client]
    port=3306

    [mysql]
    default-character-set=latin1
    no-auto-rehash

    [mysqld]
    port=3306
    default-character-set=latin1
    default-storage-engine=MYISAM
    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    skip-locking
    key_buffer = 384M
    max_allowed_packet = 1M
    table_cache = 512
    sort_buffer_size = 2M
    read_buffer_size = 2M
    read_rnd_buffer_size = 8M
    myisam_sort_buffer_size = 64M
    thread_cache = 8
    query_cache_size = 32M


    [myisamchk]
    key_buffer = 256M
    sort_buffer_size = 256M
    read_buffer = 2M
    write_buffer = 2M

    J'espère que ca va aller, vois-tu qqch à améliorer ?

    Merci de ton aide.

  4. #4
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut Re: Fichier de config
    Citation Envoyé par Adz3
    table_cache = 512
    Quelques remarques sur cette variable qui peut avoir son impact :

    table_cache is related to max_connections. For example, for 200 concurrent running connections, you should have a table cache size of at least 200 × N, where N is the maximum number of tables per join in any of the queries which you execute. You must also reserve some extra file descriptors for temporary tables and files.

    Make sure that your operating system can handle the number of open file descriptors implied by the table_cache setting. If table_cache is set too high, MySQL may run out of file descriptors and refuse connections, fail to perform queries, and be very unreliable. You also have to take into account that the MyISAM storage engine needs two file descriptors for each unique open table. You can increase the number of file descriptors available to MySQL using the --open-files-limit startup option to mysqld_safe. See Section A.2.17, “File Not Found”.
    http://dev.mysql.com/doc/refman/5.0/en/table-cache.html

    Sinon ça me parait très raisonnable pour une base de 50 Mo.
    Par contre je réitère mes autres questions car il est peu probable que ton problème de connexions vienne de MySQL lui-même.

    Et c'est sous quel OS ?
    Pensez au bouton

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Points : 2
    Points
    2
    Par défaut RE:
    Merci pour ces infos, voici quelques précisions :

    - Le serveur MySQL tourne sous Windows 2003 Server
    - Le serveur web également avec IIS 6.0

    Je pense que le message d'erreur vient bien de MySQL puisque quand j'ai cette erreur, le site se charge correctement (images, textes etc.) ce sont juste les parties qui font appel au serveur MySQL qui sont remplacées par le message d'erreur "Too Many Connection...".

    J'ai d'ailleurs été forcé de rajouté dans ma config à l'instant le paramètre max_connections = 200000, parceque si il n'est pas présent => erreur too many directement si je met une valeur plus petite que 200'000 au bout de quelques heures => erreur...

    Mais si je fais le calcul je devrais donc avec un cache immense ?

  6. #6
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut Re: RE:
    Citation Envoyé par Adz3
    Je pense que le message d'erreur vient bien de MySQL puisque quand j'ai cette erreur, le site se charge correctement (images, textes etc.)
    Pas forcément, ça peut venir :

    - de l'applicatif. Ex : le cocktail PHP + Apache + connexions persistantes (mysql_pconnect) peut engendrer des connexions "zombies" qui bloquent tout.
    - de l'OS : récemment quelqu'un sur ce forum a eu des soucis entre MySQL et BSD si je me souviens bien.

    Mais si je fais le calcul je devrais donc avec un cache immense ?
    Pas forcément, ça dépend du nombre de connexions simultanées.

    Je te suggère aussi à nouveau de faire un SHOW CONNECTIONS ou un SHOW STATUS pour voir ce qui coince au niveau des connexions.
    Pensez au bouton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mysql.jdbc.exceptions: "Too many connections"
    Par Spiritkill dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/05/2011, 10h12
  2. Impossible redémarrer mysql (too many connections)
    Par headz_ dans le forum Administration
    Réponses: 1
    Dernier message: 15/03/2010, 09h17
  3. "Too many connection" avec Mysql
    Par grominet_79 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 03/02/2009, 13h32
  4. [JonAs]JOnAS SQLException "Too Many Connections"
    Par uron86 dans le forum JOnAS
    Réponses: 4
    Dernier message: 23/06/2005, 09h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo