Question

L'installation d'un serveur MySQL est assez facile. Cependant, après l'installation, la configuration du serveur est une tâche importante pour un DBA.

Avoir 2 Go de RAM et 250 Go d'espace disque, comment dois-je régler le serveur MySQL pour qu'il fonctionne bien?

Il devrait également être une bonne configuration du moteur InnoDB.

Était-ce utile?

La solution

Voici quelques-unes de mes recommandations pour InnoDB. Dans mon expérience, la taille du pool de mémoire tampon est le plus important parce que plus les données que vous pouvez conserver dans le cache, moins de temps votre système passera en utilisant ios disque.

http://dev.mysql.com/doc/refman/5.5 /en/innodb-buffer-pool.html Ceci est la piscine tampon, où les données et l'index sont mises en cache

innodb_buffer_pool_size=(In Mb, 80% of available RAM), pour 2 Go, je mettrais 1536.

Surveillez votre système soigneusement et être prêt à réduire cette variable si vous commencez à voir swapping.

http://dev.mysql.com/doc/refman/5.1 /en/innodb-parameters.html#sysvar_innodb_additional_mem_pool_size Ceci est où les métadonnées sont stockées. Si vous avez eu beaucoup de tables, il serait utile d'augmenter cela.

innodb_additional_mem_pool_size=16M

http://dev.mysql.com/doc/refman/5.1 /en/innodb-parameters.html#sysvar_innodb_data_file_path Ici, vous pouvez définir l'emplacement du fichier ibdata. Si vous pouvez mettre le fichier ibdata sur un disque séparé qui utilise un contrôleur séparé, il réduire les conflits. Soyez prudent avec cette option. Assurez-vous que vous lisez sur cette variable avant de l'utiliser. Si vos besoins de fichiers ibdata plus de 29G, MySQL arrêtera quel qu'en soit le faire et d'attendre pour vous d'ajouter l'espace.

innodb_data_file_path = ibdata1:128M:autoextend:max:29G

gère dans ce incrémente le fichier ibdata augmente. Donc, si vous mettez un nombre très petit comme 10MB, cela voudrait dire que InnoDB passerait beaucoup de temps à augmenter son fichier ibdata si vous aviez beaucoup d'inserts.

innodb_autoextend_increment = 128M

où mettre les journaux de transactions. Si vous pouvez mettre les journaux de transactions sur un autre disque avec un contrôleur distinct, ce sera aussi réduire les conflits

innodb_log_group_home_dir = /tlog/

Quelle est la taille des fichiers journaux

innodb_log_file_size = 500M

25% de la taille du pool de mémoire tampon, permet aux grandes transactions à terme sans qu'il soit nécessaire d'écrire sur le disque

innodb_log_buffer_size = 384M

Je définis également où le répertoire temporaire devrait aller. Où MySQL définit crée des fichiers temporaires. Une autre façon de réduire les conflits.

Je laisse généralement assez d'espace pour permettre la réindexation de la plus grande table sur le serveur.

tmpdir=/opt/tmp/

Et un journal d'erreur est utile au cas où quelque chose va mal et vous devez tirer des problèmes.

log-error=/var/log/mysql.err

En outre, si vous avez plus de 4 CPUs, ces variables peut être augmentée innodb_thread_concurrency = 8 innodb_file_io_threads = 4

Cela n'a rien à voir avec InnoDB. Il y a d'autres variables que vous pouvez jouer avec qui n'a rien à voir avec InnoDB. Je les ai ajoutés au fond, mais ils ont été pris directement à partir d'un serveur que j'utilise pour les tests. Évitez simplement copier-coller. La documentation de lecture MySQL basée sur la version de votre utilisant est la meilleure façon de faire les bons choix.

# Fine Tunning
key_buffer              = 512M
max_allowed_packet      = 16M
thread_stack            = 128K
thread_cache_size       = 8
join_buffer_size        = 64M
sort_buffer_size        = 16M
myisam_max_sort_file_size = 1024M
tmp_table_size = 256M
max_heap_table_size = 257M
myisam_sort_buffer_size=1024M

table_cache            = 1000
thread_concurrency     = 8
# * Query Cache Configuration
#
query_cache_limit       = 16M
query_cache_size        = 16M


skip-name-resolve
Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top