Виртуалната памет при Windows

Основни понятия:
За виртуалната памет се използва процес, наречен странициране при поискване, за обмен на данни между оперативната памет и файловете за странициране. При инсталация на операционната система се създава файла Pagefile.sys на дяла, на който се инсталира операционната система. По подразбиране неговия обем е 1.5 пъти по-голям от физическата памет (RAM) .Основните настройки на виртуалната памет включват минимален размер (по-подразбиране 1.5 x RAM) , максимален размер (3 х RAM) и местоположение на Pagefile-а върху твърдия диск. (По-подразбиране дяла, който съдържа папката Windows.)
Pagefile-ът никога не намалява под стойността, записана в полето "intial size”. Неизползваното пространство остава свободно за Virtual Memory Manager (VMM).
Когато е необходимо Pagefile-ът нараства от неговия първоначален размер до максималния конфигуриран размер, показан в полето Maximum Size.
Pagefile-ът е файл, който се използва постоянно от операционната система, което прави дефрагментирането му по-стандартния начин невъзможно.
Само потребителите с административни права в системата могат да използват прозореца Peromance Options, за да конфигурират Pagefile-а!


1) Конфигуриране:
Можете да стигнете до настройките като отворите SystemProperties>>Advanced>>Perfomance>>Settings>>Advanced>>Change.

Публикувано изображение

Тук имаме представяне на устройствата, които могат да съдържат файла за странициране както и следните опции:
Custom Size: Ръчно задаваме стойностите в полетата intial size и maximum size.
System Managed size: Системата автоматично управлява файла за странициране.
No Paging File: Изключва използването на Pagefile за това устройство.
Конфигурирането става по следния начин:
а) Изберете устройството, което ще съдържа файла за странициране.
б) Запишете стойностите за минималния и максималния размер. (Не е задължително да използвате стандартния начин за изчисляване чрез множител. Може да зададете и по-малък Pagefile, ако знаете приблизително колко памет използват приложенията и задачите, които изпълнявате на системата, но вземете предвид факта, че ако файлът за странициране е твърде малък може да имате проблеми, включително нестабилност!)
в) Кликнете върху бутона SET и потвърдете с ОК.

2) Оптимизиране:
а) Ако вашата система има множество твърди дискове, създайте файл за странициране на всеки диск. Разпределянето на информация между множество файлове за странициране подобрява производителността, защото контролерът на твърдия диск може едновременно да чете от и да записва върху множество дискове.
б) Можете да повишите производителността, ако преместите файла за странициране от твърдия диск, който съдържа папката Windows. Така ще избегнете конкурентността между различните запитвания за четене и запис.
в) Голям брой потребители конфигурират Pagefile-а с фиксиран размер. Това става като се въведат еднакви стойности в полетата Intial size и Maximum size. По този начин се елиминира времето, необходимо за увеличаването на файла от първоначалния до максималния размер.

3) Поддръжка на виртуалната памет.
Както стана ясно Pagefile-ът не може да бъде дефрагментиран по стандартния начин за дефрагментация. Най-често се използва варианта, при който временно се изключва файла за странициране и устройството бива дефрагментирано по стандартната процедура. След което Pagefile-ът отново се поставя. Идеята на този метод е, че файловете са дефрагментирани и свободното дисково пространство е обединено от дефрагментатора. При поставянето отново на Pagefile-ът вече се намира в зона от непрекъснато дисково пространство. За да използвате този метод направете следното:
a) Премахнете Pagefile-а от устройството (Селектирате NoPaging File, Set, OK)
б) Рестартирайте машината. (Обърнете внимание, че ако системата има малко оперативна памет може да има проблеми при стартирането ѝ без Pagefile-а. Алтернативата е да се постави временно pagefile-а на друго устройство докато бъде дефрагментирано, устройството, съдържащо файла за странициране).
в) Пуснете дефрагментация на устройството, съдържащо Pagefile-а.
г) Поставете отново Pagefile-а. (Избирате Custom Size и въвеждате стойностите, Set, OK).

Втория начин е да се използва boot-time дефрагментация. В последните версии на почти всички дефрагментатори присъства тази функация. Sysinternals имат една малка програмка PageDefrag, която дефрагментира системните файлове и Pagefile-а. Тъй като тези файлове и файла за странициране се използват от системата дефрагментацията става преди операционната система да е заредена напълно. Можете да използвате PageDefrag по-следния начин:
а) Свалете програмата PageDefrag
б) Изпълнете файла pagedfrg.ехе.
в) Селектирайте опцията Defragment at next boot.
г) Рестартирайте машината.

Публикувано изображение

4) Лоши методи за оптимизация.
а) Преместването на Pagefile-а на друг дял на едно и също физическо устройство не повишава производителността, а дори я намалява тъй като главите на диска трябва да извършват повече операции при обработка на заявките към папката %Systemroot% и Pagefile когато те се намират на различни места на твърдия диск.
б) Добавянето на ConservativeSwapfileusage=1 познато от Windows 98 в System.ini не повишава производителността тъй като System.ini и Win.ini са създадени за обратна съвместимост към 16-битови приложения и нямат никакъв ефект върху настройките на Pagefile-а записани в системния регистър (Session Manager\Memory Management).
в) Поставянето на множество файлове за странициране на едно и също физическо устройство не прави използването на Pagefile-а по ефективно.
г) Спирането на Pagefile-а няма никакъв положителен ефект върху работата на системата дори може да доведе до моментална нестабилност на някои приложения и операционната система.

Автор: Лазар Канелов (l.kanelov)