| | Articles SectionHere You'll find all our Articles : Best Practices, HowTo and also our Tools Documentation. Don't Hesitate to send us your enhancement or support request regarding our Tools with the FeedBack Center | |
|
 | |  | | 
|
|
| Friday, June 20, 2008 | | Optimizing XenApp / Presentation Server 4.X Universal Printing
By Pierre Marmignon @ 6:55 PM :: 1699 Views :: 6 Comments :: :: XenApp, Tuning | | The purpose of this Article is to describe and explain UPD v3 functionnalities that can dramatically improve performances.
Actually XenApp (Presentation Server) 4.0 came with a brand new printing subsystem based on the Universal Printer Driver.
This new driver (only available for Windows 2000 / XP Workstations) allow admins to provide users a "Real" Universal Printer Driver that can be used for almost any Client Side printer . You can even manage Client Printers trays and paper formats, etc… and as EMF is used, Print jobs are really faster.
Well let's stop the marketing things ;) : Even if this new driver is a big step for Citrix in printing management, Third Party products like Thinprint seems to be still a step ahead from Citrix regarding print jobs size.
Seems To ?
When doing lots of testing on a big customer environment with very problematic documents (for example a 500kb PDF File producing a 90 Mb print job …), we found that the most important Thinprint Optimization was its ability to reduce the print job resolution (150dpi is the default Thinprint Setting, which is to low for base graphical documents but dramatically increase performances).
In our Case for example, the Citrix Universal Printer Driver would send about 45Mb on the Network and Thinprint only about 3 Mb when using 150dpi resolution, What a Difference !
Actually, we also found that as the Citrix Universal Printer Driver is Synchronised with the Client Printer Driver, it inherits its default resolution (mainly 600dpi to 1200dpi according to the printer model used).
This behaviour is a real pain in SBC environment because as the print job size is proportionnal to the resolution, sending a print job at a 600dpi or more resolution really kills the network, even with the new Universal Printer Driver.
Assuming this, a question is raising : Why can't we manage this with XenApp / Presentation Server !!!
Actually the first release of the Universal Driver was not designed to do so, but do you remember the customer I was doing tests with ? Actually it's a quite big Citrix Customer Here in France (10 000+ Users) and they did an enhancement request ...
Now You see where I wanted to go ?
Because Yes !!!, Citrix accepted to implement this functionnality in their XenApp / Presentation Server Code (Although it is not much documented).
Starting with XenApp 4.0 (R03 Plus Hotfix 68 minimum required) and XenApp 4.5 (R01 required) You can more deeply manage the Universal Printer Driver and force a lower printing resolution so you can dramatically improve the printing performances !
Note : ICA Client 10.X is required to be able to use all settings specified in this Article.
All settings takes place in the following registry hive : HKLM\Software\Citrix.
My Example is based on Windows 32 Bits, so please note that the registry path is different with Windows x64
You'll have to create a “Print” subkey if it does not exist (this subkey is not present by default, so if you have not defined any DefaultPrnFlags you'll have to create it).
To Manage the UPD Settings, You'll then have to create a new “UPDDevMode” subkey which gives the following registry path
“HKLM\Software\Citrix\Print\UPDDevMode“.
Summary :
Windows 32-bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Print\UPDDevmode
Windows 64-bit:
HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Print\UPDDevmode HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\Print\UPDDevmode
Here you'll find the list of all available settings that can be applied on the Universal Printer Driver v3 : | Name | Type | Data | | dmOrientation | REG_DWORD | 1 = portrait, 2 = landscape | | dmPaperSize | REG_DWORD | 1 = letter through 118 = last paper defined in paper table | | dmPaperLength | REG_DWORD | 1 - 65535 | | dmPaperWidth | REG_DWORD | 1 - 65535 | | dmScale | REG_DWORD | 1 - 1000 | | dmCopies | REG_DWORD | 1 - 9999 | | dmDefaultSource | REG_DWORD | 1 - 15 | | dmPrintQuality | REG_DWORD | 1 = draft, 4 = high | | dmColor | REG_DWORD | 1 = monochrome, 2 = color | | dmDuplex | REG_DWORD | 1 = simplex, 2 = horizontal, 3 = vertical | | dmYResolution | REG_DWORD | 32 - 65535 | | dmTTOption | REG_DWORD | 1 = bitmap, 2 = download, 3 = substitute, 4 = outline | | dmCollate | REG_DWORD | 0 = false, #1 = true | | dmLogPixels | REG_DWORD | 0 - 65535 | | dmBitsPerPel | REG_DWORD | 0 - 65535 | | dmPelsWidth | REG_DWORD | 0 - 65535 | | dmPelsHeight | REG_DWORD | 0 - 65535 |
Important Note: Once you apply these settings, users can still choose for example a high resolution but it won't be taken into account when the document will be printed, so be careful when applying this Tuning !
For example, if I want to restrict the Universal Driver Printers to a 300dpi resolution then I will add the dmPrintQuality value and set it to "2".
This setting is the most important because it's the one which has the most dramatic impact on print jobs size.
If your users do not need color printing and you want to optimize more, you can then create and set the dmColor to "1" to force only Black and White Printing.
Then the dmTTOption setting : Specific Documents, mainly the type of documents that were generated from a PAO application (example : PDF generated from Illustrator …) have their own embedded fonts. Using default print settings, this fonts are converted as bitmaps, which can have a dramatic negative impact on print job.
Using this option, it is possible to force the client to substitute theses specific fonts with local fonts (be careful with that because it can have a lot of side effects …) or to download the fonts to the client at the first print (more heavy at first print job but flawless then).
With tuned Settings, the 90mb (45mb sent) print job is now a 3,4Mb print job (Yes Thinprint still has a little advantage !) but now users can print without big issues.
To help dealing with these settings, we have developped a tool to manage them along with DefaultPrnFlags (see Advanced Concept Guides) more easily.
This tool is called XenApp UPD Tuner and his available from Our Downloads Section.
|
|
|
|
|
| Comments | Wednesday, July 16, 2008 3:55 PM
nice article. I played around with the xenapp upd tuner, but it didn't seems to work for me. I define the printing quality to draft and 100 dpi, but the size of the printjob doesn't change for me! I tried printing a .jpg to the Microsoft Document Image writer mapped through UDP. The size which the eventlog is telling me is always the same. What am i doing wrong?! Thanks for your help! Andreas
Wednesday, July 16, 2008 4:07 PM
Dear Andreas, You should see the size drop via Network traces. Please Note that Windows won't give You the size sent over the Network (in this article case, Windows was showing 90 Mb as job size within the server's spooler but only 45 mb were sent before tuning). Please Also note that You need the mentionned fixes on servers side and that a 10.1 client is recommended. Best Regards, Pierre
Wednesday, July 16, 2008 9:49 PM
Thank you Pierre for clarify! is there a way to capture transfered bytes information from the printing ICA Channel? I tried with SMCConsole but the logfiles time interval is to imprecise. The WMI Counters are only showing bandwith. :( I think with Wireshark, netmon etc. you don't get the full picture. How do you meassure this information? Btw.: I am using PS4.0 farm with HRP04 and ICA 10.150. Even if i configure "draft" and "black-and-white" the printout is coloured. i see that the registrykeys where set from the tool. Best Regards, Andreas
Wednesday, July 16, 2008 10:04 PM
You're Welcome :) Actually this is not possible to have a clear bandwidth monitoring, the tests we've done were with WireShark on one session which was only printing. Clearly if the printing are in color that's a problem because that means the settings are not applied. For Example, Let's say I'll force Black & White. If the settings are applied, Users can still choose colors printing in the Universal Driver Properties Window but each printed document will be in B&W. If You have a 64Bit XenApp OS, then the Tool won't in this version set the values at the right place, so you can try to set them manually. Please also note that You need a Full Logoff / Logon after modifying the registry and that these settings only applies to printers created with the Universal Printer Driver (UPD v3).
 Sunday, August 31, 2008 10:03 AM
we are running one farm with xenapp 4.5 platinum r2 and i was quite excited about this article as we decided to use only upd despite to the other farms still using native driver. after a period of grace with no user complains we step into the problem of printing size growing as you mentioned and we started looking for a solution. we've impemented exactly what written here but don't know why the reg setting are there without sorting any result. client > 10.1xx of course. as demanded by business request, yesterday I was sadly forced to enable native driver and users immediately saw the different speed on printing but on my side I've also noticed a fragility on the spooler that I was even able to crash simulating users load with too many printers connected. it's fully that such nice possibility that could help so much is almost not documented and officially ingored from ctx support. they spent too much business lunch with thinprint I guess. I really would like to return at upd. someone can help? thanks
Sunday, August 31, 2008 10:20 AM
Dear GrappaLux, If You test the Color setting and for example Force to Black & White, is it Working ? You can still have big print jobs regarding the type of Used documents. For Best Performances, Indirect print job routing plus this values is the best setting I've implemented but the performances also depends of your printing Architecture. Best Regards,
Only registered users may post comments. |
|
| |
| |  | | |
|
| |