Я замечал случайные радикальный икота производительности в моем приложении, размещенном на VPS. Мой план VPS имеет 1 ГБ гарантированной памяти и 1 ГБ оперативной памяти. Время от времени приложение становится чрезвычайно вялым, а затем внезапно снова становится отзывчивым. После некоторого расследования я обнаружил, что сбой происходит, когда я превышаю гарантированный 1 ГБ ОЗУ, даже если я значительно ниже общего объема в 2 ГБ. Похоже, что никаких других паттернов нет (загрузка процессора и диска выглядят нормально во время икоты).
Я предполагаю, что мой 1 ГБ оперативной памяти, которую гипервизор дает мне, на самом деле выходит на вращающийся диск в эти медленные времена ... Так что я действительно работаю с диском подкачки 1 ГБ, но (вот ключ) Linux не знать что он действительно имеет только 1 ГБ ОЗУ + 1 ГБ "подкачки".
Я догадываюсь, что все отлаженные алгоритмы в подсистеме управления памятью ядра полностью отбрасываются тем фактом, что система сообщает о 2 ГБ оперативной памяти, когда на самом деле только 1 ГБ.
Похоже, что большинство регуляторов, с которыми я могу поиграть, предназначены для настройки системы для использования. Больше RAM, чем на самом деле Есть ли способ пойти в противоположном направлении (то есть стать более консервативным, когда мы начнем приближаться к 1 ГБ используемой памяти)?