2010-07-09 14 views
0

J'ai lu toutes les réponses possibles à cette question et j'ai recherché via Google afin de trouver la bonne réponse à la question suivante, mais je suis plutôt novice et ne semble pas obtenir un Une compréhension claire. J'ai beaucoup lu sur les serveurs Web, mais je n'ai pas de serveur Web, mais une base de données intranet.MySQL connexions actives à la fois, Windows Server

J'ai une base de données MySQL dans un serveur Windows au travail.

De nombreux utilisateurs accèderont constamment à cette base de données pour effectuer des requêtes simples et y réécrire de nouveaux enregistrements. La lecture/écriture ne sera pas si lourde (il y a de fortes chances que 50 à 100 utilisateurs le fassent exactement en même temps, même si 1000 peuvent être connectés). L'interface graphique sera soit via des formulaires Excel et/ou Access.

Ce que je dois savoir, c'est le nombre maximum de connexions actives que je peux avoir à un moment donné dans la base de données. Je sais que je peux changer le numéro sur Mysql Admin mais j'ai vraiment besoin de savoir ce qui va vraiment fonctionner ... Je ne veux pas mettre 1000 utilisateurs si le système va vraiment gérer 100 correctement (après cela, bien que connecté, le la performance sera trop lent, par exemple)

Toutes les idées ou expériences seront appréciés

Répondre

1

Cela dépend principalement de votre matériel de serveur (RAM, CPU, réseau) et la charge du serveur pour d'autres processus sinon dédié à la base de données. Je pense que vous n'aurez pas de réponse absolue et le meilleur moyen est de tester.

0

Je pense que quelque chose comme 1000 devrait fonctionner, tant que vous utilisez un serveur MySQL 64 bits. Avec 32 bits, trop de connexions peuvent créer une pression de mémoire virtuelle - une connexion a son propre thread, et chaque thread a besoin d'une pile, ainsi la mémoire de pile réduira la taille possible du pool de mémoire tampon et d'autres tampons. MySQL ne ralentit généralement pas si vous avez beaucoup de connexions inactives, mais des commandes spéciales, par exemple "show processlist" ou "kill", qui énumèrent toutes les connexions seront un peu plus lentes.

Si la connexion inactive reste inactive trop longtemps (le temps d'inactivité dépasse le paramètre wait_timeout), elle est supprimée par le serveur. Si c'est le cas dans votre scénario possible, vous pouvez augmenter wait_timeout (sa valeur par défaut est 8 heures)

0

Vous devez surveiller la variable MySQL "threads_connected" qui donne le nombre de connexions actuellement ouvertes au serveur sur une période de temps pour atteindre la limite réelle nécessaire. Il est généralement nécessaire de les suivre et de comprendre la limite réelle. Pour cela, j'utilise Monyog car il a des moniteurs dédiés pour surveiller les «connexions actuelles» ainsi que les mesures du système d'exploitation du serveur. Vous pouvez afficher la tendance historique des moniteurs pour déterminer la limite. La surveillance des métriques du système d'exploitation telles que la RAM et l'utilisation de l'UC est également nécessaire ici pour vérifier si le serveur est capable de gérer la charge et de connaître les seuils de la machine.