Sé lo que hace ... Creo que tengo curiosidad por qué está solucionando un problema en una aplicación que heredé. Me hice cargo de una aplicación tomcat bastante grande que actúa como servidor Red5 para un grupo de clientes flexibles, y manejo una gran cantidad de datos de interacción en tiempo real, que finalmente se descargan en una API de rieles. El problema estaba bajo mucha carga con el tiempo, las respuestas a estos clientes aumentaban a 3-400 ms donde normalmente <100 ms. El cliente sospechaba que era un problema de memoria que realmente nunca pudimos confirmar. Un día, un servidor de ensayo en el que estaba ejecutando una prueba de carga básicamente dejó de recibir solicitudes o fue extremadamente lento. Por capricho envié
sync && echo 3 > /proc/sys/vm/drop_caches
y, mágicamente, el servidor volvió a la vida y comenzó a funcionar a toda velocidad sirviendo estas conexiones. ¿Fue una coincidencia o este comportamiento tiene sentido y por qué?
sync
o solo con el echo
. Luego, intente averiguar por qué el servidor es lento en los casos en que esto soluciona (¿la CPU está maximizada? ¿IO está maximizada? ¿La paginación del sistema?)