керування використанням пам'яті tmpfs


5

Будь-який спосіб обмежити обсяг оперативної пам'яті, що використовується tmpfs, не обмежуючи обмін своп?

Більшість документів говорить, що tmpfs ' size Опція обмежить загальний розмір tmpfs розділ а пізніше буде сказано, що цей простір використовується як RAM, так і SWAP. А потім говорить, що за замовчуванням половина вашого барана, тому що якщо він використовує всі оперативної пам'яті ви отримуєте OOM фатальні помилки. Це заплутано.

Я хотів би, щоб він використовував 1/4 мого барана, але до 3/4 своп, наприклад.

Відповіді:


7

Наскільки мені відомо, ви не можете контролювати, які частини віртуальної системи пам'яті (тобто RAM або swap) використовуються для tmpfs.

Тим не менш, це неправда, що створення великих tmpfs буде викликати OOM фатальні помилки. Ви можете створити tmpfs більше, ніж ваш загальний обсяг оперативної пам'яті + SWAP, тому що нічого з нього фактично не використовується, поки ви не помістите файли в tmpfs.

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

Коли ваші вимоги до tmpfs стають більшою частиною оперативної пам'яті, це вплине на ваш буферний кеш (речі перестануть кешуватися в оперативній пам'яті, оскільки це потрібно для файлів tmpfs). Оскільки попит зростає, то він почне входити в обмін. Зрештою, коли у вас немає буферного кешу, використовується ваш підкачка і ще більше запитів на пам'ять, потім і тільки тоді ви почнете отримувати помилки OOM.

Отже, насправді безпечно вказати великий tmpfs для /tmp до тих пір, поки у вас є пристойний обмін. Ви говорите, що ви будете добре з цим, використовуючи 25% оперативної пам'яті та 75% своп. У цьому випадку скажіть, що ви звичайно маєте 1G оперативної пам'яті та 2G підкачки. Я б встановив tmpfs, щоб бути 1G і поштовх підкачки трохи, скажімо в 3G.

Якщо ваша система знаходиться під тиском пам'яті, перше, що відбудеться, це те, що нечасто використовуються файли /tmp замість RAM буде підкріплено swap. Ви не втрачаєте всю свою оперативну пам'ять, роблячи tmpfs такого ж розміру, як RAM.


він каже "за замовчуванням 1/2 вашої пам'яті" і тут це означає пам'ять, що означає фізичну пам'ять. але він також може поширюватися на використання SWAP. Я хотів би мати не більше 400mb для /tmp, Але деякі дивні програми, як UNetBootin наполягає на завантаженні ISO образи в / TMP ... я woud не заперечую, що завантаження цих файлів, щоб помінятися на рідкісних випадках я використовую його ... але я не заперечував би залишити мої tmpfs бути в змозі З'їжте все своє барана весь час. і ось що size=4g зробив би
gcb

Вибачте, я неправильно зрозумів ваше запитання. Я буду суворо редагувати свою відповідь, оскільки вона в даний час в основному гірше, ніж марна. Наразі я не знаю, як зробити її корисною, на жаль.
grifferz

Дякую. Зараз я займаюся експериментами (в основному тестування припущень, які ви накреслили).
gcb

як вийшли тести (gcb?)
ck_

@ck_ Я отримав його роботу, щоб працювати, як я хотів (я міг би завантажити ISO, використовуючи liveUSB, а потім розширити ISO на іншому пристрої блоку, не втрачаючи всі мої оперативної пам'яті в процесі) Моя пам'ять не працює дуже добре, але я пам'ятаю, я знайшли інші прапори size у нових ядрах. Крім того, я не можу знайти потік на форумах debian ... Може бути, він був видалений (він почав з деяким божевільним чуваком скаржаться я був "перехресне розміщення" по пошті те ж питання тут, а також. Може бути, якийсь адміністратор не помітив була корисна дискусія після ідіотського аргументу). принесуть систему, якою я скористався, на наступний тиждень :)
gcb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.