zestedesavoir / zds-site

Cœur du projet technique de Zeste de Savoir
https://zestedesavoir.com
Other
268 stars 160 forks source link

[beta][v20] Serveur de beta anormalement lent #3789

Closed GerardPaligot closed 8 years ago

GerardPaligot commented 8 years ago

Serveur : Beta Version : v20/6bb2f75 Système : Mac OS X Navigateur : 52.0.2743.116 (64-bit)


D'après mes précédents usages de la beta, je peux signaler que le serveur est anormalement lent. Par exemple, il a fallu plus d'1 minute pour me déconnecter.

C'est vrai que le serveur de bêta a toujours été plus lent que la prod mais jamais à ce point là.

vhf commented 8 years ago

Yep, merci. J'ai lancé un git prune et il tourne depuis 10 minutes mais il est presque terminé. Il fait monter la charge à 5-6 donc normal que ce soit très lent depuis un petit moment.

Je vais aussi relancer memcached. Faudrait voir si MySQL 5.6 est pas en cause aussi.

firm1 commented 8 years ago

Je confirme que la beta est super lente. Le back-end met ~3 secondes pour changer la home en mode connecté. Par contre il met moins de 0.5 s à rendre la page https://beta.zestedesavoir.com/pages/association Donc je pense que le problème n'est pas au niveau du cache.

@vhf Est-ce qu'on peut avoir des infos sur les requêtes lentes actuellement sur la beta ?

vhf commented 8 years ago

Bon, y'a un problème avec MySQL et je sais pas lequel. A chaque affichage de page, il log des slow queries. C'est pas normal. La config est peut-être pas bonne, mais je sais pas trop.

mysqltuner ne dit rien d'intéressant, il est presque tout vert.

C'est bizarre notre serveur beta a 4G de RAM mais 128M de swap, la RAM est à ~1.5G et la swap à 100%...

GerardPaligot commented 8 years ago

Le tag bloquant ne me semble pas de trop du coup.

vhf commented 8 years ago

Je vais pas l'enlever tout de suite, mais si, il est de trop pour le moment. On n'a pas la même infra en dev et en prod pour rappel. Et on va très probablement supprimer ce serveur de bêta dans moins de 10j.

On n'est même pas certains que le problème est MySQL. Il est lent, mais c'est pas forcément de sa faute.

GerardPaligot commented 8 years ago

Il faut éclaircir le point avant toute mise en production en tout cas.

vhf commented 8 years ago

La plupart des requêtes sur l'index du forum partent entre 10 et 25x. Aucune idée pourquoi.

Genre celle-ci :

SELECT `forum_topicread`.`id`, `forum_topicread`.`topic_id`, `forum_topicread`.`post_id`,
`forum_topicread`.`user_id`, `utils_comment`.`id`, `utils_comment`.`author_id`, 
`utils_comment`.`editor_id`, `utils_comment`.`ip_address`, `utils_comment`.`position`, 
`utils_comment`.`text`, `utils_comment`.`text_html`, `utils_comment`.`like`, `utils_comment`.`dislike`, 
`utils_comment`.`pubdate`, `utils_comment`.`update`, `utils_comment`.`update_index_date`, 
`utils_comment`.`is_visible`, `utils_comment`.`text_hidden`, `forum_post`.`comment_ptr_id`, 
`forum_post`.`topic_id`, `forum_post`.`is_useful` FROM `forum_topicread`
INNER JOIN `forum_post` ON ( `forum_topicread`.`post_id` = `forum_post`.`comment_ptr_id` )
INNER JOIN `utils_comment` ON ( `forum_post`.`comment_ptr_id` = `utils_comment`.`id` )
WHERE (`forum_topicread`.`user_id` = 87 AND `forum_topicread`.`topic_id` = 4949)
ORDER BY `utils_comment`.`position` DESC LIMIT 1

24x.

Je veux bien de l'aide à piger ça.

vhf commented 8 years ago

Pour relativiser les perfs IO beta/prod:

beta $ time sh -c "dd if=/dev/zero of=testfile bs=100k count=10k && sync"
real    0m33.937s
user    0m0.019s
sys     0m5.215s

prod $ time sh -c "dd if=/dev/zero of=testfile bs=100k count=10k && sync"
real    0m5.173s
user    0m0.008s
sys     0m0.956s

Bon ok la beta est 6-7x plus lente que la prod, mais niveau SQL j'ai pas de point de comparaison vu que je débarque dans ce projet.

160 requêtes sur /forums/ c'est normal ? En moyenne sur cette page ça fait 40ms / requête, ce qui est plausible vu la lenteur de la VM.


J'ai mis en place un peu plus de query caching que précédemment dans MySQL (notamment passé à 80M pour le cache), maintenant les requêtes prennent 5ms en moyenne sur n'importe quelle page quand le cache est chaud. Du coup le problème est pas côté MySQL.

Exemple ici sur la homepage, 102 requêtes en 360ms. Le problème vient clairement pas de MySQL.

x x
Temps CPU de l'utilisateur 10046.473 ms
Temps CPU du système 1159.823 ms
Temps total du CPU 11206.296 ms
Temps écoulé 12198.916 ms
Basculements de contexte 146 volontaire, 3650 involontaire

En fait ce CPU pourrait être simplement dû au mode debug qui permet de l'observer. C'est absurde mais c'est la vie.

GerardPaligot commented 8 years ago

@SpaceFox Est-ce que tu aurais un peu de temps pour donner un avis sur ce problème ?

SpaceFox commented 8 years ago

J'ai pas d'idée plus intelligente que « OVH a encore fait de la merde ».

Peut-être qu'une vérification avec iotop ?

2016-08-26 22:18 GMT+02:00 Gérard Paligot notifications@github.com:

@SpaceFox https://github.com/SpaceFox Est-ce que tu aurais un peu de temps pour donner un avis sur ce problème ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/zestedesavoir/zds-site/issues/3789#issuecomment-242840561, or mute the thread https://github.com/notifications/unsubscribe-auth/AFhKnGhISnEgDYfZEJz0k_GbYgqA7ZNyks5qj0oBgaJpZM4JrSVo .

vhf commented 8 years ago

Rien de très intéressant dans iotop malheureusement. Par contre les perfs sont de nouveau acceptables sur la beta il semblerait. Le query cache semble faire son effet, c'est assez remarquable.

firm1 commented 8 years ago

Perso la beta est toujours lente chez moi. Je suis passé a 1.8 sec de temps réponses du back-end sur la home. Mais globalement ça m'a l'air plus lent que ce dont nous sommes habitués sur la beta

firm1 commented 8 years ago

Est-ce qu'on a moyen de remettre en place munin sur la beta avec le plugin http (vu que maintenant on a plus d'authentification en place) ?

SpaceFox commented 8 years ago

On peut faire ça, mais j'attends d'avoir un statut sur le serveur de la bêta (cf le thread à ce sujet).

2016-09-05 13:36 GMT+02:00 firm1 notifications@github.com:

Est-ce qu'on a moyen de remettre en place munin sur la beta avec le plugin http (vu que maintenant on a plus d'authentification en place) ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/zestedesavoir/zds-site/issues/3789#issuecomment-244726312, or mute the thread https://github.com/notifications/unsubscribe-auth/AFhKnJjACEVRf04plgRbB6txB-xRip3_ks5qm_7ZgaJpZM4JrSVo .

WinXaito commented 8 years ago

Perso je suis en dessous de la seconde (802ms pour la requête principale) et je trouve que c'est encore potable.

artragis commented 8 years ago

perso je l'ai pas trouvé lent lors de mon dernier test.