Zoals de meeste beheerder inmiddels wel weten is Exchange zo ontwikkeld dat het “zo veel mogelijk geheugen” gebruikt als dat beschikbaar is. Met de mijns inziens mooie en goed werkende nieuwe Dynamic Memory techniek van Microsoft’s Hyper-V kan dat wel eens verkeerd uitpakken… Een beetje belaste Exchange 2010 Server zal als er geen dak is ingesteld rustig doorgaan met het opeten van geheugen van de Hyper-V host.

Dit grafiekje laat het memory gedrag van een net geboote Mailbox Role server zien. Als je nu alsnog denkt dat het een goed idee is: het is ook niet ondersteund door Microsoft (nee, op VMware mag het ook niet):

Some hypervisors have the ability to oversubscribe or dynamically adjust the amount of memory available to a specific guest machine based on the perceived utilization of memory in the guest machine as compared to the needs of other guest machines managed by the same hypervisor. This technology makes sense for workloads in which memory is needed for brief periods of time and then can be surrendered for other uses. However, it doesn’t make sense for workloads that are designed to use memory on an ongoing basis. Exchange, like many server applications with optimizations for performance that involve caching of data in memory, is susceptible to poor system performance and an unacceptable client experience if it doesn’t have full control over the memory allocated to the physical or virtual machine on which it is running.

Ik dacht dus dat de tool de MBR helemaal niet goed aanpaste, dus overgestapt op de “de grub methode”. Hiermee zet je GRUB in de MBR en verander je de pci waardes van de IDE controller op zo’n manier dat het een AHCI controller wordt. Probleem was eerst uitvinden welke PCI ID ik moest gebruiken. Met een Ubuntu Live CD geboot en GRUB geïnstalleerd op een 100MB partitie (ext2). Vervolgens herstart en gekeken. Met lspci komt er op adres

8086:1c01

een standaard IDE controller naar voren. Commando uitgevoerd:

setpci -d 8086:1c01 90.b=60

En daarna verandert de 1c01 in 3c01 en IDE verandert in SATA. Dat is mooi! Dacht ik. Vantevoren natuurlijk de start waardes in register op 0 gezet. Herstart: zelfde blauwe scherm. Lijkt toch een driver issue te zijn. Wat ik nu wil doen is GRUB installeren, een lege windows partitie aanmaken, AHCI met setpci aan forceren en een Windows setup starten. Zou niet moeilijk moeten zijn, maar de MacBook beschermt zichzelf behoorlijk. Grub herkent geen USB boot stick (wordt door bootcamp firmware uitgezet zo lijkt het. De CDROM speler is niet te benaderen en een 4GB partitie aanmaken, daar de ISO van Windows 7 naar uitpakken en deze bootable maken werkt ook niet: hangen. Dat laatste kan komen doordat het een logische partitie is geworden en de Microsoft bootloader alleen naar primaire partities kijkt. Dat is dus nog een mogelijk volgende stap. Nu is er een 100MB ext2 partitie (grub), een 100MB system reserved partitie en een “de rest partitie” voor windows zelf. De ext2 partitie opofferen en GRUB op NTFS draaien zodat ik een derde (iso/install) primaire partitie kan maken zou wel eens kunnen werken.

Dat wordt dan wel deel 3 van de blog :)

Na lang, veel wikken en wegen heb ik besloten een MacBook pro te nemen. Het is een 13,1″ i5 geworden met 8GB memory en een (nu nog wel, wanneer komt die Vertex 3 nou eindelijk) F120 SSD schijf van Corsair. De hardware specs zijn prima, het is een mooi design en het scherm is top.

Mijn bedoeling is uiteraard om naar Mac OS/X ook Windows te draaien, ik heb zoveel tooling en programma’s dat ik daar niet omheen kan (wil). Ik weet het, VMWare Fusion, Parallels Desktop, maar ik ben nogal een zeikerd en verwend: de look en feel is toch net anders. Gelukkig heeft Apple iets bedacht: Boot Camp. Dit stukje firmware zorgt er voor dat je een dual boot kunt draaien, Windows naast OS/X. Prima. Er is alleen 1 nadeel: op het moment dat je windows start, staat AHCI uit. Dat is op zich niet erg, een SSD is al zo snel dat je het waarschijnlijk nauwelijks zult merken, maar bij heavy load en langdurig gebruiken mis je twee zaken vooral. Namelijk respectievelijk Native Command Queueing en TRIM. NCQ zorgt voor een enorme performancewinst, TRIM zorgt er voor dat je SSD minder snel trager wordt in de toekomst.

Ik ben uiteraard niet de enige die hier tegenaan loopt, dus na spitten kwam ik op een tooltje: ahci.sh. Versie 1 is voor Core2Duo, ik moet sowieso versie 1.1 hebben, die is geschikt voor i5 en i7 (bedankt John). De vorige generatie MacBook Pro werkt hier mee. AHCI staat aan na wat handelingen (ahci.sh draaien, BSOD negeren, opstarten in rescue mode, bootsect.exe /nt60 c: draaien en klaar). Mijn MacBook Pro helaas niet. Een 0x0000007c error en rescue mode laat geen disk zien. Ik vermoed een driver issue, het lijkt er op dat de (trage maar wel altijd werkende) Microsoft AHCI driver het niet wil doen. Ook na een bootsect /nt60 wil het nog steeds niet werken.

Voor nu zit ik even vast…iemand ideeën?

Ik vroeg me af in hoeverre Windows (Server 2008 R2 SP1) een kopieer actie echt in memory doet, voordat hij hem naar disk flushed. Dus ik kopieer een VHD van 8GB van een OCZ RevoDrive X2 naar een WD 2TB Caviar Green. Ik vond het al erg snel gaan, dus dat moet wel caching zijn:

Ik weet dat je snel kunt lezen van een SSD, maar het met 500MB/sec wegschrijven ging me wat ver. Als ik naar task manager kijk wordt het duidelijk:

De RevoDrive is in ieder geval razendsnel, met meer dan 600Mbyte/sec in RAM lezen om het vervolgens wat langzamer (lees minder steil) naar disk weg te schrijven. Eigenlijk best link, want cache op een Raid controller is in servers altijd battery backed (als het een goede controller is ten minste), zodat de cache niet verloren gaat bij een plotselinge stroomstoring. Nu heb je daar in een modern datacenter vrijwel nooit last van, maar datacorruptie is in productieomgevingen flink vervelend (om nog even te zwijgen van het feit dat een aantal flinke kopieer acties 90% van je RAM innemen.

Nu was er en registry instelling:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro  l\SessionManager\Memory Management
Value Meaning
0 Establishes a standard size file-system cache of approximately 8 MB. The system allows changed pages to remain in physical memory until the number of available pages drops to approximately 1,000. This setting is recommended for servers running applications that do their own memory caching, such as Microsoft SQL Server, and for applications that perform best with ample memory, such as Internet Information Services (IIS).
1 Establishes a large system cache working set that can expand to physical memory, minus 4 MB, if needed. The system allows changed pages to remain in physical memory until the number of available pages drops to approximately 250. This setting is recommended for most computers running Windows Server 2003 on large networks.

Dat was voor Windows Server 2003, dat draai ik hier niet. Blijkbaar doen dit settings ook niets meer in Server 2008 R2.

Nu heeft Microsoft DynCache uitgegeven, een service waarmee je de cache voor het filesystem dynamisch kunt beheren:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e24ade0a-5efe-43c8-b9c3-5d0ecb2f39af&displaylang=en

Daarna wat registry instellingen aanpassen:

De MaxSystemCacheMBytes staat normaal op, wat inhoudt dat 90% van het memory kan worden opgeslokt:

RegValue:           MaxSystemCacheMBytes
 Type: REG_DWORD
 Values:
 0 = Limit to 90% of Physical RAM (default)
 1-99 = Limit the maximum size of the System File Cache to this percentage of Physical RAM
 > 200 = Limit the maximum size of the System File Cache to x Mbytes
 How this works:
 This setting is the absolute maximum that the System File Cache’s working set could be set to.  The default is 0, limiting it to 90% of physical RAM with an upper limit of total Physical RAM minus 300 Mbytes.  The lower limit for absolute values is 200 Mbytes and it must be at least 100 Mbytes greater than the MinSystemCacheMBytes value, which defaults to 100 Mbytes.

Nou, dat zou alles moeten zijn! Ow wacht, ik draai SP1:

Juist, Microsoft, wanneer komt u met een versie die ondersteund wordt op Windows Server 2008 R2 SP1?

Vandaag te horen gekregen dat alles is opgestuurd, lijstje:

  • Silverstone Grandia GD04 (erg ondiepe kast)
  • Intel DH67BL Media Series Desktop Board (als grote voordeel een Intel Gbit NIC onboard, in tegenstelling tot veel Asus borden, wel inclusief “de Intel bug van 2011″, maar ik gebruik alleen de Sata 600 poorten)
  • Intel Sandy Bridge i5 2500k
  • 2 * 2GB Kingston ValueRAM (4GB is meer dan genoeg voor een media center, met 8GB zou je een slimme ramdrive kunnen maken, maar met een SSD schijf eigenlijk niet meer nodig)
  • Corsair F12o GB SSD (een 120GB alsnog, geen 64GB wat in principe genoeg is: TV opnames _moeten_ naar een lokale disk worden weggeschreven en iSCSI vanaf je NAS is ook niet alles)
  • LiteOn Bluray speler (vrijwel alles staat op een NAS, maar toch handig)
  • Scythe BIG Shuriken fan met een Nexus 120mm. fan + 2 Nexus 120mm. fanse voor de behuizing (fans zijn vrijwel onhoorbaar)
  • PicoPSU 160Watt (een soort laptopvoeding met een mini connector voor op je moederbord, erg handig):
  • Anysee TV Tuners (op het moment de beste DVB-C oplossing, multituner)
  • Creative X-Fi voor analoog geluid naar DTS receiver (analoog omdat je anders met digitale zenders en content het volume alleen op de receiver kunt regelen, je het verschil toch niet hoort met vrijwel alle niet-audiofiele installaties en omdat ik anders geen WMA surround heb –> geen receiver decodeert dat)

Ik ben benieuwd!

Mijn eerste blog! Ik ben al tijden een groot fan van Windows Media Center. Ik heb ook andere pakketten geprobeerd (MythTV, Media Portal) maar kwam altijd weer terug bij Windows Media Center. Inmiddels de versie die bij Windows 7 wordt meegeleverd en leek het me wel leuk hier iets over te schrijven. Nu, anno 2011, lijkt de tijd van eeuwig klooien met codecs, het stabiel proberen te krijgen van tuners voor digitale TV, het goed stil krijg van de kast zonder performance verlies voorbij. Ik heb mensen horen roepen dat ze een Atom opstelling hebben voor een media center, of een trage celeron, zelfs onderklokt om meer energie (dus warmte) te besparen, maar ik ben echt van mening dat je toch wel wat power nodig hebt in een degelijk media center. Menu’s moeten vloeiend gaan, ook als je een Full HD file afspeelt of als er op de achtergrond nog een indexeeractie loopt. Een Atom (al dan niet dual core tegenwoordig) hoort misschien in een NAS, mijns inziens niet in een Media Center.

Op dit moment heb ik een Asus moederbord met een geïntegreerde Nvidia 9300 videokaart. Deze kan full HD en heeft een Intel E8200 CPU. Werkt prima, ik ben er redelijk tevreden over. Ik heb er een SSD schijf in zitten voor het OS (een kleintje) en een Synology NAS voor de opslag van alle content.

Nu is Intel echter met een nieuwe CPU en chipset gekomen: Sandy Bridge. Met afnemend stroomverbruik veel meer performance en een videokaart die ruim voldoende snelheid heeft voor Full HD. Ik wilde toch al een tweede media center voor elders in het huis, dus ik heb een mooie combinatie aangeschaft. Als ik hem binnen heb en er mee aan de slag ga zal ik hier het één en ander roepen over de mijns inziens beste setup.