Sei o que faz ... Acho que estou curioso para saber por que está corrigindo um problema em um aplicativo que herdei. Eu assumi um aplicativo tomcat bastante grande, que atua como servidor Red5 para vários clientes flex, e lida com muitos dados de interação em tempo real, que acabam sendo liberados para uma API Rails. O problema estava sob muita carga ao longo do tempo, e as transferências para esses clientes aumentaram para 3-400 ms, onde normalmente é <100 ms. O cliente suspeitou que fosse um problema de memória que realmente nunca pudemos confirmar. Um dia, em um servidor intermediário, eu estava executando um teste de carga em que basicamente parou de receber solicitações ou era extremamente lento. Por capricho eu enviei
sync && echo 3 > /proc/sys/vm/drop_caches
e magicamente o servidor voltou à vida e começou a funcionar a toda velocidade, atendendo a essas conexões. Isso foi uma coincidência ou esse comportamento faz sentido e por quê?
sync
ou apenas o echo
. Em seguida, tentar descobrir por que o servidor é lento nos casos corrige este (? É maxed A CPU é IO maxed É a paginação do sistema?)