Вам буде добре навіть із 1GiB (і, швидше за все,) свопом. Мій робочий комп'ютер зазвичай використовує не більше 140-150 МіБ. Гігабайт - це надмірне резервування для цього.
Якщо ви не зробите обчислювальні завдання, для яких потрібні набори даних у сотнях гігабайт і (цей важливий!) Доступ до даних здійснюється більш-менш одноразово, ви ніколи не захочете мати своп значно більший за нього. Але знову ж таки, просто відображення файлу пам'яті файлу даних працює однаково добре для цього додатка.
Але більше своп допомагає більше, правда? Більше всього завжди краще!
Поміркуйте, яка різниця зробить своп, скажімо, 16GiB (або подумайте про 64GiB). Якщо ви ніколи не використовуєте ці 16GiB, ви також не можете їх відкладати в першу чергу. Але якщо ви все-таки користуєтесь ними, що відбувається? Диск порівняно з основною пам'яттю надзвичайно повільний. Навіть із SSD SATA-600, передача 16GiB займає від 30 до 40 секунд, а в деяких інших конфігураціях - у 2-4 рази.
Тепер хтось неминуче заперечує проти того, що ви швидше залучаєте до сторінки десяток сторінок 4кіБ, а не 16GiB за один раз. Хоча це правда, справа все ж стоїть. Якщо вам потрібно поміняти та вимкнути лише пару сторінок, вам не потрібно 16GiB свопів, але якщо вам потрібні 16GiB свопів, ви також збираєтесь їх передати (так чи інакше).
Теоретично 99,9% всіх користувачів навіть могли користуватися машиною 64GiB (або будь-якою машиною 8 + GiB) без будь-якого свопу, і, швидше за все, ніколи не помічають, щоб щось не було. Однак це недоцільно.
По-перше, він є неоптимальним, оскільки в операційній системі є менше варіантів того, що вона може відкинути, коли у неї не вистачає фізичної пам'яті. Тут можна зробити дві речі: поміняти місцями те, що не використовується, або викинути сторінки з буфера кеша. Якщо у вас немає своп, це може зробити тільки одне. Викидання сторінок із кеш-пам'яті буфера нешкідливо, але це може помітно вплинути на продуктивність.
По-друге, приватні анонімні відображення можуть просто вийти з ладу, якщо не відбудеться своп. Це зазвичай не відбудеться, але з часом, коли не вистачає фізичної пам’яті, щоб задовольнити їх усіх, і немає підкачки, в операційній системі є лише такий вибір, за винятком ...
По-третє, жахливий вбивця МОМ може вдарити Що означає більш-менш випадковий процес вбивати. Ні, дякую. Це не те, що ти хочеш, щоб це відбувалося.
З урахуванням сказаного, такі поради, як вам потрібно поміняти X разів більше встановленої оперативної пам’яті, походять від людей, які повторюють щось, що вони чули (і не розуміли!) Від того, хто повторював щось почуте (і не розумів!) Десятиліття тому.
Правило "використовувати 2X свою оперативну пам'ять" було легко запам’ятати великим правилом у 1980-х та 1990-х, воно ніколи не було «золотою правдою» (просто щось, що спрацьовувало нормально для більшості користувачів), і воно не застосовується нині. .
У вас повинен бути розумний обмін, який ви легко можете собі дозволити (скажімо, гігабайт), так що ОС може викласти деякі несвіжі речі, і тому світ не одразу закінчується, коли ви просите трохи більше пам’яті. Але це все.
mmap
щоб виділити свої робочі сторінки. Тоді ваша кількість свопів буде точно тією, яка вам потрібна для вашого процесу.