Яким має бути розмірний розділ?


10

кілька років я читав, що це гарна ідея створити розділ swap, що має подвійний простір моєї ОЗУ. чи діє воно і сьогодні? чи це вже не потрібно?

У мене є сервер з 8 Гб оперативної пам’яті, і мені потрібно створити розділ swap, і мені було цікаво, чи 16 GiB було занадто багато.


Відповіді:


11

У великих системах, 8 Гб фізичної оперативної пам’яті, ми зазвичай виділяємо 2 Гб свопу. Це завантажені сервери баз даних під управлінням Oracle або PostgreSQL. Протягом багатьох років я ніколи не бачив ударів свопів навіть під великим навантаженням. Велике навантаження становить приблизно від 100 до 150 користувачів, які роблять близько 10 000 зчитування SQL, і, можливо, 2500 пише в хвилину.

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

Як і Едді, каже вище, 1x фізична оперативна пам'ять є хорошим правилом для всього, що не перевищує 4 Гб. Я будую власні Linux-версії для великої компанії Fortune-500, і це зазвичай те, що ми робимо, і у нас не було жодних проблем протягом останніх 5 років, я консультувався з ними.

У великих системах: 64-бітовий Linux з 32 ГБ і 64 ГБ оперативної пам’яті, це наші сервери баз даних Oracle, і ми зазвичай зберігаємо 2 ГБ свопів для таких речей, як Едді вказує вище - непрацюючі процеси будуть переміщені для заміни залежно від налаштувань заміщення.


5

Начебто позачасове питання. Добрі люди на SlashDot обговорювали це деякий час тому. Перевірте, що вони мали сказати:

  • Дисковий простір не є проблемою для сучасних жорстких дисків, 16 Гб - це ще тривіальна кількість для сучасних накопичувачів.
  • Однак значний пробіл може бути проблемою у разі поганого управління пам’яттю:

Якщо я дивлюся фільм об'ємом 4 ГБ протягом 2 годин, багато менеджерів пам'яті вирішать, що спроба кешувати всі ці дані може бути хорошою справою. На півдорозі фільму буде подумано, що всі ці інші запущені програми не використовуються протягом години і їх можна безпечно замінити на користь кешування більшості файлів 4 Гб. Кінцевим результатом є те, що половина ваших програм заміняється після перегляду фільму, що призводить до млявої системи, яка копає по всьому файлу swap.

  • Зрештою, правильне рішення має виходити з вимог пам’яті, а не формул Ballpark:

Якщо у вас є [достатня кількість оперативної пам’яті для запуску програм, якими ви хочете користуватися щодня], то немає жодного приводу ніколи не використовувати swap.


3

Дивіться відповідь Скільки місця для SWAP у системі високої пам'яті? для вказівки, хоча ваше питання більш загальне. Думки щодо цього сильно різняться, але, як правило, люди з 1 Гб оперативної пам’яті або більше, здається, працюють або без своп, або з 1-мегаметрією як своп.

Навіть якщо ви не плануєте використовувати стільки оперативної пам’яті, щоб змусити відбутись заміни, є деяка цінність у тому, щоб мати принаймні 1xmemory як swap: це дозволяє операційній системі заміняти деякі речі, які не очікуються для використання негайно, щоб він міг замість цього використовувати цю пам'ять для дискових або IO-буферів.


3

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


3

Мій постачальник VPS навіть не надає місця для заміни серверів, і мій працює без проблем.

Більшість серверів, яких я бачу щодня на роботі, також не змінюються свопом.

Редагувати

Однак - якщо ви використовуєте JVM, переконайтеся, що у вас є принаймні стільки місця для обміну, скільки ви коли-небудь встановите -Xmxчерез відому проблему з JVM.

Коротше кажучи, коли JVM потребує більше пам’яті, ніж зараз використовується (але все ще не потрапив Xmx), він:

  • поміняється на диск
  • виділяє нову пам’ять
  • зчитує себе в оперативній пам'яті

Це означає, що якщо ви поміняєте своп менше, ніж ваш Xmx, він може вийти з ладу.

Цитувати звіт про помилку

Найкраще зробити це - збільшити розмір заміни на машинах, які зіткнулися з цією помилкою.

Я намагаюся захистити його безпечно під час роботи з JVM і встановити swap на рівну фізичну пам'ять.


2

Враховуючи швидкість сучасних жорстких дисків, великі свопи - це лише запрошення до молотіння. Можливо, SSD змінить цю тенденцію, але, мабуть, максимальна швидкість передачі диска 300 Мб / с, обмін на 2-4 ГБ зайнять непоганий час.

У старі часи (тобто: Linux 1.2, i386, SunOS 4.x) у вас було б, можливо, 5-15 Мбайт демон-процесів, що працюють, і десь від 4-32 Мб оперативної пам’яті, і так демони, що були просто заблоковані в очікуванні I / O може бути замінено без реальної хіти продуктивності ... І вони краще, оскільки користувацькі програми можуть мати лише 2-3 Мб оперативної пам’яті. Обмін мав багато сенсу.

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

Виняток для ноутбуків і робочих станцій , які можуть спати. Багато ОС використовуватимуть область swap для збереження призупиненого зображення, і в цих випадках своп повинен бути більшим, ніж фізична пам'ять. В Linux з suspend2 / tuxonice у вас повинен бути розмір 2xRAM розміру для заміни для підтримки призупинення на диск.


За старих часів система V 3.2 і раніше використовували своп розміру оперативної пам'яті. Більше менше було зламано і більше було витрачено даремно, оскільки це було не настільки складною системою віртуальної пам'яті, як BSD.
kmarsh

2

У ці дні, якщо ви використовуєте 32 ГБ або 64 ГБ сервера, 4 Гб свопу за замовчуванням - це безпечна сума. Все, що є більшим за це, є надмірним, оскільки доступна стільки фізичної оперативної пам’яті.


1

В ідеалі ви взагалі не будете використовувати своп, а річ 2x ОЗУ - це дійсно щось, що залишилося з минулих років.

Якщо ви турбуєтесь про це, я б зробив щось на кшталт:

Max Memory Requirement - Physical Ram = Swap

Я думаю, що 16 Гб здається занадто великим, особисто.


1

За старих часів ви хотіли стільки, скільки могли отримати, споживання пам'яті в сучасних * nix ядрах - це минуле. Стара приказка була "2x ваша пам'ять". Між 2 Гб або кількість місця, яке машина має в таран в цей день і вік, приведе вас близько до місця, де вам потрібно бути.


1

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


0

Не існує єдиного алгоритму, який підкаже, скільки вам потрібно замінити. На практиці вам потрібно поставити вашу систему під найбільше навантаження, яке ви плануєте підтримувати, і з’ясувати, який ресурс вона насправді використовує. Встановіть відповідний файл відповідно.

Для фізичної оперативної пам’яті слід поставити вашу систему під фактичне «круїзне» навантаження, яке ви очікуєте обробляти, і придбати відповідно. У системах із низьким рівнем затримки вам взагалі не слід проводити обмін всередині вашого круїзного вантажу (це не те саме, що ви не виділяєте своп або навіть не користуєтесь.) Невелика кількість заміни може статися через мало використовувані утиліти системи, що виконують домашній догляд , але, за великим рахунком, ви повинні мати якомога менше обмінів.

Звичайно, ви можете торгувати продуктивністю за нижчу ціну.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.