Чому розміщення за замовчуванням 60? Який буде ефект, якщо я знижую значення заміщення для мого настільного ПК?


16

Я читав про заміщення на різних форумах і побачив кілька відео. Багато хто заявив, що для користувачів настільних ПК корисно знизити значення затишності нижче 60 (що за замовчуванням). Деякі заявили, що 60 - це добре для серверів. Точно чому мені було б краще її знизити і чому 60 добре для серверів? Я намагався шукати відповідь (я шукав тут, наприклад), але не зміг зрозуміти. ... Будь ласка, використовуйте прості умови: D


редагував питання. Це добре зараз?
Міна Майкл

Відповіді:


22

Ваше приміщення неправильне. Немає значення "підходить для серверів".

Swapiness - це кількість обмінів, які робляться, особливо, наскільки агресивно ви міняєте місцями. Для моїх серверів примхливість близька до нуля, оскільки я переконуюся, що у них достатньо пам'яті на все. Немає значення "найкраще для серверів". є 60, що за замовчуванням, а потім "ваше значення", що залежить від використання та наявної пам'яті.

Якщо у вас є сервери, які іноді використовують ЗАМЕЧАННЯ пам'яті, ви могли б мати їх вище, ніж за замовчуванням, але я б сказав, що деякі сервери (сервери баз даних?) Можуть захотіти, щоб вони були нижчими, ніж домашній комп'ютер.


ну добре: DI дотримувався цього unix.stackexchange.com/questions/88693/… . друга відповідь (та, яка наразі має 2 оновлення) сказала, що 60 може бути найбільш підходящим для серверів. ... І дозвольте мені зрозуміти це. Я повинен встановити високу свобідність, якщо я роблю процеси, які потребують великої пам'яті, і низькі, якщо я роблю кілька невеликих процесів?
Міна Майкл

(і залежно від специфіки мого комп’ютера) у мене є дует 2 ядра близько 2,9 ГГц з інтегрованою графікою до речі
Міна Майкл,

1
Неможливо сказати. Залежить від багатьох речей, як це також зазначено у цій відповіді -> деякі бази даних можуть робити кешування самостійно, а деякі - ні. Це залежить від програм та обладнання. За замовчуванням є найкраще, що ви можете зробити, це перевірити, наскільки ваша система працює в яких умовах. Як було сказано, я додав достатньо пам’яті до моїх систем, і я знаю, що їм потрібно, тому я можу мати свобідність близько 0. Але для здорових систем деякі обміни можуть бути хорошою справою. Тут немає простої поради щодо налаштування «Бог для всіх», прочитайте найкращу відповідь. Крім того : вона говорить «може бути», а не "є" в тому , що 2 - й відповідь
Nanne

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

ну тоді я сказав, що не можу зрозуміти, що я прочитав. Я досить слабкий щодо знань (і навіть мови, якщо чесно XD) ... тому мені просто потрібно продовжувати намагатися! добре дякую: D
Міна Майкл

8

Значення заміщення масштабується таким чином, що бентежить людей. Вони бачать, що його діапазон становить 0-100, тому вони думають про відсотки, коли дійсно ефективний мінімум становить близько 50.

Приблизно 60 означає не міняти місцями, поки ми не досягнемо 80% використання пам'яті, залишаючи 20% для кешу тощо. 50 означає чекати, поки у нас не закінчиться пам'ять. Нижчі значення означають те саме, але зі збільшенням агресивності у спробах звільнити пам’ять іншими способами.

Опишіть це досить добре на http://lwn.net/Articles/83588/


Що означають більш високі значення, наприклад, 80 або 100?
Jocull

5

Налаштування простоти - це зміна способу, яким Linux обчислює переваги / недоліки для заміни у певному сценарії. Висока заміщення не призведе до того, що система заміняється, коли вона не потребує, а низька заміщення, якщо ви не відключите заміну повністю, не завадить вашій системі заміни, коли це абсолютно необхідно.

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

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

Будь ласка, подивіться відповідь, яку я написав на дуже схоже запитання:

/ubuntu//a/184221/54256

Витяг:

Чому більшість людей рекомендують зменшити скупость до 10-20?

Оскільки більшість вважає, що заміна = погана, і якщо ви не зменшите свопп, система буде міняти місцями, коли цього насправді не потрібно. Жодне з них не є правдою. Люди пов'язують обмін із часом, коли їхня система забуває - однак, це в основному відбувається обмін, тому що система забивається, а не навпаки. Це правда, що є певні періоди, коли за заміну може бути помітна покарання за продуктивність, але система вже врахувала це, щоб прийняти рішення про обмін, і вирішила, що не робити цього, матиме більше загальне покарання в продуктивності або стабільності системи, яка може пізніше стають помітними. В цілому параметри за замовчуванням повинні призвести до найкращої загальної продуктивності та надійності. Я рекомендую залишити його за замовчуванням.

...

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

Однак це не робиться відповідно до певного обрізу. Це не так, як ви досягаєте певного відсотка розподілу, тоді Linux починає мінятися. Він має досить «нечіткий» алгоритм. Це враховує багато речей, які найкраще можна охарактеризувати «скільки тиску для розподілу пам’яті». Якщо є багато «тиску» для виділення нової пам’яті, то це збільшить шанси на те, що деякі будуть помінятися, щоб звільнити більше місця. Якщо "тиск" буде меншим, то це знизить ці шанси.

У вашій системі встановлено параметр "заміщення", який допоможе вам налаштувати, як обчислюється цей "тиск". Зазвичай це не рекомендується змінювати, і я, звичайно, ніколи не рекомендую вам це змінювати. Обмін загалом є дуже хорошою справою - будь-які випадкові покарання за ефективність повинні компенсуватися збільшенням загальної чутливості та стабільності системи для широкого кола завдань. Якщо ви зменшите свобідність, ви дозволяєте обсягу пам’яті кешу скоротитися трохи більше, ніж це було б інакше, навіть коли це дійсно може бути корисним. Тому ви ризикуєте загальмувати ваш комп'ютер загалом, оскільки кешу менше, в той час як пам'ять займає додатки, які навіть не використовують його. Чи це досить хороший компроміс для вирішення будь-якої конкретної проблеми, пов'язаної зі свопом.

Що відбувається, коли система замикається та сильно змінюється?

Багато часу люди будуть дивитись на свою систему, яка сильно молотить диск і використовує багато місця для обміну і звинувачує в цьому. Це неправильний підхід. Якщо заміна коли-небудь досягає цієї крайності, це означає, що ваша система надзвичайно мало пам’яті, а заміна - це єдине, що не дає їй випадкових збоїв або вбитих процесів. Без заміни в цій ситуації процеси будуть руйнуватися і загинути. Обмін є симптомом більш глибокої проблеми. У системі з достатньою кількістю пам’яті для всіх своїх завдань заміни лише гарантують, що пам’ять використовується ефективно, переносячи пам'ять у кеш на спокійні процеси там, де вона бачить, що варто. У системі, де свопінг невблаганно обмолочує диск, це не провина.

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

...

Але як своп може пришвидшити мою систему? Чи не поміняєш повільні речі?

Акт передачі даних з оперативної пам’яті в swap - це повільна операція, але вона приймається лише тоді, коли ядро ​​впевнене, що загальна вигода переважає це. Наприклад, якщо пам’ять вашої програми зросла до того, що у вас майже не залишилось кешу, і ваш ввід / вивід дуже неефективний через це, ви можете фактично отримати набагато більшу швидкість зі своєї системи, звільнивши трохи пам'яті, навіть після первинних витрат на обмін даними, щоб звільнити їх.

Не соромтеся читати весь пост на /ubuntu//a/184221/54256


0

Помітність повністю суперечить усім цим відповідям.

Справжня робота про заміщення описана у статті: https://gokulvasanblog.wordpress.com/2016/11/14/empathising-mammoths-mentality-a-study-on-linux-memory-management/

Неясність підтверджується заявою Ендрю Мортона: https://lwn.net/Articles/83593/

Я засуну пальці у вуха і заспіваю "la la la", поки люди не скажуть мені: "Я встановив свобідність до нуля, і це не зробило те, що я хотів це зробити".

Сподіваюся, що це корисно


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