[mysql-5.7] Lenteur + saturation CPU
Bonjour,
Il y a 3 semaines j'ai migré mon site web vers un serveur Ubuntu 16.4 avec LAMP. Ce serveur dispose de 4 cpu de 2.4 Ghz et de 8 Go de RAM.
Celui-ci fonctionne pas trop mal en journée, mais le soir, dès qu'il n'y a pas mal d'internautes dessus, le site se met à ralentir énormément. Et bizarrement, j'ai l'impression que c'est dès que les barre des 400 utilisateurs simultanés et dépassé que ça deviens critique, je vois les CPU qui plafonnent à fond avec une grande quantité de processus MySQL (mais la ram elle ne monte jamais à plus de 3,5 GO et jamais de swap) alors qu'à 380/390 utilisateurs il n'y a pas trop de problèmes, et passée la barre des 500 utilisateurs simultanés c'est la catastrophe, il faut plus de 30 secondes pour afficher une page qui en prend que 3 en journée.
J'ai essayé de montée mon serveur à 8 CPU pour tester, c'était à peine mieux.
Au départ, j'avais un peu cet effet-là dès les 150 internautes simultanés, en cherchant sur le net j'ai réussi à optimiser un peu tout ça mais ce n'est pas suffisant.
Voici mon fichier my.cnf: (ma base de donnée est en myisam)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
bind-address = 127.0.0.1
thread_stack = 192K
myisam-recover-options = BACKUP
log_error = /var/log/mysql/error.log
expire_logs_days = 10
max_binlog_size = 100M
##### mes ajouts ######
max_connections=1000
max_user_connections = 1000
long_query_time = 0.1
query_cache_type = 1
query_cache_size = 512M
query_cache_limit = 16M
join_buffer_size=1M
read_rnd_buffer_size=1M
max_allowed_packet = 10M
tmp_table_size=25M
max_heap_table_size=25M
table_open_cache = 7500
thread_cache_size = 25
key_buffer_size = 500M
myisam_sort_buffer_size = 256M
innodb_file_per_table=1
innodb_buffer_pool_size = 1G
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
sort_buffer_size=32M
read_buffer_size=8M |
Le problème c'est que je ne comprends pas tout dans ce fichier, donc j'ai beaucoup de mal à l'optimiser. Quelqu'un pourrait-il m'aider à trouver ce qui ne va pas ?
Je suis d'autant plus inquiet car avant de migrer sur ce serveur, il n'était pas rare de monter à 700/750 internautes simultanés, ce qui n'est plus arrivé depuis, mais je pense que c'est simplement parce que les pages n'arrive plus à s'afficher assez vite et donc les gens s'en vont.
Par avance, merci pour votre aide.