Я до сих пор вижу, как системные администраторы используют старое эмпирическое правило, согласно которому своп должен вдвое превышать объем памяти, даже на серверах с 32 ГБ памяти.
Эти системы имеют относительно дорогие диски (поставляются с дисками на 200 ГБ), и выделение 64 ГБ из них для подкачки кажется немного чрезмерным.
Мне было интересно, сколько свопа вы выделяете для своих серверов Solaris и почему?
Я видел, что были и другие похожие вопросы, но в основном они касались Linux. Для Solaris есть еще одно соображение при выборе пространства подкачки, потому что файловая система / tmp обычно используется совместно с swap.
Память swap = 2 * пришла из старых времен, когда во время сбоя ядра ядро выгружало память на устройство подкачки, и вы могли проверить, что произошло после перезагрузки системы. В настоящее время, например, Linux вообще пропускает это, и я не запускаю свою систему с включенной настройкой файла дампа. Таким образом, этот двойной размер памяти для получения подкачки больше не действует, потому что нет ничего необычного в том, что у вас есть 16/32/64 ГБ оперативной памяти, а затем вы, очевидно, тратите дисковое пространство, следуя этой старой истории, когда диска было много больше, чем RAM. Короче говоря, если вы не хотите сбрасывать и анализировать сбои ядра в процессе производства, нет логической причины придерживаться этого принципа и просто дать вашей системе пару G подкачки, обычно я даю 2/4 G, потому что я хочу Избегайте огромной нагрузки ввода-вывода, вызванной подкачкой.
это рекомендуемые чтобы иметь достаточно оперативной памяти для всего вашего приложения, которое активно использует память, чтобы поместиться в нее, и при этом иметь достаточно места для обеспечения оптимальной производительности различных управляемых кешей ядра и других динамических буферов. В противном случае у вас будет слишком много страниц, и система будет работать хуже.
С другой стороны, это обязательное чтобы размер подкачки был достаточно большим для выполнения всех резервирований памяти. В противном случае ваши приложения вылетят случайным образом. Это не связано с использованием ОЗУ. Имейте в виду, что Solaris, в отличие от Linux и других, не выделяет слишком много памяти.
Плохая практика - вообще не выделять область подкачки в Solaris, поскольку часть вашей оперативной памяти будет потрачена впустую. Обычно 50% зарезервированной, но неиспользуемой виртуальной памяти, поэтому я бы посоветовал по практическому правилу иметь область подкачки размером от 50% до 100% ОЗУ. Существуют определенные варианты использования, в которых много страниц может иметь смысл, поэтому места для подкачки увеличиваются.
В Solaris больше не требуется свопинг. Если вы знаете, что ваша система будет полностью работать в памяти, вы можете установить ее на ноль. Если дисковое пространство действительно не является проблемой, установите его как можно больше, так как оно вам понадобится в критической ситуации.
Часто задаваемые вопросы о Solaris: мифы и факты
Обычно я устанавливаю то же значение, что и RAM, если системе не потребуется намного больше.
Я бы не согласился с аргументом, что своп больше не требуется. Если вы используете тяжелые приложения, такие как EDA, Space, Petroleum, Weather Forecast. Приложения обычно работают в физической памяти. Итак, это зависит от того, какие приложения вы используете. Короче говоря, к сожалению, нет единого правила, которое подошло бы всем. Вам нужно будет выбрать размер свопа в зависимости от требований вашего приложения.
Это во многом зависит от ваших приложений.
Потому что Solaris, похоже, не может чрезмерно загружать память, возможно, вам придется добавить тонны свопа, даже если он физически не используется.