В течение нескольких лет я читал, что это хорошая идея - создать раздел подкачки с двойным пространством в моей оперативной памяти. это все еще применяется сегодня? или это больше не нужно?
У меня есть сервер с 8 ГБ ОЗУ, и мне нужно создать раздел подкачки, и мне было интересно, если 16 ГБ это слишком много.
Ответы:
В больших системах, 8 ГБ физической памяти, мы обычно выделяем 2 ГБ подкачки. Это загруженные серверы баз данных под управлением Oracle или PostgreSQL. В течение многих лет я никогда не видел, чтобы своп попадал даже под большой нагрузкой. Большая нагрузка - примерно 100-150 пользователей, которые выполняют около 10000 операций чтения SQL и, возможно, 2500 операций записи в минуту.
Мы также корректируем уровень подкачки, чтобы предотвратить обмен, и отключаем ненужные процессы, которые, как мы знаем, нам не нужны. (Пользовательские сборки Linux)
Как говорит Эдди выше, 1x физическая оперативная память - хорошее эмпирическое правило для всего, что меньше 4 ГБ. Я делаю пользовательские сборки Linux для большой компании из списка Fortune-500, и это именно то, чем мы обычно занимаемся, и у нас не было проблем в течение последних 5 лет или около того, с которыми я консультировался.
В более крупных системах: 64-битный Linux с 32 ГБ и 64 ГБ ОЗУ - это наши серверы баз данных Oracle, и мы обычно оставляем 2 ГБ подкачки для вещей, на которые указывает Эдди выше - незанятые процессы будут перемещены на подкачку в зависимости от ваших настроек подкачки.
источник
Казалось бы, неподвластный времени вопрос. Хорошие люди из SlashDot обсуждали это некоторое время назад. Проверьте, что они должны были сказать:
источник
См. Ответ. Сколько места SWAP в системе с высокой памятью? для некоторого руководства, хотя ваш вопрос носит более общий характер. Мнения по этому вопросу сильно различаются, но, как правило, люди с 1 ГБ ОЗУ или более, похоже, либо работают без обмена, либо с 1x памяти в качестве обмена.
Даже если вы не планируете использовать так много оперативной памяти, что это приведет к обмену, есть смысл иметь как минимум 1x памяти как swap: это позволяет операционной системе заменять некоторые вещи, которые не предполагается использовать немедленно, чтобы он мог вместо этого использовать эту память, например, для дискового или буфера ввода-вывода.
источник
Если вы ожидаете, что ваша система будет в состоянии гибернации, а затем возобновит успешно :-), вероятно, лучше выделить больше места для раздела подкачки, чем объем физической памяти.
источник
Мой VPS-провайдер даже не предоставляет пространство подкачки для серверов, и мой работает без него.
Большинство серверов, которые я вижу ежедневно на работе, также не имеют подкачки.
редактировать
Однако - если вы работаете с JVM, убедитесь, что у вас по крайней мере столько же места подкачки, сколько вы когда-либо установите
-Xmx
из-за известной проблемы с JVM.Короче говоря, когда JVM требуется больше памяти, чем она использует в настоящее время (но все еще не использует ее
Xmx
), она:Это означает, что если вы поменяете меньше, чем ваш
Xmx
, он может потерпеть неудачу.Цитировать отчет об ошибке
Я стараюсь соблюдать осторожность при работе с JVM и устанавливаю в swap равную физическую память.
источник
Учитывая скорость современных жестких дисков, большие свопы - это всего лишь приглашение к победе. Возможно, твердотельные накопители обратят эту тенденцию вспять, но с максимальной скоростью передачи данных, равной 300 МБ / с, замена на 2-4 ГБ займет некоторое время.
В старые времена (то есть: Linux 1.2, i386, SunOS 4.x), у вас могло быть 5-15 МБ запущенных процессов-демонов и где-то от 4-32 МБ ОЗУ, и поэтому демоны, которые были просто заблокированы, ожидали ввода-вывода O можно заменить без реального снижения производительности ... И они будут лучше, поскольку пользовательские программы могут иметь всего 2-3 МБ доступной оперативной памяти. Обмен имел большой смысл.
Сейчас в моей среде большинство серверов имеют большие нагрузки на одну память, и оперативная память может быть достаточно точно оценена ... Обмен на чрезвычайные ситуации, процессы запуска и так далее.
Исключение для ноутбуков и рабочих станций , которые могут спать. Многие ОС используют область подкачки для сохранения образа приостановки, и в этих случаях объем подкачки должен быть больше физической памяти. В Linux с suspend2 / tuxonice у вас должно быть 2xRAM в размере подкачки для поддержки suspend-to-disk.
источник
В наши дни, если вы используете сервер 32 ГБ или 64 ГБ, 4 ГБ подкачки по умолчанию - безопасная сумма. Все, что больше, чем это, излишне с таким большим количеством доступной физической памяти.
источник
В идеале вы вообще не будете использовать своп, а вещь с 2-кратной оперативной памятью - это то, что осталось от прошлых лет.
Если вы беспокоитесь об этом, я бы сделал что-то вроде:
Я думаю, что 16GB звучит слишком много, лично.
источник
В старые времена, когда вы хотели столько, сколько могли получить, потребление памяти в современных ядрах * nix осталось в прошлом. Старая поговорка была «2 раза твоя память». Между 2 ГБ или количеством места, которое машина имеет в оперативной памяти в этот день, и возраст приблизит вас к тому, что вам нужно.
источник
Своп также используется для хранения дампов после паники ядра. Если вы заинтересованы в анализе этих дампов и не указали другое место назначения дампов, ваш своп должен быть как минимум таким же большим, как и ваша RAM.
источник
Не существует единого алгоритма, который бы указывал, какой объем свопа вам нужен. На практике вам нужно поставить свою систему под наибольшую нагрузку, которую вы планируете поддерживать, и выяснить, сколько ресурсов она фактически использует. Установите свой файл подкачки соответственно.
Что касается физической памяти, вы должны поставить свою систему под фактическую «круизную» нагрузку, которую вы ожидаете обрабатывать, и покупать соответственно. Для систем с низкой задержкой вам вообще не следует менять местами внутри круизной нагрузки (это не то же самое, что не выделять или даже не использовать своп). Небольшое количество свопов может произойти из-за малоиспользуемых системных утилит, выполняющих ведение домашнего хозяйства. Но, по большому счету, вы должны иметь как можно меньший обмен.
Конечно, вы можете обменять производительность на более низкую цену.
источник