So cosa fa ... Immagino di essere curioso di sapere perché risolve un problema in un'applicazione che ho ereditato. Ho acquisito un'applicazione Tomcat abbastanza grande che funge da server Red5 per un gruppo di client flex e gestisco molti dati di interazione in tempo reale, che alla fine vengono scaricati su una rotaia API. Nel tempo il problema era molto carico e il resposo a questi client stava crescendo a 3-400 ms dove normalmente <100 ms. Il client sospettava che si trattasse di un problema di memoria che non potremmo mai confermare. Un giorno, un server di gestione temporanea, stavo eseguendo un test di carico su un arresto basico delle richieste o era estremamente lento. Per un capriccio che ho inviato
sync && echo 3 > /proc/sys/vm/drop_caches
e magicamente il server è tornato in vita e ha iniziato a funzionare a tutta velocità servendo queste connessioni. È stata una coincidenza o questo comportamento ha senso e perché?
sync
o solo il echo
. Quindi prova a capire perché il server è lento nei casi risolti (la CPU è al massimo? L'IO è al massimo? Il sistema esegue il paging?)