Windows - - - - mark russinovich по-російськи

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

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

Обмеження пам'яті в ОС Windows Server
Особливості підтримки фізичної пам'яті в ОС Windows продиктовані обмеженнями обладнання, умовами ліцензування, характеристиками структур даних операційної системи і питаннями сумісності драйверів. На сторінці "Обмеження пам'яті в різних випусках ОС Windows" (англійською мовою) на веб-сайті MSDN викладені обмеження пам'яті, характерні для різних версій Windows і номерів SKU в рамках кожної версії.

Як свідчить утиліта Msinfo32, при завантаженні мого ноутбука під управлінням 32-розрядної версії Vista є 3,5 ГБ пам'яті з чотирьох встановлених.

Схему розподілу фізичної пам'яті можна дізнатися за допомогою службової програми Meminfo. написаної Алексом Іонеску (Alex Ionescu - він, до речі сказати, бере участь в підготовці п'ятого видання нашої з Девідом Соломоном (David Solomon) книги «Внутрішній устрій Windows»). Ось як виглядають вихідні дані програми Meminfo, запущеної з параметром -r, який дозволяє вивести на консоль діапазони фізичної пам'яті.

Зверніть увагу на два розриву між сторінками: від 9F0000 до 100000 і від DFE6D000 до FFFFFFFF (4 ГБ). Характерно, що при завантаженні того ж комп'ютера з 64-розрядної версії Vista всі 4 ГБ пам'яті відзначаються як доступні, а 500 МБ ОЗУ, що залишилися вище позначки 4 ГБ, задіюються наступним чином.

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

Навіть якщо система оснащена всього 2 ГБ фізичної пам'яті, може статися так, що частина її виявиться недоступною під керуванням 32-розрядної версії Windows. Причиною тому - набори мікросхем, практикуючі агресивне резервування областей пам'яті для пристроїв. На нашому спільному сімейному комп'ютері, купленому кілька місяців тому у великого виробника обладнання, є 1,97 ГБ з встановлених 2 ГБ фізичної пам'яті.

Коли пам'яті достатньо?
Незалежно від обсягу встановленої в системі пам'яті виникає питання: чи достатній цей обсяг? На жаль, однозначної відповіді на нього немає. Робити якісь висновки слід на основі регулярного спостереження за об'ємом «доступною» пам'яті системи, особливо якщо виконання завдань, що ставляться перед комп'ютером, вимагає інтенсивного споживання пам'яті. У термінах Windows доступною пам'яттю називається фізична пам'ять, не закріплена за процесом, ядром або драйвером пристрою. Очевидно, при необхідності доступна пам'ять може бути виділена процесу або системі. Природно, диспетчер пам'яті намагається використовувати доступну пам'ять якомога ефективніше - він організовує в ній файловий кеш (список очікування) і список обнулення сторінок пам'яті. Крім того, з'явилася в Windows Vista функція Superfetch проводить попереджувальну вибірку в список очікування і пріоритезацію даних і коду, віддаючи перевагу тим даними і коду, які з найбільшою ймовірністю будуть затребувані в найближчому майбутньому.

Дефіцит вільної пам'яті свідчить про те, що до фізичної пам'яті активно звертаються процеси або система. Якщо ж обсяг доступної пам'яті виявляється близьким до нуля протягом тривалого часу, значить, має сенс додати більше пам'яті. Існує кілька способів моніторингу доступної пам'яті. В ОС Windows Vista опосередковано відстежувати обсяг доступної пам'яті допомагає індикатор Physical Memory Usage History (Хронологія використання фізичної пам'яті) диспетчера задач. Його значення має бути постійно наближене до 100%. Ось як виглядає диспетчер задач в моєю настільною системі з об'ємом пам'яті 8 ГБ (до речі, чи не забагато у мене пам'яті ?!).

У всіх версіях ОС Windows графік доступної пам'яті, можна вивести за допомогою системного монітора. Для цього потрібно активувати лічильник Available Bytes (Доступно байт) з групи лічильників Memory performance (Продуктивність пам'яті).

З поточною величиною доступної пам'яті, можна ознайомитися в діалоговому вікні System Information (System Information) програми Process Explorer або (в попередніх Vista версіях ОС Windows) на сторінці Performance (Швидкодія) диспетчера задач.

Як подолати обмеження
З трьох основних ресурсів - процесора, пам'яті і дискової підсистеми - характеристики пам'яті, як правило, мають найбільший вплив на загальну продуктивність системи. Чим пам'яті більше, тим краще. Бути впевненими в тому, що весь потенціал встановленої пам'яті реалізований, вам допоможуть 64-розрядні версії ОС Windows. Вони, між іншим, надають ряд інших переваг у частині продуктивності, про які я розповім в одному з майбутніх випусків серії «Долаючи обмеження Windows», присвяченому віртуальної пам'яті і її обмеженням.

Схожі статті