28. února 2005, 00.00 | Víte jak funguje správa paměti v Mac OS X? Chcete se více dozvědět o pojmech jako virtuální paměť a swapování? Tomuto tématu se budeme věnovat v dnešním článku a navíc si povíme, jak zjistit, kolik paměti přidat do vašeho stroje pro optimální výkon.
Dnešní článek je prvním ze dvou, popisující postup, jak zjistit kolik paměti ideálně potřebujete pro provoz aplikací na OS X, její nákup a instalaci. Instalaci budeme demonstrovat na dvou počítačích PowerBook G4, ale postup je obecný a nabídne cenné rady pro instalaci do jakéhokoli stroje od Apple. Autor bohužel doma nemá všechny varianty hardware od Apple (i když by chtěl), aby je mohl všechny odzkoušet a popsat.
Nejdříve si pojďme něco říct o tom, jak OS X pracuje s pamětí. Princip je stejný jako v jakémkoli jiném moderním operačním systému (což zahrnuje různé odrůdy Linuxu, Windows a samozřejmě OS X). OS X je postaven na BSD UNIXu a má implementován takzvaný systém virtuální paměti. To znamená, že operační systém je schopen simulovat podstatně více paměti, než jí doopravdy máte na desce. To dělá tak, že k dostupné fyzické paměti vytvoří prostor na disku, který používá jako operační paměť.
Jak to tedy funguje? OS X si rozdělí takto vytvořenou virtuální paměť na stránky o pevné velikosti, které postupně přiděluje jednotlivým procesům. Nejprve se systém snaží pro veškeré operace využívat dostupnou fyzickou paměť. Ve chvíli, kdy se volná fyzická paměť přiblíží kritické hranici, začne systém hledat stránky, které dlouho žádný proces nepoužil a postupně je přesouvá do paměti, co si vytvořil na disku. UNIXáci a Linuxáci tomuhle říkají swapování nebo také paging.
Pokud si později jiný proces vyžádá přístup ke stránce, která je ve swap prostoru, musí OS X načíst stránku z disku do paměti (což někdy může vyžadovat přesun stránek z paměti na disk). Přesunu stránek z paměti na disk se odborně říká page-out a přesunu stránek z disku zpět do paměti systému říká page-in. V každém systému běžně dochází k přesouvání stránek mezi diskem a pamětí i když máte dostatek fyzické paměti. Pokud váš systém často pracuje s minimem volné fyzické paměti, dochází k přesunům stránek tam a zpět často a ve velkém množství což výrazně snižuje výkon vašeho systému.
Snížení výkonu je způsobeno tím, že systém přesouvá stránky na disk a zpět což je časově výrazně náročnější než přístup do fyzické paměti nebo cache procesoru. Nejvýrazněji to poznáte pokud s OS X pracujete na systému s 256 MB nebo menším množství paměti. V závislosti na počtu otevřených aplikací a velikosti souborů se podobně může chovat stroj i s 512 MB či větším množství paměti. Všem zběhlým UNIXákům se omlouvám za zjednodušení výkladu správy paměti, ale myslím, že i tohle je na hranici stravitelnosti pro méně technické uživatele. Ony algoritmy pro správu paměti jsou podstatně složitější, než tento zjednodušený výklad. Ale nám tu jde o princip, ne detaily.
Jak tedy poznáte, jestli váš systém trpí chorobou zvanou nedostatek paměti? Tuhle sekci můžete přeskočit pokud máte jen 256 MB nebo méně, protože váš systém se zcela jistě nedá nazvat svižným a rozhodně mu neuškodí přidat paměť. My všichni ostatní budeme sledovat využití paměti při běžném provozu systému. Na pomoc si vezmeme volně dostupnou aplikaci MenuMeters. Ta vám pomůže zjistit, jak jste na tom s využitím paměti, volným prostorem a jaké množství swapování probíhá v systému. Po instalaci si otevřete nastavení MenuMeters v System Preferences a zapněte zobrazování obsazené, volné paměti a swapování - nastavení je na obrázku níže.
Pak pokračujte v normální práci a po nějakou dobu sledujte ukazatel MenuMeters. Tuhle aktivitu můžete provozovat i po několik dnů, abyste zjistili, kolik paměti budete potřebovat pro běžné použití nebo pro chvíle špičkové zátěže systému. Hlavní pro nás bude množství obsazené fyzické paměti, které je zobrazeno červeně a množství volné paměti, to je to zelené číslo. Pokud množství volné paměti klesne pod kritickou hranici, která je u systému s 256MB zhruba kolem 80MB, systém přejde do módu, kdy se snaží uvolnit co nejvíc paměti a přesunout nepoužívané stránky do swap prostoru. Interakce se systémem se výrazně zpomalí zvlášť při operacích jako je otevření nové aplikace, přepnutí mezi aplikacemi nebo při otevření nového souboru. Určitě si všimnete, že číslo, které se objevuje mezi oranžovou a modrou šipkou, které jsme doposud ignorovali, se zvyšuje a dost často ukazuje '1k+'. Tato hodnota ukazuje množství stránek přesouvaných mezi pamětí a diskem. Hodnota 1k+ znamená, že dochází k přesunu více než tisíce stránek za časový interval, po kterém se obnovuje hodnota v MenuMeters (v našem nastavení je to 10 sekund).
Pokud váš systém po dlouhou dobu zůstává v módu častého swapování, můžete se podívat kolik swap prostoru si systém alokoval. Klikněte na MenuMeters ukazatel paměti a koukněte se kolik swap prostoru je uvedeno na posledním řádku. To nám pomůže určit kolik paměti systém potřebuje. Ideálně je potřeba tolik paměti, kolik máte alokovaného swap prostoru (nebo víc, pokud si to můžete dovolit). Pro většinu z nás toto číslo bude 512MB nebo až 1GB. Tolik paměti je ideální pro vaše typické využití systému.
Pokud se cítíte jako hacker a nechcete instalovat MenuMeters, můžete stejné informace zjistit i v systému. Otevřete si aplikaci Terminal a spusťte příkaz 'vm_stat 10'. Tento příkaz vám v 10 sekundovém intervalu ukáže stav virtuální paměti. Pozor na matematiku - vm_stat ukazuje všechny hodnoty jako počet 4kB stránek. Také doporučuji pročíst man stránku pro vm_stat a článek o správě paměti na Apple Developer stránkách.
Takže už víme, že náš systém potřebuje paměť a určili jsme, kolik přibližně jí bude potřeba. Nyní se podíváme, jakou paměť už máme ve stroji a jestli máme volné sloty. Spusťte System Profiler a koukněte se na to, jak je dostupná paměť rozložená - záložka Memory. Paměť je buď pevně instalována na desce, jak je vidět na obrázku níže - slot DIMM0/BUILT-IN znázorňuje paměť pevně nainstalovanou na desce. Nebo je zastrčena ve slotu, který většinou akceptuje jeden typ paměti o různých kapacitách. System Profiler vám pomůže rozhodnout kolik a jakých modulů budete potřebovat. Pokud máte v systému například dva sloty, v jednom je 256 MB, druhý je volný a vyšlo vám, že potřebujete 1 GB paměti, tak máte možnost dokoupit 1 GB čip nebo koupit dva 512 MB čipy a odebrat 256 čip ze stroje. To pouze v případě, že oba sloty jsou výměnné a ne pevně uchycené na desce.
Pokud si nejste jisti, že rozumíte výpisu ze System Profileru, můžete si ověřit počet slotů buď v manuálu, který jste obdrželi s počítačem a nebo v prográmku Mactracker. Určitě vás potěší, že tento volně dostupný program běží na OS X, MacOS 9 a Windows XP. Nespoléhejte jen na manuál od Apple, abyste neudělali stejnou chybu jako já, kdy jsem uvěřil údajům v manuálu Apple a hledal jsem paměť PC2700 DDR266 200 pin SO-DIMM - zkuste to, nenajdete ji. Jde o překlep a místo PC2700 tam mělo být PC2100. V Mactrackeru najděte svůj stroj a zobrazte si jeho popis. Na druhé záložce (RAM/Video) je uvedeno, kolik modulů a jaké paměti lze do stroje vložit (hned za Number of Sockets). Tento údaj si přesně opište, budete ho potřebovat při nákupu paměti.
Nákup paměti můžete uskutečnit u vašeho výhradního dodavatele Maců nebo u jakékoli další firmy, která nabízí typ paměti pro váš stroj. Při hledání v katalogu dejte pozor na typ paměti (např. PC2700 DDR333) a přesvědčte se, že čip, co zakupujete, má potřebný počet pinů. Stejný typ paměti se může vyrábět v několika modifikacích se 184 nebo 200 piny. Před samotným nákupem doporučuji prostudovat jaké podmínky prodeje daná firma poskytuje, zda lze paměť vrátit či vyměnit pokud nebude fungovat, zda vám dají jiný modul nebo vrátí peníze, jaká je záruka výrobce na paměť a jak probíhá případná reklamace. Také si podrobně prostudujte podmínky prodejce (drobné písmo), zvlášť pokud nakupujete v zahraničí nebo přes internet. Zahraniční obchody se nemusí řídit ustanoveními obchodního zákoníku a tak je důležité, abyste měli co největší flexibilitu v případě, že paměť nebude fungovat. Pozor, někteří prodejci v zahraničí umožňují vrácení paměti jen pokud kontaktujete jejich podporu prodeje a to třeba jen 15 dnů po nákupu. Pak se budete muset s reklamací obrátit na výrobce, což komplikuje celou transakci.
Snad vám dnešní díl pomohl najít tu správnou paměť pro váš stroj. V příštím díle se podíváme na postup instalace paměti na příkladu PowerBooku G4 12'' a 17''.