Вы будете в порядке даже с 1 ГБ (и, вероятно, меньше) свопа. Мой рабочий компьютер обычно использует не более 140-150 МБ. Для этого достаточно гигабайта.
Если вы не выполняете вычисления задач, для которых требуются наборы данных в сотнях гигабайт и (это важно!) Доступ к данным осуществляется более или менее однократно, вы никогда не захотите иметь подкачку намного больше этой. Но опять же, простое отображение памяти в файле данных одинаково хорошо работает для этого приложения.
Но больше обмена помогает больше, верно? Больше всего всегда лучше!
Подумайте, как изменится обмен, скажем, на 16 ГБ (или подумайте о 64 ГБ). Если вы никогда не используете эти 16GiB, вы могли бы также не отложить их в первую очередь. Но если вы делаете используете их, что произойдет? Диск по сравнению с основной памятью работает очень медленно. Даже с твердотельным накопителем SATA-600 передача 16 ГБ занимает от 30 до 40 секунд и в 2–4 раза дольше в некоторых других конфигурациях.
Теперь кто-то неизбежно будет возражать, что вы, скорее, просматриваете и выводите дюжину или около того 4-килобайтных страниц, а не 16-гигабайтных за один раз. Хотя это и правда, суть все же остается. Если вам нужно только поменять местами пару страниц, вам не нужен 16-гигабайтный своп, но если вам нужен 16-гигабайтный своп, то вы тоже собираетесь их перенести (так или иначе).
Теоретически, 99,9% всех пользователей могут даже использовать машину 64 ГБ (или любую машину 8+ ГиБ) без какой-либо подкачки и, скорее всего, никогда не заметят, что чего-то не хватает. Однако это не рекомендуется.
Во-первых, это неоптимально, поскольку операционная система имеет меньше вариантов того, что она может отбросить, когда у нее заканчивается физическая память. Это может сделать две вещи: заменить что-то, что не используется, или выбросить страницы из буферного кэша. Если у вас нет свопа, он может сделать только одну вещь. Выбрасывание страниц из буферного кэша безвредно, но может заметно повлиять на производительность.
Во-вторых, частные анонимные сопоставления могут просто потерпеть неудачу, если нет обмена. Обычно этого не происходит, но, в конце концов, когда физической памяти недостаточно для их удовлетворения, и нет подкачки, операционная система имеет только один из этих вариантов, кроме ... В-
третьих, страшный убийца OOM может сработать Это означает, что более или менее случайный процесс может быть убит. Нет, спасибо. Это не то, что вы хотите, чтобы происходило.
С учетом сказанного, такой совет, как вам нужен обмен X раз, когда объем установленной оперативной памяти исходит от людей, которые повторяют то, что они слышали (и не понимали!), От кого-то, кто повторял то, что они слышали (и не понимали!) Десятилетия тому назад.
Правило «используй в 2 раза больше своей оперативной памяти» было простым в запоминании эмпирическим правилом в 1980-х и 1990-х годах, оно никогда не было «золотой истиной» (просто то, что работало нормально для большинства пользователей), и в настоящее время оно не применяется вообще ,
У вас должно быть разумное количество свопа, которое вы легко можете себе позволить (скажем, гигабайт), чтобы ОС могла выводить некоторые устаревшие данные, и поэтому мир не сразу заканчивается, когда вы однажды попросите немного больше памяти. Но это все.
mmap
страниц рабочего набора. Тогда сумма вашего свопа будет именно той, которая вам нужна для вашего процесса.