Je sais ce que ça fait ... Je suppose que je suis curieux de savoir pourquoi cela résout un problème dans une application dont j'ai hérité. J'ai repris une application tomcat assez grande qui fait office de serveur Red5 pour un tas de clients flexibles, et gère beaucoup de données d'interaction en temps réel, qui sont finalement transférées vers une API de rails. Le problème était sous beaucoup de charge au fil du temps, le nombre de réponses à ces clients augmentait à 3-400 ms alors qu'il était normalement <100 ms. Le client soupçonnait qu'il s'agissait d'un problème de mémoire que nous n'avons vraiment jamais pu confirmer. Un jour, un serveur intermédiaire sur lequel j'exécutais un test de charge a cessé de recevoir des demandes ou était extrêmement lent. Sur un coup de tête que j'ai envoyé
sync && echo 3 > /proc/sys/vm/drop_caches
et comme par magie, le serveur est revenu à la vie et a commencé à fonctionner à pleine vitesse au service de ces connexions. Était-ce une coïncidence ou ce comportement a-t-il un sens et pourquoi?
sync
ou juste le echo
. Ensuite, essayez de comprendre pourquoi le serveur est lent dans les cas où cela résout (le processeur est-il au maximum? Les IO sont-ils au maximum? La pagination du système?)