{"id":344,"date":"2009-02-08T04:22:02","date_gmt":"2009-02-08T02:22:02","guid":{"rendered":"https:\/\/www.peppercrew.nl\/?p=344"},"modified":"2011-05-18T20:49:08","modified_gmt":"2011-05-18T19:49:08","slug":"printen-op-64bits-citrix-terminal-servers","status":"publish","type":"post","link":"https:\/\/ingmarverheij.com\/en\/printen-op-64bits-citrix-terminal-servers\/","title":{"rendered":"Printen op 64bits Citrix \/ Terminal servers"},"content":{"rendered":"<p>De meest voor de hand liggende reden om te kiezen voor een 64 bit Citrix (of Terminal server) omgeving is vanwege het beschikbare werkgeheugen. Een 32 bit besturingsysteem kan niet meer dan 4 GB adresseren (2 ^ 32 = 4294967296) en zal dus op een alternatieve manier meer geheugen moeten adresseren. Het is dus wel mogelijk maar levert beperkingen op.<\/p>\n<p>Hier lijkt een 64 bit omgeving d\u00e9 oplossing.<\/p>\n<p>Bij het inrichten van een Citrix (of Terminal server) omgeving op een 64 bit platform zijn er een aantal dingen waar je rekening mee moet houden. Zeker in het kader van het gebruik van geheugen.<br \/>\n<!--more--><br \/>\nAllereerst (de meest voor de hand liggende stap) dient gekeken te worden naar de applicaties. In de meeste omgevingen waar ik kom zijn alle applicaties 32 bit, niet 64 bit. Dit heeft als gevolg dat als er een 32 bit applicatie wordt opgestart er extra handelingen moeten worden verricht zodat de applicatie gebruikt kan worden in de desbetreffende omgeving. Bij het gebruiken van deze applicaties op een 64 bit omgeving zal het geheugenverbruik van elk proces 1.5 a 2 keer zoveel zijn als op een 32 bit omgeving. Goed, dat is met de mogelijkheden van een 64 bit omgeving (tot 64TB ipv 4GB) en het feit dat geheugen steeds goedkoper wordt steeds minder een probleem.<\/p>\n<p>Maar waar extra rekening mee gehouden moet worden is bij het printen. Er zijn weinig omgevingen waar <em>niet<\/em> wordt geprint dus dit zal wellicht ook gelden voor jouw omgeving. Zodra een 32 bit process toegang wil tot de print spooler zal er per <em>sessie<\/em> een conversie proces worden gestart. Dit proces is <em>splwow64.exe<\/em>. Waarbij <em>spl<\/em> = spooler, <em>wow<\/em> = windows on windows en <em>64<\/em> is uiteraard het 64 bit kenmerk. Dit betekent dus een overhead voor <em>elke<\/em> sessie die gebruik maakt van de print spooler (en dat is vrijwel elke gebruiker). Okay zou je zeggen, dat kan ik eenvoudig berekenen door het aantal sessies maal  het aantal benodigde geheugen voor een <em>splwow64.exe<\/em> proces. Helaas blijkt dit anders te werken.<\/p>\n<p>Bij het aanroepen van de spooler, via het <em>splwow64.exe<\/em> proces, zal de print job hierin worden verstuurd en groeit het proces afhankelijk van de grootte van de job. Nu is er nagedacht over dit proces en is de gedachte dat het efficient is als dit proces wat langer blijft bestaan, voor het geval er weer wordt geprint en het proces weer moet worden gestart. Dit voorkomt dat het proces (ik heb het over <em>splwow64.exe<\/em>) wordt gestart, gestopt en weer gestart.<\/p>\n<p>Echter als er grote printjobs worden verstuurd, zoals een PDF waarin afbeeldingen zitten verwerkt dan blijft het proces <em>splwow64.exe<\/em> (per gebruiker, per printjob) groeien. En doordat het proces blijft wachten. voor het geval dat\u2026, blijven de processen  groeien en groeien\u2026 en groeien\u2026 en ja, tot deze groot wordt. In een omgeving waar veel met Excel en PDF wordt gewerkt zijn waarden gevonden tussen de 30 en 300MB per sessie (!).<\/p>\n<p>Okay, er spelen nu twee vragen in mijn hoofd.<br \/>\n1) Is dit een memory leak? Waarom blijft het proces <em>splwow64.exe<\/em> steeds verder groeien en laat hij de vorige jobs niet \u2018los\u2019?<br \/>\n2) Waarom blijft het <em>splwow64.exe<\/em> proces actief en waarom verkorten we deze tijd niet naar laten we zeggen 1 minuut?<\/p>\n<p>Het is mogelijk om de waarde aan te passen zodat het <em>splwow64.exe<\/em> proces actief blijft (na het uitvoeren van de printjob) in het register. In de key <em>HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlPrint<\/em> kan een <em>DWORD<\/em> sleutel <em>SplWOW64TimeOut<\/em> worden toegevoegd.<\/p>\n<p>Deze waarde geeft het aantal minuten weer dat er wordt gewacht nadat de laatste printjob is voltooid.<\/p>\n<p>Let op : Bij het afmelden van een sessie kan het voorkomen dat het splwow64.exe voorkomt dat de sessie goed afsluiten.<\/p>\n<p>Als je gebruik maakt van RES PowerFuse dan wordt dit verhoplen in PowerFuse 2008 SR3, en als je (nog) geen gebruik maakt van RES PowerFuse (2008) dan is dit zeker een aandachtspunt.<\/p>\n<p>Kort samengevat: 64 bit machines hebben hun voordelen, en absoluut de toekomst, maar het toepassen van 64 bit machines voor een Citrix \/ Terminal server? Ik ben nog niet overtuigd, de tijd zal het leren.<\/p>\n<p>Ingmar Verheij<\/p>","protected":false},"excerpt":{"rendered":"<p>De meest voor de hand liggende reden om te kiezen voor een 64 bit Citrix (of Terminal server) omgeving is vanwege het beschikbare werkgeheugen. Een 32 bit besturingsysteem kan niet meer dan 4 GB adresseren (2 ^ 32 = 4294967296) en zal dus op een alternatieve manier meer geheugen moeten adresseren. Het is dus wel [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[296],"tags":[18,667,20,21,22,23],"class_list":["post-344","post","type-post","status-publish","format-standard","hentry","category-printing","tag-64bit","tag-citrix","tag-printen","tag-server-2003","tag-splwow64exe","tag-terminal-server"],"_links":{"self":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/comments?post=344"}],"version-history":[{"count":3,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/344\/revisions"}],"predecessor-version":[{"id":2330,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/344\/revisions\/2330"}],"wp:attachment":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/media?parent=344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/categories?post=344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/tags?post=344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}