Скільки потрібно замінити за 1 ГБ на 8 ТБ оперативної пам’яті 14.04 або вище?


14

Я збираюся встановити 64-бітну 14,04 на нову машину з чимось на зразок від 1 до, можливо, 128 ГБ оперативної пам’яті та ще більше оперативної пам’яті пізніше. Скільки місця потрібно виділити для розділу swap?

І особливо: ЧОМУ ті рекомендації щодо цих номерів?

(Жоден із існуючих відповідей тут і тут не пояснює жодного з причин і трохи датується, якщо ми подивимось на 1 ГБ або ОЗУ і вище)


6
Можливий дублікат у мене 16 Гб оперативної пам’яті. Чи потрібно мені обмінюватися на 32 ГБ? Є відповіді від 2017 року (або оновлено у 2017 році), тому він містить на даний час новіші рекомендації, ніж цей.
Мелебій

1
@Melebius: Я не згоден. Хоча це питання є більш новим, воно є більш загальним, ніж те, до якого ви намагаєтесь дублювати. Це запитання включає старіші, але зворотне не відповідає дійсності! ;-)
Fabby

1
@Fabby У такому випадку не слід інший позначати як дублікат цього?
Мелебій

1
@Melebius Якщо обидва питання рецензенти можуть використовувати як повторювані запитання інших питань у різних ситуаціях, тоді обидва питання можуть бути відкритими для вирішення цих різних ситуацій, оскільки обидва питання мають високу оцінку відповідей.
карел

2
@Melebius У нас вже було мета-дискусії на цю тему, і громада вирішила дозволити кожному виступити так, як є.
Fabby

Відповіді:


30

Коротка відповідь:

Установіть свій файл swap:

  • round(sqrt(RAM))якщо ви не використовуєте сплячку
  • RAM+round(sqrt(RAM))якщо ви все-таки використовуєте сплячку

Встановіть swappiness10 на робочому столі, але не на сервері!

Довга відповідь:

В минулому:

Правило, що застосовується протягом останніх 25 років, було як мінімум 1xRAM і максимум 2xRAM, так що ви бачите цитований весь час.

Цей мінімум був встановлений ще в кам'яну епоху, коли я був підлітком, а динозаври все ще блукали по Землі, і тому що оперативна пам’ять була просто занадто дорогою, і вам абсолютно потрібен цей обмінність для того, щоб досягти нічого.

Максимум було встановлено на той час через зменшення віддачі: просто надто повільно потрібно міняти стільки пам'яті, оскільки доступ до жорсткого диска в 1000 разів повільніше, ніж ОЗУ: хороший в екстреному випадку, але не дуже хороший для щоденного використання! У той час, коли у вас не вистачало місця для заміни, настав час додати більше оперативної пам’яті! (що досі справедливо).

Тепер:

  1. Якщо ви не використовуєте сплячий режим і ваша пам'ять перевищує 1GByte нове правило полягає в тому , round(sqrt(RAM))де RAM, очевидно , ваш розмір ОЗУ в ГБ і sqrtквадратний корінь. :-)

  2. Якщо ви використовуєте сплячку, вам потрібно мати можливість поміняти весь об'єм оперативної пам’яті + вже замінену оперативну пам’ять на диск, таким чином формула стає: RAM+round(sqrt(RAM))

  3. Правило зменшення віддачі досі зберігається максимумом, але якщо ви не перевіряєте фактичне використання, використання 2xRAM - це лише витрата дискового простору , тому не використовуйте максимум, якщо у вас не залишиться місця для обміну за допомогою інших методологій .

Все це разом дає вам таку таблицю: (останні 3 стовпчики, що позначають місця заміни)

    RAM   No hibernation    With Hibernation    Maximum
    1GB              1GB                 2GB        2GB
    2GB              1GB                 3GB        4GB
    3GB              2GB                 5GB        6GB
    4GB              2GB                 6GB        8GB
    5GB              2GB                 7GB       10GB
    6GB              2GB                 8GB       12GB
    8GB              3GB                11GB       16GB
   12GB              3GB                15GB       24GB
   16GB              4GB                20GB       32GB
   24GB              5GB                29GB       48GB
   32GB              6GB                38GB       64GB
   64GB              8GB                72GB      128GB
  128GB             11GB               139GB      256GB
  256GB             16GB               272GB      512GB
  512GB             23GB               535GB        1TB
    1TB             32GB              1056GB        2TB
    2TB             46GB              2094GB        4TB
    4TB             64GB              4160GB        8TB
    8TB             91GB              8283GB       16TB

Вище сказане - це лише велике правило; це не закон тяжіння!
Ви можете порушити це правило (на відміну від закону сили тяжіння), якщо ваш конкретний випадок використання інший!

Порада: завжди виділяйте SWAP на початку жорсткого диска, оскільки головки повинні менше рухатися на внутрішній стороні диска.
Так: На SSD, це вже не має значення, де ви знаходите область заміни, оскільки вони використовують квантове тунелювання замість рухомих головок, а сучасні SSD використовують усі свої комірки пам'яті (навіть нерозподілений простір) для запобігання квантової деградації.

Як перевірити, чи ваше використання swap відрізняється від "загального" правила:

Просто виконайте:

for szFile in /proc/*/status ; do 
  awk '/VmSwap|Name/{printf $2 "\t" $3}END{ print "" }' $szFile 
done | sort --key 2 --numeric --reverse | more

який дасть вам список усіх запущених програм, які розміщені (з тією, що використовує найбільше місця для обміну вгорі)

Якщо ви використовуєте більше кількох КБ: змініть розмір до мінімального, інакше не турбуйтеся ...

Якщо ви на сервері, перестаньте читати зараз: ви все налаштовані!


Якщо ви працюєте на настільному / ноутбуковому клієнті (а не на сервері), ви хочете, щоб ваш графічний інтерфейс був максимально чуйним і мінявся лише тоді, коли вам це потрібно . Ubuntu був оптимізований для раннього заміни для використання на сервері, але на своєму клієнті ви хочете, щоб редагування цієї величезної необмеженої картинки на 250 мегапікселів gimpбуло швидкою , тому встановлення swappinessзначення 10 не дозволить ядру занадто рано замінюватися, гарантуючи, що це не буде ' t помінятися занадто пізно:

Якщо у вас є sysctl.confфайл,

sudo nano /etc/sysctl.conf

АБО

Якщо у вас є sysctl.dкаталог, але немає sysctl.confфайлу, створіть новий файл:

sudo nano /etc/sysctl.d/35_swap.conf 

і в обох випадках додайте:

# change "swappiness" from default 60 to 10 
# (theoretically only swap when RAM usage reaches around 80 or 90 percent)
vm.swappiness = 10

до кінця файлу збережіть файл ( Ctrl+ XY+ Enterу нано) та виконайте:

sysctl --system

перезавантажити параметр або застосувати підхід Window $ і перезавантажити ... :-)


1
Спасибі. Що ви маєте на увазі під «зменшенням прибутку»? Якщо і оперативна пам'ять, і своп використовуються повністю, перезимувати неможливо, навіть якщо своп розміром 2 * ОЗУ, чи не так? (Оскільки в сплячку знадобиться розмір свопу для RAM + swap, що неможливо?)
Тім,

Так, але я ще ніколи цього не ставав ... (і я старий! Тому 2 * ОЗУ: Коли вся оперативна пам’ять поміняється, ви все ще можете перезимувати ...
Fabby

2
"Зменшується повернення" означає лише, що доступ до жорсткого диска в 1000 разів повільніше, ніж оперативна пам'ять, тому, якщо вам потрібно поміняти двічі оперативну пам’ять, ви померли від старості, перш ніж вона завершиться ... Це просто там, щоб перезимувати, коли ви ' знову обмінюємось ...
Fabby

1
@Fabby Це час перегляду резюме на оригінальне запитання: askubuntu.com/review/close/889454 . Дивіться коментар Yufenyuy Veyeh Dider під цим питанням.
карел

1
@mrkskwsnck: Це той самий автор ... ;-)
Fabby

6

Необхідність заміни

Заміна корисна з 3 причин:

  1. Видалення безладу з оперативної пам’яті. Зі статті на kernel.org:

    "Значна кількість сторінок, на які посилається процес на початку свого життя, може використовуватися лише для ініціалізації, а потім більше ніколи не використовується. Краще поміняти ці сторінки та створити більше дискових буферів, ніж залишати їх резидентними та невикористаними"

    Іншими словами, дані, що зберігаються в оперативній пам’яті, можуть бути корисними лише тоді, коли процес був запущений (як процес запуску), а потім просто перебувають там в оперативній пам’яті, захаращуючи простір, який можна використовувати для кращих цілей.

  2. Він розширює об'єм пам'яті, який можуть використовувати процеси. Це добре зрозуміло. Ви не хочете, щоб у системи не вистачало пам'яті та виходило з ладу через її відсутність. З цієї конкретної причини повинен існувати своп , який служить захисною ознакою.

  3. Гібернація: Коли комп'ютер перебуває в сплячому режимі, вміст оперативної пам’яті переходить на диск.

Сума заміни

Знаючи призначення для заміни та залежно від кількості оперативної пам’яті на вашому пристрої, ви можете вибрати розмір, який відповідає вашому призначенню. Існують не конкретні вказівки, а лише великі правила, якими ви можете скористатися, щоб змінити розмір свопу відповідно до вашої системи .

Наприклад, linux.com рекомендує:

Основне правило полягає в наступному: 1) для настільної системи використовуйте простір для заміни подвійної системної пам'яті, оскільки це дозволить запускати велику кількість програм (багато з яких можуть працювати в режимі очікування та легко змінюватись), більше оперативної пам’яті, доступної для активних додатків; 2) для сервера майте доступний менший об'єм заміни (скажімо, половину фізичної пам'яті), щоб мати певну гнучкість для заміни при необхідності, але стежте за обсягом використовуваного місця для заміни та при необхідності оновіть оперативну пам'ять; 3) для старих настільних машин (скажімо, лише 128 МБ) використовуйте стільки місця для обміну, скільки зможете зекономити, навіть до 1 Гб.

З особистого досвіду, ось що я б робив:

Враховуючи машину з 1 - 2 Гб, яка не потребує сплячого режиму та для випадкового використання, ви можете мати місця для обміну від 1 ГБ до 2 ГБ. Мій ПК з 14.04 Ubuntu має 1 Гб оперативної пам’яті та 2 Гб своп. Сума заміни ніколи не перетинає межу 800 Мб, і я використовую свій ПК лише для веб-пошуку та створення сценаріїв.

На ПК з об’ємом понад 2 ГБ і вам не потрібно впадати в сплячку, ви можете зберегти своп з 512 МБ до 1 Гб. У мене ноутбук з 15.04, який я ніколи не перезимував і не має файлу своп ( не розділу ) 512 Мб. Сама оперативна пам’ять становить 6 Гб, але ніколи не перетинає 2-3 ГБ. Знову: випадкове використання.

Космоскалібур і Фаббі вже вирішили зробити своп у випадку, якщо вам доведеться впасти в сплячку, тому я не буду занадто широко займатися цим. Моя скромна думка така:

Якщо ви плануєте перезимувати, вміст оперативної пам’яті потрібно буде замінити, отже, він вам потрібен як мінімум того ж розміру, що і ваша оперативна пам'ять.


:-) Лише помітив, що ти щось опублікував. Відредаговано та оновлено! (Тому що ist зараз - це хороша відповідь після моєї редакції!: D: D: D)
Fabby
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.