
У меня есть Linux VPS с 256 МБ памяти ( free
хотя находит только 248). Однако, похоже, у меня все еще есть 85 МБ свободной памяти,ноон меняет на 255 МБ. Почему так?
free -m
total used free shared buffers cached
Mem: 248 245 3 0 41 40
-/+ buffers/cache: 163 85
Swap: 1971 255 1716
решение1
У вас свободно 3 МБ, а не 85 МБ. Поскольку у вас 255 МБ подкачки и только 88 МБ памяти, которые потенциально можно использовать для хранения данных, которые были подкачаны, у ядра нет выбора, кроме как подкачать по крайней мере 167 МБ. Причина, по которой оно подкачало больше, заключается в том, что ядро посчитало, что производительность будет выше, если оно будет использовать эту память для кэширования диска (технически, для кэширования страниц), а не использовать ее для хранения данных приложения, к которым недавно не обращались.
Причина, по которой 3 МБ остаются свободными, заключается в том, чтобы обрабатывать всплески нагрузки в контекстах, где память не может быть легко освобождена или переназначена. Например, если происходит всплеск сетевого трафика или когда завершается дисковый ввод-вывод.