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