A következő címkéjű bejegyzések mutatása: memória. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: memória. Összes bejegyzés megjelenítése

2011. május 5., csütörtök

Memória upgrade 8GB-ra

Kivételesen egy rövid történetet osztok meg, leginkább azért, hogy a megörökítsem ennek a történelmi lépésnek az okait, megoldását és eredményét. Ha olvastad az elmúlt hónapok bejegyzéseit, akkor nagyjából képben vagy, hogy erősen használom a Virtualbox virtualizációs megoldását. Az okok egyszerűek
  • így egymástól elszeparáltan tudom tartani az egymáshoz nem illő fejlesztői és support környezeteket
  • sandbox-nak és tesztelési környezetek ki vannak alakítva (több oprendszeren)
  • könnyen, gyorsan menthető, átadható másnak
  • stb.
Mindezt teszem egy HP Compaq 8510w notebook-on, amin Win7 Pro 64bit fut és 4 GB RAM-mal áldotta meg a gyártósor. A problémák itt jelentkeztek az elmúlt hetekben. A gépben egy Core 2 Duo processzor fűti a szobát 2.4GHz-en, és azt kell, hogy mondjam, hogy gond nélkül kezel akár 2 futó virtuális gépet is párhuzamosan. Ami kevésnek bizonyul ilyenkor, az a memória. Gyorsan be is vágom ide az erre vonatkozó resource monitor által mutatott állást - amit a Win7 produkál - mindenféle extra futó alkalmazás nélkül:


Az ábrában található értékek több hete futó (csak sleep-elni szoktam) gép memóriahasználatát mutatják. Mint látszik vezet a svchost és nyomban mögötte ballag a skype. (itt azért erős leszek: bzmg, 150MB egy taskbarra lehúzott nyugalmi állapotban levő, éppen különösen semmit nem csináló alkalmazás memóriafoglalása??? He?) Ami érdekes a képen az a legalsó sor, ami így néz ki némi magyarázattal:
  • Installed: 4096 MB - ez rendben van, tényleg ennyi az ennyi
  • Hardware reserved: 65MB - mondhatnám na bumm, ha ennyi kell neki, hát ennyi kell neki
  • In use: 2121 MB - na ezt egy kicsit túlzásnak érzem, de mint mondtam, ez alapvetően egy fejlesztő gép, mindenféle adatbázis és webszerverrel, kommunikációs progival, vírusirtóval, meg egy igen nagy és gyors operációs rendszerrel.
  • Modified: 59MB - ez olyan memória, amit először diszkre kell írni, és csak utána lehet felszabadítani - nem sok, sosem volt sok.
  • Cached/Standby: na itt a dolog rákfenéje. Ez olyan lefoglalt, használt memória, ahova a Win7 betárolja azokat az állományokat, kódrészleteket, amiket a felhasználó és a processek gyakran töltenek ki-be, de éppen nincsenek használatban. Ez egy ritka hasznos találmány, ettől lesz gyors a rendszer, ettől indulnak a gyakran használt alkalmazások pikk-pakk. A mérete viszont nem kicsi. Mint a lenti sorban látszik ezt a memóriát a Win7, mint available - tehát, mint elérhető memóriát aposztrofálja, hiszen ha bármilyen processznek memóriára van szüksége és az nagyobb, mint a Free-vel jelzett terület, úgy ebből a részből ad neki, úgy, hogy felszabadít annyi helyet, amennyi csak szükséges.
A fenti memória eloszlából adódóan, ha elindítunk egy virtuális gépet, amelyhez hozzárendeltünk 1024 MB memóriát a következők fognak történni:
  • Virtuális gép elindul, memória lefoglal (itt tegyük hozzá, hogy a virtuális gép annyi memóriát foglal csak le a fizikai memóriából, amit valóban használ, tehát nyugodtan deklarálhatunk akár 2GB memóriát is neki, ha az csak 400MB-t eszik, akkor annyi is lesz lefoglalva). Ha WinXP-t futtatok, az nem szokott megállni 600MB alatt, ezért tud akár két virtuális gép egymás mellett dolgozni, hiszen a fenti ábrából jól látszik, hogy kb. 1.8GB elérhető memóriával tudok gazdálkodni.
  • Mivel nincs elegendő free memória, a Windows eldobálja a cache tartalmát, a futó processek nem aktív memóriáját kitolja a host gép virtuális memóriájába, tehát diszkre.
  • Minden megy, mint a karikacsapás. És valóban, a gépek gyorsak, működnek.
  • És itt jön, az, ami az őrületbe kergetett. Amikor bezárom a virtuális gépet, a Windows észreveszi, hogy felszabadult egy rakás memória, ezért elkezdi visszatölteni a cache-elendő állományokat. Ez természetesen intenzív diszkművelettel jár, ami mint tudjuk az egyik legszűkebb keresztmetszet egy gép működésében. Ez a művelet azt okozta, hogy bár a virtuális gépem szaladt, a host rendszer a kilépés után legalább 1-2 percig használhatatlanság közelébe lassult, hiszen egyszerre cache-lt, egyszerre szedte elő a virtuális memóriába tárolt adatokat és egyszerre próbált valamilyen alkamazást betölteni, aminek egy darabkája sem volt már a cache-ben. Mindhárom eljárás diszket használt, eredmény: hátra- és/vagy kardbadőlés.
Elhatároztam, hogy véget vetek ennek az áldatlan állapotnak, és mivel a 8510w a HP egyik csúcs business gépének számított megjelenésekor, így támogatja, hogy mindkét bankban 4-4 GB SODIMM memória foglaljon helyet. (azt megemlíteném, hogy a leírás szerint nincs így, és a HP azóta sem javította - viszont a 8710w, ami ugyanez a hardware csak 17-es monitorral, ott már jól szerepelt és ez is volt a valószínű, valamint a fórumokban is ezt írták). Első kudarc: Magyarországon beszerezni egy 2 éves PC2-5300 200-PIN DDR2 667MHz memóriát, mint kiderült lehetetlen. Egyetlen helyen találtam, darabját kb. 40 ezer forintért, de ott sem volt raktáron. Megoldás: google: "Memory upgrade 8GB HP 8510w". Természetesen találtam az USA-ban, kis levelezés árán hajlandók voltak el is küldeni balkániába, miután elutaltam nekik az összeget, elküdltem a hitelkártya fotóját és kitöltöttem valami marhára szükséges dokumentumot kézzel és szkennelve elküldtem nekik. Lényegében megértem, balkánia az balkánia. Az ára a 2db 4GB modulnak szállítással együtt 31 ezer kemény magyar forint. 3 napon belül meg is érkezett, vám persze elkapta (mondjuk én is elkaptam volna, ha a cucc egy PRO MEMORY UPGRADE feliratú piros dobozban jön..) + 9 rugó kifizet, doboz feltép és meglepődés. A várt 667-es memória helyett 2 db 4GB-s 800-as memória érkezett. Nagylevegő, felkészülés a BIOS 3 csipogására, win7 boot failure-re, kékhalálra, lakástűzre. De nem. Notebook egyet csippan, Windows bootol (egy hangyányit sem gyorsabban, mint eddig), login, hurrá. Persze még ekkor is volt némi bizonytalanság, hogyha megnyitom a System abalkot, mit fogok találni, 4GB vagy 8GB? 8GB. Resource monitor képe alant:


Ez a restart utáni állapot, mint látható szinte minden megegyezik az előzőekkel, annyi különbséggel, hogy a free memória az 4GB felett van. Tapasztalatok:
  • a rendszer fikarcnyit sem gyorsabb, mint volt
  • a winyó viszont szinte már sohasem villog munka közben, hozzáteszem jelen pillanatban a cache-lt cuccok mérete 2.2GB, viszont nem nő.
  • a virtuális memóriát visszavettem az ajánlott 12GB!-ról 4GB-ra, hiszen most van hely a fizikai memóriában, használja azt
  • ami még várható: állítólag a standby time csökken, hiszen ezek a memóriák többet zabálnak - de ezt nem hiszem, valamint nem is szempont egy ilyen desktop jellemzőjű gépnél
Mára ennyi, lehet irigykedni :)

Update: Pár napos használat után a memória térkép a következőképpen néz ki:


A cached memória már 3.4 GB felé kanyarodik, kíváncsi vagyok, mikor éri el azt a szintet, amikor már nem nő tovább. Az általános tapasztalat viszont egyértelműen az, hogy a windows lényegesen kevesebbszer nyúl a merevlemezhez, napközben, nyitott alkalmazásokkal szinte sohasem villog a led. Végső konklúzióként: 8GB RAM az a memóriaméret, ahol a Windows "jól érzi magát" és ami egy általánosan zsúfolt fejlesztői gépbe napjainkban szükséges. Sajnos.

Update2:
Egy screenshot 3 egyidőben futó virtuális gépről: 2 winxp (az egyikben egy futó Borland Delphi, míg a másik egy support környezet) + 1 redhat ES. A processzor stabilan 25% környékén, az üres fizikai memória elhasználva, de a cache-lt memória még közel érintetlen. (azért a térképen látszik, hogy a Windows addig tölti a memóriát, amíg csak lehet, így egy hét után a cache-re foglalt memória több, mint 4GB!)



2011. január 8., szombat

Hasznos kis progik 1.

Az elmúlt hónapokban nem frissült a blog, mert életem kényelmessé vált, valamint senki sem macerált olyan feladatokkal, amikben előfordult volna technológiai kihívás (illetve egy azért akadt, a phatch telepítése 64 bites környezetre, de erről írni is fogok). Ezúttal három kis alkalmazást javaslok, amiből kettő a végre legális licence-szel használt Office 2010-hez, azon belül is az Outlook-hoz kapcsolódik, míg a harmadik egy kis rendszer optimalizáló:

1. Aki használja már az Outlook 2010-et, annak biztosan feltűnt, hogy végre teljesen jól kezeli a word, excel, stb. file preview-t a betekintő ablakban. Aki ezt csípi, annak itt a PDF preview handler, ami ugyanígy működik és ráadásul a Foxit Reader-re épül, ami egy ingyenes PDF mutatványozó és kb. 5 MB az Adobe Reader 80MB-ja helyett, valamint lényegesen gyorsabb is. (Ha csak most telepíted, akkor figyelj oda mit raksz fel vele, ami tökéletesen felesleges: google/yahoo toolbar, firefox preview, foxit toolbar).

2. Az új céges Exchange hozzáférés a következő problémákat okozta nálam: amikor egy profil alá telepítettem a már létező kb. 10 darab email fiókommal, akkor átvette az uralmat, felülírta a már beállított kategóriáimat, összevissza keverte a naptárakat, stb. Ráadásul a naptárbejegyzéseim, kontakjaim szinkronizálva vannak a Google fiókkal, az pedig a telefonnal és maga az Exchange fiók is ugyanígy, a naptárbejegyzések sikeresen duplikálódtak, majd négyszereződtek. Aki akarja vezesse le, de így volt. Ezért úgy gondoltam, hogy létrehozok egy új Exchange profilt és így tökéletesen elkülönülve tudom kezelni a magán és a céges dolgaimat. A profil létrehozása 1 perc, az okozott kár visszaállítása 45 perc. Erős hátradőlés és széles mosoly. 4 percig. Ekkor ugyanis a telefonom csipogott, hogy új céges levél érkezett, de nálam a privát profil volt épp nyitva. Gondoltam no para, nyitok egy új Outlook példányt az új profilnak. Ne ezt az Outlook konkrétan a XX. század eleje óta nem tudja (tehát sosem tudta)! Egyszerre csak egy példány futhat, egy adott profillal. Google. Sok google. Erre a problémára ad megoldást egy nyúlfarknyi alkalmazás, konkrétan az ExtraOutlook (47 KByte). Azért nem linkelem a készítőt, mert csak valahol a net archiv bugyraiban sikerült ráakadnom egy működő példányára. Az alkalmazás semmi mást nem tud, csupán annyit, hogy elindítja az Outlook egy példányát egy dedikált memória területen és így az képes több példányban is futni. A paraméterezése igen egyszerű, egy batch file-lal az alábbiak szerint megoldható:

ExtraOutlook.exe "c:\Utils\Documenting\Microsoft Office\Office14\Outlook.exe" /profile "ceges profil"

Azért, hogy ez a remek kis alkalmazás fennmaradjon, innen jól letölthető (figyelem, nem telepítő! másold be valahova, csinálj mellé egy batch file-t ami indítja minden profilodra és mehet a menet)

3. A fentiek használatával - többek között - az ember szembesül azzal, hogy bizony-bizony fogy a memória. Nem is kicsit. A futó alkalmazások mostanra akkora memória igénnyel bírnak, hogy az elképesztő. Erről a problémáról tudnék egy pár keresetlen szót írni, de úgy tűnik az alkalmazásfejlesztők belenyugodtak abba, hogy mostanra szinte korlátlan memória áll rendelkezésre a gépekben, minek is optimalizálni. Senki nem fog meggyőzni arról, hogy normális dolog, hogy egy Firefox 2 órányi használat után miért eszik 400MB! memóriát üresen (értsd nyitott lap nélkül), vagy a Skype-hoz miért van szükség 180MB memóriára, amikor semmi nem történik benne. Köszönjük ezeket persze a mostani ultraszép felületeknek is, amiben annyi grafikai elemet használnak fel, hogy az alkalmazás memória igényének felét ezek teszik ki és a többi csak a kód. A probléma persze az, hogyha több alkalmazásunk fut egyszerre, akkor ezek a "minimális" 50-100-200MB-ok szépen felhalmozódnak és az én esetemben a 4GB memóriából gond nélkül elúszik 2.5-3GB. Ami marad persze az elég, amíg az ember nem indít el egy virtuális gépet, egy photoshop-t, delphi-t, stb-t, amiknek jogosan nagy a memóriaigényük. (Nekem a win7 20% free memóriánál elkezd automatikusan és leküzdhetetlenül egy ablakot feldobálni, hogy lépjek ki valamiből mert fogy az erőforrás - ami esetemben még 800MB memóriát jelent). Erre a problémára ad jelentős megoldást egy aprócska alkalmazás, jelesül a Minimem.


Semmi mást nem tud, csak kiválaszthatók azok az erőforrást zabáló process-ek, amelyeknek "szóljon", hogy szabadítson fel memóriát (hogy ezt hogyan teszi, lusta voltam elolvasni - de gondolom erőszakkal ráveszi a windows-t a pagefile használatára) ha a rendszer szabad erőforrásai egy adott mérték alá süllyednek. Okosan a foreground alkalmazásokat nem bántja, viszont a többinek ha kell 5 percenként szól, hogy: He!. Mint a képen is látjátok, nekem jelen pillanatban jópár alkalmazásom fut párhuzamosan (ebből két outlook példány :) lásd előző bekezdés) és azért van még mit a tejbe-, illetve a processekbe aprítani.

Mára ennyi.