Ich weiß, was es tut ... Ich schätze, ich bin neugierig, warum es ein Problem in einer Anwendung behebt, die ich übernommen habe. Ich habe eine ziemlich große Tomcat-Anwendung übernommen, die als Red5-Server für eine Reihe von Flex-Clients fungiert und eine Menge Echtzeit-Interaktionsdaten verarbeitet, die schließlich auf eine Rails-API übertragen werden. Das Problem war im Laufe der Zeit stark ausgelastet, und die Antwortzeiten für diese Clients stiegen auf 3 bis 400 ms, wobei sie normalerweise <100 ms waren. Der Kunde vermutete, dass es sich um ein Speicherproblem handelte, das wir wirklich nie bestätigen konnten. Eines Tages hatte ein Staging-Server, auf dem ich einen Auslastungstest durchführte, die Annahme von Anforderungen grundsätzlich eingestellt oder war extrem langsam. Aus einer Laune heraus habe ich gesendet
sync && echo 3 > /proc/sys/vm/drop_caches
und auf magische Weise erwachte der Server wieder zum Leben und lief mit voller Geschwindigkeit, um diese Verbindung herzustellen. War das ein Zufall oder macht dieses Verhalten Sinn und warum?
sync
oder nur das echo
. Versuchen Sie dann herauszufinden, warum der Server in den Fällen, in denen dies behoben wurde, langsam ist (ist die CPU ausgelastet? Ist die E / A-Auslastung ausgelastet? Ist das System ausgelagert?)