Вопрос про swap
Добавлено: 2010-05-06 8:49:31
Недавно настраивал контейнеры OpevVZ.
Там есть такой параметр предел ассигнованной памяти.
Как я понял ассигнованая память - это максимальный объём памяти, который может теоретически понадобится приложению. Однако на практике приложение крайне редко использует столько памяти, сколько ассигнует.
Вот в этих контейнерах методом проб выяснилось, что чтобы контейнер мог реально занять скажем доступные 256 метров физической памяти, лимит ассигнованной должен быть минимум в 3 раза больше, т.е. 768 Mb. Иначе приложение при старте получит отказ при попытке ассигновать память.
Вот тут и назрел вопрос, не для этого ли разработчики ОС сохранили столь большие рекомендованные размеры swap 2xRAM или 3xRAM?
В этом ведь есть железная логика. Таким образом мы разрешаем ассигновать больше памяти чем есть физической, и даже если приложение действительно станет её использовать, всё хоть и будет тормозить из-за свопинга, но тем не менее данные не будут потеряны и приложение не завершится аварийно. И получается swap действительно нужно делать как минимум 2xRAM. Даже если на сервере 64 гига оперативки.
Иначе выйдет так, что свопе гораздо меньше объёма RAM, в какой-то момент приложения станут получать отказ выделения памяти, хотя физической памяти будет ещё очень много доступно.
Это действительно так?
Там есть такой параметр предел ассигнованной памяти.
Как я понял ассигнованая память - это максимальный объём памяти, который может теоретически понадобится приложению. Однако на практике приложение крайне редко использует столько памяти, сколько ассигнует.
Вот в этих контейнерах методом проб выяснилось, что чтобы контейнер мог реально занять скажем доступные 256 метров физической памяти, лимит ассигнованной должен быть минимум в 3 раза больше, т.е. 768 Mb. Иначе приложение при старте получит отказ при попытке ассигновать память.
Вот тут и назрел вопрос, не для этого ли разработчики ОС сохранили столь большие рекомендованные размеры swap 2xRAM или 3xRAM?
В этом ведь есть железная логика. Таким образом мы разрешаем ассигновать больше памяти чем есть физической, и даже если приложение действительно станет её использовать, всё хоть и будет тормозить из-за свопинга, но тем не менее данные не будут потеряны и приложение не завершится аварийно. И получается swap действительно нужно делать как минимум 2xRAM. Даже если на сервере 64 гига оперативки.
Иначе выйдет так, что свопе гораздо меньше объёма RAM, в какой-то момент приложения станут получать отказ выделения памяти, хотя физической памяти будет ещё очень много доступно.
Это действительно так?