The logon and log off process in Presentation Server 4.0 is very complex. For a full list of everything that happens when login on take a look at the jpg on this page I will point out what exactly we can change to speed things up.
If you decide to use / implement anything that I publish in this document please test before putting in to your live, I can not be held responsible for any problems that may pop up. The following is based on a client connecting to a published application. I will show you tips to making login on / off and connecting to a published application faster. You will typically see the below message when your user logon is slow.
1. If you have a large farm (Roughly 50 servers plus) then have a dedicated data collector that only processes citrix browser requests. This will speed up the connection process and show you the login screen quicker. If you can plug your server in to a network switch that has more network bandwidth do it.
Next configure the clients citrix browser server, put the dedicated server as the primary server for lookups. If you dont hard code a browser server the client will do a broadcast to the whole network and then decide which server replied in the fastest time. To add a browser server in program neighbourhood go to your connection and right click on it and select properties, the below will be shown
Citrix Published Application Properties
The primary citrix browser server will be the first server you add, make sure you add the full dns name as this will cut out any dns lookups that might be needed. Then add other servers underneath it for redundancy.
If you are using an ica file edit the file and put something like the following in
2. If you use roaming profiles you need to check two things. Firstly how big is the profile, The bigger the profile the longer it will take to download. Also how many files are there, there should ideally be no more than 400 files. If you have lots of files this will also increase the log on time as the virus scanner needs to scan each file as it is loaded onto the server. If you Disable the virus scanner on your citrix server will speed up the server, But I would highly recommend against this as its a big security risk.
To keep profile sizes under control I do the following. On our file server where the profiles are stored I created a file called “Profile_Clean.cmd” then on the citrix terminal server I place a shortcut to this file under all users\Start Menu\Startup\ folder. So now when a user logs on this script will run and delete certain things in there profile. An example of what I put in the Profile_Clean.cmd file is shown below
Del /F /Q /S /A “%userprofile%\*.tmp”
Del /F /Q /S /A “%userprofile%\GoogleEarth.exe”
Del /F /Q /S /A “%userprofile%\Desktop\GoogleEarth.exe”
Del /F /Q /S /A “%userprofile%\Local Settings\Shoppers Reports\*”
Del /F /Q /S /A “%userprofile%\Application Data\Shoppers Reports\*”
Del /F /Q /S /A “%userprofile%\Shoppers Reports\*”
Del /F /Q /S /A “%userprofile%\Application Data\Hotbar\*”
Del /F /Q /S /A “%userprofile%\Application Data\Hotbar\*”
Del /F /Q /S /A “%userprofile%\Application Data\Google\GoogleEarth\*”
Del /F /Q /S “%userprofile%\*.dbx”
Del /F /Q /S “%userprofile%\archive.pst”
Del /F /Q /S “%userprofile%\Temporary Internet Files\*.*”
Del /F /Q /S “%userprofile%\Local Setting\Temporary Internet Files\*.*”
Del /F /Q “%userprofile%\Downloaded Program Files\*.*”
Del /F “%userprofile%\Desktop\Outlook Express.Lnk”
Del /F “%userprofile%\Desktop\WinZip.Lnk”
Del /F “%userprofile%\SendTo\My Briefcase.lnk”
Del /F “%userprofile%\SendTo\Web Publishing Wizard.lnk”
Del /F “%userprofile%\Start Menu\WinZip.Lnk”
Del /F “%userprofile%\Start Menu\Programs\Outlook Express.Lnk”
Del /F “%userprofile%\Start Menu\Programs\Books Online.Lnk”
Del /F “%userprofile%\Start Menu\Programs\Outlook Express.Lnk”
Del /F “%userprofile%\Start Menu\Programs\Accessories\Chat.Lnk”
Del /F “%userprofile%\Start Menu\Programs\Accessories\Clipboard Viewer.Lnk”
Del /F “%userprofile%\Start Menu\Programs\Accessories\Object Packager.Lnk”
Del /F “%userprofile%\Start Menu\Programs\Accessories\Phone Dialer.Lnk”
Del /F “%userprofile%\Start Menu\Programs\Accessories\Synchronize.Lnk”
Del /F “%userprofile%\Start Menu\Programs\Accessories\Telnet.Lnk”
Del /F “%userprofile%\Start Menu\Programs\Accessories\HyperTerminal\AT&T Mail.Ht”
Del /F “%userprofile%\Start Menu\Programs\Accessories\HyperTerminal\CompuServe .Ht”
Del /F “%userprofile%\Start Menu\Programs\Accessories\HyperTerminal\HyperTermi nal BBS.Ht”
Del /F “%userprofile%\Start Menu\Programs\Accessories\HyperTerminal\MCI Mail.Ht”
Del /F “%userprofile%\Start Menu\Programs\Accessories\HyperTerminal\Microsoft BBS.Ht”
Del /F /Q “%userprofile%\My Documents\My Pictures\Sample.jpg”
Del /F /Q “%userprofile%\SendTo\MYDOCU~1.MYD”
Del /F “%userprofile%\Recent\*.lnk
Del /F “%userprofile%\Recent\*.jde
Del /F “%userprofile%\My Recent Documents\*.lnk
Del /F “%userprofile%\My Recent Documents\*.jde
Rd /S /Q “%userprofile%\Application Data\Microsoft Web Folders”
Rd /S /Q “%userprofile%\Desktop\My BriefCase”
Rd /S /Q “%userprofile%\Start Menu\Citrix Program Neighborhood”
Rd /S /Q “%userprofile%\Start Menu\Programs\Microsoft Image Composer”
Rd /S /Q “%userprofile%\Start Menu\Programs\Microsoft Web Publishing”
Del /F /Q /A:S “%userprofile%\Favorites\AOL Preview Channel”
Del /F /Q /A:S “%userprofile%\Favorites\BBC Online”
Del /F /Q /A:S “%userprofile%\Favorites\Disney”
Del /F /Q /A:S “%userprofile%\Favorites\Financial Times”
Del /F /Q /A:S “%userprofile%\Favorites\Microsoft Channel Guide”
Del /F /Q /A:S “%userprofile%\Favorites\MSN UK”
Del /F /Q /A:S “%userprofile%\Favorites\MSNBC”
Del /F /Q /A:S “%userprofile%\Favorites\New Scientist”
Del /F /Q /A:S “%userprofile%\Favorites\Sky Online”
Del /F /Q /A:S “%userprofile%\Favorites\The Microsoft NetWork”
Del /F /Q /A:S “%userprofile%\Favorites\The PointCast Business Network”
Del /F /Q /A:S “%userprofile%\Favorites\Virgin Net”
Del /F /Q /A:S “%userprofile%\Favorites\Vogue”
Del /F /Q /A:S “%userprofile%\Favorites\Warner Bros”
Del /F /Q /A:S “%userprofile%\Favorites\Welcome to LineOne”
Del /F /Q /A:S “%userprofile%\Favorites\whatsnew.com channel”
Del /F “%userprofile%\Favorites\MSN.url”
Del /F “%userprofile%\Favorites\MSN.Com.url”
Del /F “%userprofile%\Favorites\Radio Station Guide.url”
Del /F “%userprofile%\Favorites\Web Events.url”
Rd /s /Q “%userprofile%\Favorites\Business”
Rd /s /Q “%userprofile%\Favorites\Entertainment”
Rd /s /Q “%userprofile%\Favorites\Lifestyle and Travel”
Rd /s /Q “%userprofile%\Favorites\Links”
Rd /s /Q “%userprofile%\Favorites\Media”
Rd /s /Q “%userprofile%\Favorites\News and Technology”
Rd /s /Q “%userprofile%\Favorites\Sports”
Rd /Q /S “%userprofile%\Temporary Internet Files”
Rd /Q /S “%userprofile%\Local Settings\Temporary Internet Files”
Rd /Q /S “%userprofile%\Start Menu\Programs\Accessories\Communications”
Rd /Q /S “%userprofile%\Start Menu\Programs\Accessories\MultiMedia”
Rd /Q /S “%userprofile%\Start Menu\Programs\Accessories\Internet Tools”
Rd /Q /S “%userprofile%\Windows\Web”
Rd /Q /S “%userprofile%\unread”
RD /Q /s “%userprofile%\Application Data\Microsoft\Internet Explorer\Quick Launch\Launch Outlook Express.lnk”
RD /s /Q “%userprofile%\Application Data\Microsoft\Queries”
RD /s /Q “%userprofile%\Application Data\Google Earth”
RD /s /Q “%userprofile%\Application Data\GoogleEarth”
RD /s /Q “%userprofile%\Application Data\Hotbar”
RD /s /Q “%userprofile%\Hotbar”
RD /s /Q “%userprofile%\Local Settings\Hotbar”
RD /s /Q “%userprofile%\Shoppers Reports”
RD /s /Q “%userprofile%\Local Settings\Shoppers Reports”
RD /s /Q “%userprofile%\Application Data\Shoppers Reports”
If you do plan to use the above file I would recommend you look at your roaming profiles and see what large files are being placed in to the profiles, Download the tool from this url http://www.jam-software.com/freeware/index.shtml and you can easily see who has the biggest profiles and where the files are.
If possible have a dedicated server hosting the roaming profiles, and a fast network connection between the citrix server and the roaming profile server. It is also possible to move the desktop / favourites / cookies / temp folders out of the roaming profile and locate them in another area, such as the users home drive. This will mean when a user logs on it wont download these files / folders.
3. On the client device disable the following if you don’t use them, Audio, Drive, Com port mapping, LPT ports, Printer, clipboard. If you dont disable them the logon process try’s to map them, To disable them log on to the citrix server and click start > Programs > Administrative Tools > Terminal Services Configuration, double click on the ICA protocol then select the client settings tab, Tick all the boxes that you can (Shown below)
4. Load up presentation server console, edit the published application. Click on “Client Options” and make sure the box is ticked for “Start this application without waiting for printers to be created” shown below. If there is no tick the explorer.exe process will not launch until all printers have been mapped, If a user has 10 printers in there profile this could put an extra minute or two on to there logon time, if there are any problems mapping the printer (Such as its off the network) the logon process will take much longer.
5. Create a simple load evaluator. Put as little evaluators as you can. I use just “server user load” A lot of people say you should also include “CPU Utlilzation” “ Memory Usage” “Page Swaps” but I dont see the point as a server in the farm could be suffering from a rouge process that is taking up alot of memory and CPU (For example someone ran a query in MSAccess) because this process is running noone will log on to the server and will be re-directed on to another server. The process will finish in a few minutes but in the mean time 50 people have logged on another server in the farm which has now overloaded that server.
The more evaluators you put in to the load evaluator the more information a server will need to send and receive to the data collector, So keep it simple.
6. Citrix policy’s can also be configured to speed up the login process. The first thing you can do is click on printing > Client printers > Auto-Creation, make sure “Auto-Create the clients default printer only” is selected.
Always install the latest print driver onto the server. If you have a HP printer go to http://support.citrix.com/article/CTX107322 and see if your printer is supported and also what driver version you need as a minimum. Always keep your printer drivers up to date as printer drivers cause quite a lot of issues in the citrix environment.
7. Load Citrix Connection Configuration. Edit the ICA protocol and click on client settings. Disable as many client mappings as you can. Don’t disable them in the citrix policy. If you disable them in the policy you are giving the “Logon Process” extra items to process.
8. Try to configure as little as you can in the citrix policy, The more you configure the more information needs to be processed at log on.
9. Download and run “Autoruns” from SysInternals http://www.sysinternals.com/utilities/autoruns.html this nice program will show you everything on your server that runs when you log on. You can also use microsoft’s built in program which is called msconfig which can be accessed via the run menu.
10. Clean the temp files that have built up on your system, If you have hundreds / thousands of temp files on your system this can have an impact on performance. Go to the command prompt, go to the C: drive and type in del *.tmp /a /s /f /q
11. Install and configure system delay if you need to leave applications in your %all users% startup. Available from Startup Delayer system delay will delay processes from running at startup (When a user logs on, As per point 9 you should of disabled all unnessary processes from starting, but if there are other processes that you need to keep you could benefit from delaying them from starting. (Theres nothing worse than login on to a computer then waiting a few minutes until it finishes processing all of the processes) So experiment to see if it is better to delay certain processes or run them all at once at system startup.
12. Make sure your server is not paging to disk, If the server runs out of memory its going to start to use the servers virtual memory which is much slower than real memory. Put as much memory in to your system as you can, The server will run faster with more memory. With Windows 2003 standard you can install a maximum of 4 gig of memory, while on Windows 2003 Enterprise / 64bit you can install up to 64 gig of memory.
13. If possible install the fastest hard-disk in to your server that you can get, I recommend using SCSI disks as they are much faster than IDE or SATA. This will then speed up the process in which the files of the roaming profile are copied to disk. Also keep your disk in top shape by running defrag and checkdisk on all local drives at least once a week. I personally automate this service using windows scheduler.
14. Install microsoft user hive, downloadable from the microsoft website. This program fixes lots of issues with roaming profiles.
15. Install the latest citrix hotfixes and install them on every citrix server in your farm. Citrix hotfixes fixes lots of bugs and problems within the citrix environment.
16. Install latest microsoft service packs and hotfixes, The easiest way to do this is to open internet explorer
17. Disable the indexing service on the citrix server. Ever since windows NT with metaframe 1.8 there have been performance with the microsoft indexing service. As soon as you enable it you will see your server running slower. This service typically takes up 10mb – 40mb per user, if you have 30 users logged on to one server it is possible the indexing service could be taking up 1 gig of memory, this is not good and could cause your server to page to disk. The indexing service is also hard-disk I/O intensive which will also slow things down a bit more.
To disable the service click on start > run and type in services.msc then scroll down to where it says “Indexing” and double click on it, now in the drop down box select disabled, now reboot your computer. Next check if windows search is installed, go in to your control panel and click on add/remove programs then scroll down to the bottom and look for “Windows Search” if it is there uninstall and reboot your server
18. Disable sounds!! If audio is enabled on your citrix server this will slow things down a little. First thing is to disable the service, click on start > run > type in services.msc and find “Windows Audio” service, now double click on it and select disabled from the drop down box, then click ok and reboot. Now disable audio devices within device manager. Go to your control panel and click on “Administrative Tools” then “Computer Management” select device manager on the left then scroll down to “Sound, Video and game controllers” expand this tab then right click on everything underneath it and select disable.
19. Download and install Bootvis. Do a search in Google for bootvis.exe, you will find it. Open Bootvis. (Location may vary depending where you installed it) You need to analyze your computer by going to File and clicking on New. In the New menu select Next Boot and Drivers Trace. Next a box will come up asking how many trace repetitions are needed. Just leave it at the default and click on OK. Another box will appear, select the Reboot Now button and wait for your computer to restart. Once your computer has restarted wait for a little bit and bootvis will start automatically. Go to the Trace menu and select Optimize System. (This may take a few minutes.) Once complete, you will be prompted to restart your system one more time. Hopefully this will speed things up for you.