Я знаю, что он делает ... Думаю, мне любопытно, почему он исправляет проблему в приложении, которое я унаследовал. Я взял на себя довольно большое приложение tomcat, которое выступает в качестве сервера Red5 для группы Flex-клиентов и обрабатывает множество данных о взаимодействии в реальном времени, которые в конечном итоге сбрасываются в rails api. Проблема находилась под большой нагрузкой с течением времени, число обращений к этим клиентам росло до 3-400 мс, где обычно <100 мс. Клиент подозревал, что это проблема памяти, которую мы действительно никогда не могли подтвердить. Однажды промежуточный сервер, на котором я выполнял нагрузочный тест, прекратил принимать запросы или работал очень медленно. По прихоти я послал
sync && echo 3 > /proc/sys/vm/drop_caches
и волшебным образом сервер вернулся к жизни и начал работать на полной скорости, обслуживая эти соединения. Было ли это совпадением или такое поведение имеет смысл и почему?
sync
или echo
. Затем попытайтесь выяснить, почему сервер работает медленно в случаях, когда это исправляет (максимальный ЦП? Максимальный IO? Системный пейджинг?)