Что происходит, когда ОС Linux не хватает оперативной памяти и нет подкачки?
1 ответ
Когда операционной системе не хватает оперативной памяти и нет подкачки, она удаляет чистые страницы. Он не может отбрасывать грязные страницы, потому что он должен был бы сначала написать их где-нибудь. Это вызывает побои и низкую производительность, если недостаточно ОЗУ для хранения рабочего набора. Это одна из главных причин, по которой вы действительно хотите поменяться местами - чтобы операционная система могла принять лучшее решение о том, какие страницы удалять.
Без подкачки система исчерпает виртуальную память (строго говоря, ОЗУ + подкачка), как только у нее не останется чистых страниц для удаления. Тогда придется убивать процессы.
Недостаток ОЗУ вполне нормален. Это просто негативное влияние на использование оперативной памяти. Нехватка ОЗУ также может быть описана как "потеря ОЗУ". После использования всей оперативной памяти операционная система принимает разумные решения о том, что хранить в ОЗУ, а что - нет. Без какого-либо обмена у него меньше вариантов.
С или без свопинга, когда удаления страниц недостаточно, операционная система запустится, отказавшись разрешить операции, требующие памяти (например, mmap
и fork
) для успешного выполнения. Однако иногда этого недостаточно, и процессы должны быть убиты.