Forget about the old pagefile, Windows 10 memory compression is here.
Memory compression nu e ceva chiar atat de nou si am vazut tehnica asta folosita si in alte produse, nu numai Windows cu mult inainte de Windows 10. De fapt in Windows totul a inceput cu Windows 7 si Ready Boost. Chestia e ca tehnologia s-a maturizat si modul in care functioneaza Memory Manager-ul in Windows s-a schimbat treptat, compresia a inceput sa fie folosita din ce in ce mai agresiv, iar utilizarea page file-ului s-a diminuat semnificativ.
Tineti minte ca parca din cand in cand vine cate o versiune de Windows care ruleaza mai rapid decat vechea versiune, pe acelasi hardware? Ei bine, genul asta de optimizari fac posibila aceasta crestere de performanta. Si mi se pare foarte important sa stim cum evolueaza tehnologia si cum noile sisteme de operare folosesc resursele hardware.
Dupa cum am spus, nu este ceva nou doar ca Microsoft a implementat treptat aceasta tehnologie si parca abia acum in Windows 10 se vad cu adevarat beneficiile. Pe scurt, ce se intampla cu paginile de memorie nefolosite ce apartin unui proces? Memory Managerul face o inspectie, le trece pe un Modified List si in momentul in care are timp si resurse le trimite intr-o noua locatie numita Compression Store. Dupa cum ati ghicit, acest Compression Store se afla in memorie, deci toate operatiunile de read/write sunt incredibil de rapide. Ganditi-va ca a preluat rolul pagefile-ului, dar in RAM si pe deasupra mai este si comprimat, adica ocupa mult mai putin spatiu.
In continuare mai exista si pagefile-ul normal, si cu toata compresia din memorie se poate ajunge la situatii cand resursele sunt atat de limitate incat nu mai exista loc in RAM. In cazul asta datele din compression store pot ajunge in page file-ul de pe disk, dar tot comprimate, adica mult mai putine operatiuni de I/O cu disk-ul.
Nota: In realitate e ceva mai complicat de atat si se intampla mult mai multe lucruri, dar sper ca am reusit sa rezum esentialul (nu cred ca intereseaza pe nimeni ca pot exista mai multe compression store-uri sau ca si paginile de memorie ale compression store-ului pot ajunge in modified list).
Iar daca nu ati observat in ultimele build-uri de Windows cand va uitati in task manager gasiti si o referinta la “compressed”:
Deci ce vedeti ca fiind in use, reprezinta memoria folosita activ de procese si drivere, plus ce se afla in compression store. Iar daca va duceti cu mouse-ul pe zona folosita de memorie din grafic veti vedea si cat anume din acea valoare este reprezentata de compression store. Pana la anumite builduri de Windows 10, in task manager, in lista de procese exista “System and compressed memory” si toata lumea tipa ca de ce “System” ocupa atat de multa memorie si cauta moduri sa dezactiveze acest mod de operare. Ce pot sa spun? Tehnici de cartier, de aprozar, pentru cei ce nu inteleg schimbarile din noul OS. “System” parea ca ocupa atat de mult pentru ca acel Compression Store rula in contextul System .
Din Windows 10 Anniversary Edition, lucrurile s-au schimbat legat de modul in care e afisata informatia in Task Manager iar datele despre Compression Store nu le mai vedeti in lista de procese. In schimb puteti rula din Powershell urmatoarea comanda:
Get-Process –Name “Memory compression”
Normal, valoarea de aici de la Working Set (WS) trebuie sa corespunda cu ce vedeti mai sus in interfata grafica din Task Manager. Doar ca eu am rulat comanda la ceva timp dupa ce am facut screenshot-ul de mai sus si datele s-au schimbat semnificativ.
Una peste alta, toate chestiile astea combinate aduc un plus enorm de performanta sistemului si nu mai e doar marketing ci se vede in lucrul de zi cu zi cand folosesti un astfel de OS.
Daca ma intrebati de Windows Server 2016, din ce am observat eu pana acum, Memory Compression nu este folosit si nici nu am gasit nimic pana acum despre viitorul acestei functionalitati in Windows Server. Cred ca totusi este doar o problema de timp pana cand tehnologia se va roda putin si abia apoi o vom vedea la lucru si pe platformele de tip server.