VMware Horizon Community
LukaszDziwisz
Hot Shot
Hot Shot

Master Image Optimization guide

I apologize up front if it is an incorrect forum for that but I've figured that it might be worth a shot.

We are working on Horizon 7.8, Instant Clones. Appvolumes 2.16, UEM 9.7, vCenter 6.7 U2 and Windows 1809 LTSC. We have recently discovered that our current image has some problems with some various Windows components, for example bitlocker, recent items and jump lists etc so we decided to build brand new image however we skipped using VMware OSOT and just did basic optimization manually. It included disabling unnecessary services, cleaning up startup, task scheduler etc. We are attaching at most 5 appstacks ( 4 combined applications appstacks and 1 Profile only writable). I have published the pool and almost right away seeing that logon time jumped from 40-50 seconds to 80-90 seconds. We are not using Mandatory profiles, instead we are doing Profile only writable and folder redirection through UEM.

I would like to ask  the community and see if you might have any instructions/guideline on optimizing the image without OSOT and any possible tips/tricks on how to get the logon times at least to the 40-50 level or less. We are using all flash based Pure storage, newest C-Series UCS servers with Nvidia grids and I feel like we are not even close to what it should be.

Any help would be very much appreciated

Tags (4)
Reply
0 Kudos
6 Replies
sjesse
Leadership
Leadership

I'm interested in what some of these responses would be too, but what folder redirection are you using? My suggestion if your using writeable only is don't redirect appdata unless you have a good reason, I'm currently redirecting that and want to drop it as I've seen it take 20 seconds of the logon time in some cases when I've tested it.

Reply
0 Kudos
LukaszDziwisz
Hot Shot
Hot Shot

I'm redirecting All Libraries (Documents, Downloads, Music, Pictures, Videos) and Desktop and Favorites. I'm not redirecting AppData at all. The Appdata folder is being captured by Writable Volume Profile Only

Reply
0 Kudos
LukaszDziwisz
Hot Shot
Hot Shot

I'm reviewing Logon Monitor Logs now and seeing 3 interesting gaps that would make up 36 seconds however not too sure what they are and what is causing it:

2019-05-01T12:27:42.153 TRACE (1064-1a18) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 4016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:08.933 TRACE (1064-1a18) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 5016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:08.936 TRACE (1064-056c) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 4016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:08.937 TRACE (1064-056c) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 5016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:08.937 TRACE (1064-1a18) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 4016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:10.209 TRACE (1064-1a18) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 5016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:10.209 TRACE (1064-056c) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 4016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:10.210 TRACE (1064-056c) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 5016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:10.210 TRACE (1064-1a18) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 4016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:11.706 TRACE (1064-1a18) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 5016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:11.706 TRACE (1064-056c) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 4016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:12.457 TRACE (1064-056c) [SensSink::ProcessLogonEvent] Received Sens Logon: Username: yyyyy\xxxxx, Session: 1

2019-05-01T12:28:12.725 TRACE (1064-056c) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 5016, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: , Session: 1

2019-05-01T12:28:12.725 TRACE (1064-1a18) [LogonMonitor::ProcessGroupPolicyEvent] Event Id: 8001, ActivityID: {9D3719DB-CB2F-432E-9B7C-62EC545A67F5}, Account: yyyyy\xxxxx, Session: 1

2019-05-01T12:28:12.725 TRACE (1064-1a18) [LogonMonitor::ProcessUserPolicyEvent] User Policy Worker Started. Session: 1

2019-05-01T12:28:12.732 TRACE (1064-1238) [LogonMonitor::UserPolicyEventWorker] About To Wait for Profile Load Event

2019-05-01T12:28:12.732 TRACE (1064-1238) [LogonMonitor::UserPolicyEventWorker] Wait for Profile Load Event Returned

2019-05-01T12:28:12.732 TRACE (1064-1238) [LogonMonitor::UserPolicyEventWorker] About To Wait for Shell Loaded Event

2019-05-01T12:28:14.111 TRACE (1064-1a18) [LogonMonitor::SetShellLoadStartTime] Set Shell Load Start Time. Sessiond Id: 1

2019-05-01T12:28:23.444 INFO (1064-056c) [SensSink::ProcessPostShellEvent] Received Sens PostShell: Username: XXXXXX, Session: 1

2019-05-01T12:28:48.105 TRACE (1064-0af0) [LogonMonitor::ShellLoadWorker] Found Taskbar. Session: 1

2019-05-01T12:28:48.106 TRACE (1064-0af0) [LogonMonitor::SetShellLoadEndTime] Set Shell Load End Time. Session: 1

2019-05-01T12:28:48.106 TRACE (1064-1238) [LogonMonitor::UserPolicyEventWorker] Wait for Shell Loaded Event Returned

2019-05-01T12:28:48.107 TRACE (1064-0af0) [LogonMonitor::GetUserProfileType] User Profile Type (0): Local. Session: 1

2019-05-01T12:28:48.107 TRACE (1064-0af0) [LogonMonitor::GetUserProfilePath] Local Profile Path: C:\Users\xxxxx. Session: 1

2019-05-01T12:28:48.107 TRACE (1064-0af0) [LogonMonitor::GetUserProfilePath] Key Path: SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-3438670015-1056806915-4004647813-14408. Session: 1

2019-05-01T12:28:48.108 ERROR (1064-0af0) [LogonMonitor::GetUserProfilePath] Failed Retrieving Roaming Profile Path: 0x2. Session: 1

2019-05-01T12:28:54.335 TRACE (1064-1238) [LogonMonitor::StopSensEventSink] SENS Event Sink Stopped, Session: 1

2019-05-01T12:28:54.335 TRACE (1064-1238) [LogonMonitor::SetLogonEndTime] Set Logon End Time. Session: 1

2019-05-01T12:28:54.335 INFO (1064-1238) [LogonMonitor::GetSessionStartToLogonStartTime] Session Start To Logon Time: 6678.75 seconds, Session: 1

2019-05-01T12:28:54.335 INFO (1064-1238) [LogonMonitor::GetShellLoadTime] Shell Load Time: 33.99 seconds. Session: 1

2019-05-01T12:28:54.338 INFO (1064-1238) [LogonMonitor::GetWFRApplyTime] Windows Folder Redirection Apply Time: 0.00 seconds. Session: 1

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::GetProfileSyncTime] Profile Sync Time: 0.00 seconds. Session: 1

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::GetMachineGPOTime] Machine Policy Time: 0 seconds. Session: 1

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::GetUserGPOTime] Group Policy Software Installation Processing Asynchronous: True, Sessiond: 1

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::GetUserGPOTime] GPO List Changed: True, Session: 1

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::GetUserGPOTime] Group Policy Software Installation Time: 1.08 seconds, Error Code: 0, Session: 1

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::GetUserGPOTime] User Policy Time: 34 seconds. Session: 1

2019-05-01T12:28:54.339 TRACE (1064-1238) [LogonMonitor::IsGPLogonScriptSynchronous] Computer: Run these programs at user logon: Not Configured

2019-05-01T12:28:54.339 TRACE (1064-1238) [LogonMonitor::IsGPLogonScriptSynchronous] User: Run these programs at user logon: Not Configured

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::IsGPLogonScriptSynchronous] Group Policy Logon Scripts Are Asynchronous

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::GetGPLogonScriptTime] Group Policy Logon Script Time: 0.00 Seconds

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::GetGPLogonScriptTime] Group Policy PowerShell Logon Script Time: 0.00 Seconds

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::GetGPLogonScriptTime] Total Group Policy Logon Script Time: 0.00 Seconds

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::CheckGroupPolicySettings] Always wait for the network at computer start and logon: Enabled

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::CheckGroupPolicySettings] Machine: Run these programs at user logon: Not Configured

2019-05-01T12:28:54.339 INFO (1064-1238) [LogonMonitor::CheckGroupPolicySettings] User: Run these programs at user logon: Not Configured

2019-05-01T12:28:54.340 INFO (1064-1238) [LogonMonitor::CheckGroupPolicySettings] Wait for remote user profile: Not Configured

2019-05-01T12:28:54.340 INFO (1064-1238) [LogonMonitor::CheckGroupPolicySettings] Set maximum wait time for network if a user has a roaming profile or remote home directory: Not Configured

2019-05-01T12:28:54.340 INFO (1064-1238) [LogonMonitor::CheckGroupPolicySettings] Specify network directories to sync at logon, logoff time only: Not Configured

2019-05-01T12:28:54.340 TRACE (1064-1238) [LogonMonitor::UserPolicyEventWorker] About to Wait For Shell Load Worker

2019-05-01T12:28:59.011 INFO (1064-0af0) [LogonMonitor::LogProfileSize] Profile Size: 3633.53MB, Files: 18045, Folders: 2446. Session: 1

Reply
0 Kudos
sjesse
Leadership
Leadership

Look at

Re: UEM hanging/delaying randomly.

if you haven't, there may be an issue with 1803 and 1809 with file lock problems when accessing the UEM configuration folder.

Reply
0 Kudos
LukaszDziwisz
Hot Shot
Hot Shot

I agree with that but I didn't make any changes with UEM configuration between creating images with OSOT and without and the logon time seem to be very different. As for UEM, I have barely couple of templates configured to complement Writable and other than that it is only doing redirection 

Reply
0 Kudos
LukaszDziwisz
Hot Shot
Hot Shot

One thing made me wonder is a log from Logon Monitor and especially the following line:

User Policy Apply Time: 19 seconds

That seems like a lot. If I don't attach any appstack it appears to be along 8-9 seconds but not sure how would this be related.

I have tested with direct attachments to my account through AppVolumes Manager instead of AD group and getting exactly the same result.

4 appstacks +Writable Profile only logon time is 48 seconds - User Policy Apply time: 19 seconds

No appstacks but with Writable Profile only the logon time is 24 seconds - User Policy Apply time: 8 seconds

Reply
0 Kudos