Що це означає, якщо я маю багато «неактивної» пам’яті наприкінці робочого дня?


21

Після робочого дня в моєму MacBook Pro під керуванням Mac OS X 10.6.5, Monitor Monitor показує, що більшість 8 Гб пам’яті мого комп’ютера є «неактивним», і лише крихітна плитка кругової діаграми - «Безкоштовна». Це навіть тоді, коли я закрив усі програми, працював лише Finder.

Що це означає? Чи "Неактивна" пам’ять зайнята чимось? Або він насправді все ще доступний для використання додатків? Спасибі.


Відповіді:


27

OS X, як і більшість сучасних операційних систем, використовує систему віртуальної пам'яті для управління пам'яттю. Серед інших цілей це дозволяє операційній системі ставитися до комп'ютера як до необмеженого пулу пам'яті. Щоб досягти цього, ОС видавить невикористані частини оперативної пам’яті на сховище дисків, відоме як swapfile .

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

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

Після використання всієї вашої пам’яті (вільної пам’яті 0) ОС буде виписувати неактивну пам’ять у swapfile, щоб звільнити більше місця в активній пам’яті.

Якщо програма перейде в режим завантаження до swapfile, і ви її повторно запустите, вона витягнеться із swapfile в активну пам'ять.

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

Вивчаючи, скільки пам’яті використовує ваш комп’ютер, ви насправді хочете звернути увагу в основному на Swap , який використовується , який вказує на розмір swapfile віртуальної пам’яті та Page ins , який повідомляє вам про те, як часто ОС доводиться витягувати пам'ять із swapfile в активну пам'ять.


2
Я вважаю, що Page outs є кращим показником використання свопів, ніж Page ins, тому що Page ins включає програми завантаження, а також завантаження з swapfile.
Гордон Девіссон

1
У "Моніторі діяльності" мій розмір ВМ перевищує 160 ГБ! Чи є на моєму комп’ютері якийсь свопфіл, який насправді такий великий ?!
HPY

1
@penyuan: Ні. Це теоретично, наскільки великий swapfile може досягти, але фактичний розмір swapfile позначений Swap, який використовується в Monitor Monitor.
mipadi

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

2
@deceze: неактивна пам’ять виходить на екран. Активна пам'ять переходить у неактивну, коли вона більше не потрібна. Я думаю, якщо у вас так мало пам’яті, що немає місця для неактивної пам’яті, активна пам’ять перейде в режим переходу безпосередньо на диск, але це особлива обставина. Дійсно, swapfile теоретично зростає нескінченно (доки немає більше місця на диску), але це теж є вкрай рідкісним явищем.
mipadi

9

Це, швидше за все, не є проблемою, і насправді це потенційно пришвидшити ваш комп’ютер.

Усі (більшість?) Операційних систем використовують кеш диска, який зберігає в пам'яті деякі недавно доступні файли, щоб можна було прискорити повторний доступ до цих файлів. Дисковий кеш в OS X має змінний розмір, і він буде відображатися як "Неактивна пам'ять".

Якщо будь-якій програмі потрібно більше пам’яті, OS X очистить частину кеш-диска (найменш використовувані файли), щоб забезпечити простір для запуску / розширення програми.

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

Якщо це фоновий процес або додаток, який розширюється в обсязі використання пам'яті (але його сторінки позначені неактивними), ви зможете це визначити, перевіривши, чи немає у програмі Activity Monitor будь-яких програм із дуже високим рівнем використання "Real Memory". Якщо там нічого очевидно великого (тобто загальна величина є далеко не 8 Гб), то це буде кеш файлів.

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

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


Неактивна пам'ять - це фактично оперативна пам’ять, а не пам'ять, яка була викладена на диск.
mipadi

3

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

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

Для офіційної документації з цього питання читайте це (і шукайте "неактивне").


Для запису мій MBP зараз каже: безкоштовно 58 Мб, провідний 239 Мб, активний 1,84 ГБ, неактивний 900 Мб - і система працює досить непогано.
Майкл Х.

1
Я знаходжу команду очищення, яку Бог відправляє. Маючи Photoshop + Firefox + Illustrator + Netbean + SmartGit, можна легко змусити сканування iMac 4Gb до смерті. Звичайно, Firefox є головним винуватцем, але якщо ви хочете трохи прискорити роботу, киньте Firefox та випустіть "чистку &" знову як нове
Антоній

2
На сторінці чоловіка Purge фактично йдеться про те, що він був написаний лише для очищення кеш-диска (не анонімного пам’яті: стек, купа чи копія при записі) для аналізу продуктивності (саме тому, що дисковий кеш прискорює роботу системи). Це не було записано для швидшого випуску, оскільки його виконання відбувається повільніше, ніж ядро ​​динамічно відновлює пам'ять, коли це потрібно. Якщо закрити додаток, повністю видаляються всі виділені пам’яті, і якщо ви очистите їх, це робить завантаження програми повільнішим, див. Linuxatemyram.com/play.html . Я здогадуюсь, що в чищенні є щось психологічне, настільки ж нав'язливе випорожнення сміття.
Яно

1

Починаючи з OS X 10.5, в MAC OS X є очевидні проблеми управління пам'яттю.

Нарешті мені вдалося відтворити проблемний сценарій, тому я запустив тест і записав екран у відео.

Проблема продуктивності MAC OS X Lion - порушене управління пам’яттю

Я запускаю команду tar + bzip, яка є основним файлом Unix, на великій кількості файлів зображень у моїй папці "Фотографії" Перед початком роботи я запускаю команду "очищення", щоб видалити неактивні / кешовані дані програми.

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

Коли вільна пам'ять впала нижче 100 Мб, я запустив деякі додатки, як-от Safari, iPhoto та MS Word, і ви можете побачити на відео, що для запуску програми потрібні навіть хвилини, коли зазвичай (коли є безкоштовна оперативна пам'ять), це знадобиться 3-5 секунд для завантаження.

Я запускаю той самий сценарій і ті ж команди на своєму вікні Linux Centos 6, проблем там немає! Використання пам'яті становить 10-20 Мб, проблем із кешем / буфером немає.

Управління пам'яттю повинно бути дуже порушено в Mac OS X!


1
Дещо з того, що ви описуєте, може лягти в основу іншого питання, але це не відповідь на це питання.
Грем Перрін

2
Я б сказав, що ваш опис вільної пам’яті, що швидко зменшується до встановленої точки, і система накопичує всю решту неактивних та провідних оперативної пам’яті як неактивних, є свідченням того, що система працює точно так, як задумано. Тільки тому, що управління пам’яттю в одній ОС відрізняється від іншої, не означає, що вона порушена і на одній. Вибір оптимізації завжди має нижчу сторону.
bmike

0

Ця дискусія має сенс лише в тому випадку, якщо твердження про те, що "ваш комп'ютер буде працювати швидше, коли вільної пам'яті буде мало" - були правдивими. Якщо мій Desktop Mac не підключений дивно, з тієї хвилини, коли вільна пам'ять (моніторинг) починає знижуватися, будь-яка програма, яку я запускаю в той час, починає затухати до того моменту, коли я нічого не можу зробити, поки вона не перейде до резервної копії сама по собі або моїм втручанням у вільну пам'ять. У мене є iMac 2118 (2006 або новішої версії), який максимум на 3 Гб оперативної пам’яті, тому я намагаюся керувати ним, коли можу, але це дуже засмучує. Будь-які думки?

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