Performance Issue after Upgrade to 2020.1.13.0

Implemented

Performance Issue after Upgrade to 2020.1.13.0

avatar

Hi

We have updated our DPS last Friday to the latest version 2020.1.13.0.

Since then we have had extreme performance issues when we want to access a vault with more than 5000 elements.
Switching to this Vault takes up to one minute

We are aware that a Vault should not have more than 5000 elements to keep the performance good.
But before the update the performance was good and only after the update it was not.

Is there still a way to improve the performance here?

Best regards
Simon

All Comments (39)

avatar

Hello,

Are you using RDM as well or only the web interface of DPS?

Best regards,

Jeff Dagenais

avatar

Hi Jeff

We also use RDM (version 2020.2.13.0)

When we switch to the Vault in RDM, it takes about 30 seconds.
If we do this on the DPS Web, it takes about 90 seconds and more.

Is it possible that this delay is due to the analysis of the passwords? Keyword Analyze Password Function?

Best regards
Simon

avatar

Additional information

We have downgraded RDM to version 2020.1.20.
There we do not have such a big delay when we change the Vaults and the username and password are immediately copied to the clipboard
With version 2020.2.13.0 the username and password copy is delayed by 5 seconds each until it reaches the clipboard

DPS is currently left at this level even though it is not really usable

Best regards
Simon

avatar

Simon,

For the copy username & password issue I have an idea what it might be, can you please try the following?

  • Help > Clipboard Diagnostic
    • Configuration tab
    • Clipboard copy method -> set it to "Legacy" hit Save
  • Copy username (only) do not use the "Copy Username & Password" button
    • Was it faster?
  • Clipboard copy method -> set it to "Paste once (secure)" hit Save
  • Copy username (only)
    • Slow again?
  • Close the Clipboard Diagnostic window


Now for the vault change issue:

  • Help > Profiler
    • Profiler Level = 1
  • Change vault
    • Copy the output and paste it here, please use the "Code Block" undefined (icon) as not to lose the formatting of the trace.
  • Close the Profiler window


I will analyze and get back to you.

Best regards,

Stéfane Lavergne

avatar

Hi Stéfane

With both methods (Legacy and Paste once) we have a delay of 5 seconds


I have added the logs of both RDM versions to compare


Here is the debug log when switching to the Vault with RDM 2020.2.13
This log was recorded by a Windows Server 2019 (terminal server)

Thread : 8
----------------------------------------
8 - 15:01:56.604920	OfflineManager.SaveMeta...
8 - 15:01:56.604920	        750cdc81-ec43-4e82-8e5f-b4bc3595fde6
8 - 15:01:56.627925	    SaveSecurityInfo : 23 ms
8 - 15:01:56.632916	    Repository : 5 ms
8 - 15:01:56.645915	    Expiration : 12 ms
8 - 15:01:56.648915	    DataSourceSettings : 2 ms
8 - 15:01:56.684916	    PrivateConnectionManager.Saving : 36 ms
8 - 15:01:56.728916	    ConnectionOverrideManager.Saving : 43 ms
8 - 15:01:56.735917	OfflineManager.SaveMeta : 131 ms
8 - 15:02:12.714512	OfflineManager.SaveMeta...
8 - 15:02:12.714512	        750cdc81-ec43-4e82-8e5f-b4bc3595fde6
8 - 15:02:13.607527	    SaveSecurityInfo : 892 ms
8 - 15:02:13.616527	    Repository : 8 ms
8 - 15:02:13.626528	    Expiration : 10 ms
8 - 15:02:13.629532	    DataSourceSettings : 3 ms
8 - 15:02:13.681531	    PrivateConnectionManager.Saving : 51 ms
8 - 15:02:13.693527	    ConnectionOverrideManager.Saving : 12 ms
8 - 15:02:13.694527	OfflineManager.SaveMeta : 979 ms

Main thread (UI)
----------------------------------------
15:01:56.604920	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit...
15:01:56.606916	    OfflineManager.GetDataSourceSettings : 1 ms
15:01:56.606916	    ClearConnections - dispose : 0 ms
15:01:56.612918	reload: True hasSecurityChanged: False hasChanged: True
15:01:56.613918	    HasOfflineChanges...
15:01:56.614916	        HasOfflineSessionChanges : 1 ms
15:01:56.626916	    HasOfflineChanges : 13 ms
15:01:56.634916	Silent: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: startIndex
   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   at System.BitConverter.ToInt64(Byte[] value, Int32 startIndex)
   at Devolutions.RemoteDesktopManager.Managers.OpenMCDFv2OfflineEngine.Meta.get_Expiration()
   at Devolutions.RemoteDesktopManager.Managers.BaseOfflineEngine.c17214053d4e2a494fdcb0906517d5805()
15:01:56.650925	    OfflineManager.GetDataSourceSettings : 1 ms
15:01:56.650925	Offline engine: Default
15:01:56.656918	Silent: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: startIndex
   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   at System.BitConverter.ToInt64(Byte[] value, Int32 startIndex)
   at Devolutions.RemoteDesktopManager.Managers.OpenMCDFv2OfflineEngine.Meta.get_Expiration()
   at Devolutions.RemoteDesktopManager.Managers.BaseOfflineEngine.c17214053d4e2a494fdcb0906517d5805()
15:01:56.669917	    OfflineManager.LoadConnections...
15:01:56.669917	        LoadConnectionsFromOfflineFile...
15:01:56.669917	            ReadFromOffline : 0 ms
15:01:56.669917	        LoadConnectionsFromOfflineFile : 0 ms
15:01:56.671918	Silent: System.ArgumentException: Byte array for GUID must be exactly 16 bytes long.
   at System.Guid..ctor(Byte[] b)
   at Devolutions.RemoteDesktopManager.Managers.OpenMCDFv2OfflineEngine.Meta.get_CacheID()
   at Devolutions.RemoteDesktopManager.Managers.OpenMCDFv2OfflineEngine.DoLoadCacheID()
   at Devolutions.RemoteDesktopManager.Managers.BaseOfflineEngine.get_CacheID()
15:01:57.112931	    OfflineManager.LoadConnections : 461 ms
15:01:57.112931	    LoadConnectionsFromDataSource...
15:01:57.112931	        LoadDataSourceSettingsFromDataSource...
15:01:57.114926	            GetDataSourceSettings...
15:02:03.844353	                GetData : 6728 ms
15:02:03.845357	            GetDataSourceSettings : 6732 ms
15:02:03.845357	        LoadDataSourceSettingsFromDataSource : 6732 ms
15:02:03.896360	        GetConnections...
15:02:03.896360	            RDMS.GetConnections...
15:02:03.896360	                this.dataSourceSettingsConnectionData : 0 ms
15:02:03.896360	                ConnectionInfos.Foreach...
15:02:04.071360	                    DecryptData : 165 ms - Count : 11112
15:02:06.399402	                    DeserializeData : 2327 ms - Count : 11111
15:02:06.432401	                    Log - multi-threaded : 0 ms
15:02:06.432401	                    Decrypt - multi-threaded : 0 ms
15:02:06.432401	                    LoadObjectFromString - multi-threaded : 0 ms
15:02:06.432401	                ConnectionInfos.Foreach : 2535 ms
15:02:06.433401	                Fetched 11111 sessions
15:02:06.433401	                Fetched 1 removed sessions
15:02:06.433401	            RDMS.GetConnections : 2537 ms
15:02:06.433401	        GetConnections : 2537 ms
15:02:06.433401	        DoMergeConnections...
15:02:06.469400	            PrepareConnectionList : 35 ms
15:02:06.504398	            Loop...
15:02:12.570508	                Initialize : 97 ms
15:02:12.570508	                Migrate Connection : 9 ms
15:02:12.570508	                OfflineManager.Merge : 0 ms
15:02:12.570508	                Merge With List - Contains : 0 ms
15:02:12.570508	                Merge With List : 5944 ms
15:02:12.570508	            Loop : 6065 ms
15:02:12.714512	            Filter : 144 ms
15:02:12.714512	            ClearConnections : 0 ms
15:02:12.714512	        DoMergeConnections : 6280 ms
15:02:12.714512	    LoadConnectionsFromDataSource : 15601 ms
15:02:12.851514	    ClearConnections : 0 ms
15:02:13.029545	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 16424 ms
15:02:13.102518	Connection States: Refresh...
15:02:13.345523	    ClearClosedRunning : 243 ms
15:02:13.431524	    GetAllConnectionStates : 85 ms - Count : 66
15:02:13.431524	    HasChanges : 0 ms
15:02:13.434526	Connection States: Refresh : 332 ms
15:02:13.434526	TreeView.LoadConnectionList...
15:02:13.434526	    GetGroupInfos : 0 ms
15:02:13.434526	    BeginUpdate...
15:02:13.694527	        LoadConnectionInTreeNode : 85 ms
15:02:13.694527	        PreCreateGroups : 169 ms - Count : 1
15:02:13.694527	    BeginUpdate : 259 ms
15:02:13.694527	TreeView.LoadConnectionList : 259 ms
15:02:13.847534	SelectionChanged...
15:02:13.847534	    LoadConnectionList : 0 ms
15:02:13.884532	    RootDashboardOverviewManager.LoadRootDashboardOverView - Quick Load : 37 ms
15:02:13.884532	    LoadConnectionList : 0 ms
15:02:14.205537	SelectionChanged : 359 ms

Thread : 17
----------------------------------------
17 - 15:02:03.845357	OfflineManager.SaveMeta...
17 - 15:02:03.845357	        750cdc81-ec43-4e82-8e5f-b4bc3595fde6
17 - 15:02:03.865358	    SaveSecurityInfo : 19 ms
17 - 15:02:03.869357	    Repository : 3 ms
17 - 15:02:03.883356	    Expiration : 14 ms
17 - 15:02:03.887356	    DataSourceSettings : 4 ms
17 - 15:02:03.927353	    PrivateConnectionManager.Saving : 39 ms
17 - 15:02:03.941358	    ConnectionOverrideManager.Saving : 13 ms
17 - 15:02:03.941358	OfflineManager.SaveMeta : 96 ms

Thread : 4
----------------------------------------
4 - 15:02:09.332451	Sync to Offline...
4 - 15:02:09.369459	    Offline.AddOrUpdateConnection : 37 ms
4 - 15:02:10.149465	Sync to Offline : 819 ms - Count : 5176
4 - 15:02:12.595508	Sync to Offline...
4 - 15:02:12.642510	    Offline.AddOrUpdateConnection : 47 ms
4 - 15:02:13.608526	Sync to Offline : 1015 ms - Count : 5935




Here is the debug log when switching to the Vault with RDM 2020.1.20, which seems to be faster and the log smaller
This log was recorded from a Windows 10 machine

Main thread (UI)
----------------------------------------
15:06:36.854674	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit...
15:06:36.855672	    OfflineManager.GetDataSourceSettings : 0 ms
15:06:36.855672	    ClearConnections - dispose : 0 ms
15:06:36.861655	reload: True hasSecurityChanged: False hasChanged: True
15:06:36.861655	    HasOfflineChanges...
15:06:36.862653	        HasOfflineSessionChanges : 0 ms
15:06:36.862653	    HasOfflineChanges : 1 ms
15:06:36.873621	    OfflineManager.GetDataSourceSettings : 0 ms
15:06:36.873621	Offline engine: Default
15:06:36.879605	    OfflineManager.LoadConnections...
15:06:36.879605	        LoadConnectionsFromOfflineFile...
15:06:36.879605	            ReadFromOffline : 0 ms
15:06:36.879605	        LoadConnectionsFromOfflineFile : 0 ms
15:06:37.111985	    OfflineManager.LoadConnections : 238 ms
15:06:37.111985	    LoadConnectionsFromDataSource...
15:06:37.111985	        LoadDataSourceSettingsFromDataSource...
15:06:37.116997	            GetDataSourceSettings...
15:06:42.080221	                GetData : 4962 ms
15:06:42.083214	            GetDataSourceSettings : 4970 ms
15:06:42.083214	        LoadDataSourceSettingsFromDataSource : 4970 ms
15:06:42.128063	        GetConnections...
15:06:42.128063	            RDMS.GetConnections...
15:06:42.128063	                this.dataSourceSettingsConnectionData : 0 ms
15:06:42.128063	                ConnectionInfos.Foreach...
15:06:42.128063	                    DecryptData : 0 ms - Count : 1
15:06:42.128063	                    DeserializeData : 0 ms
15:06:42.128063	                    Log - multi-threaded : 0 ms
15:06:42.128063	                    Decrypt - multi-threaded : 0 ms
15:06:42.128063	                    LoadObjectFromString - multi-threaded : 0 ms
15:06:42.128063	                ConnectionInfos.Foreach : 0 ms
15:06:42.128063	                Fetched 0 sessions
15:06:42.128063	                Fetched 1 removed sessions
15:06:42.128063	            RDMS.GetConnections : 0 ms
15:06:42.128063	        GetConnections : 0 ms
15:06:42.128063	        DoMergeConnections...
15:06:42.128063	            PrepareConnectionList : 0 ms
15:06:42.128063	            Loop...
15:06:42.129060	                Initialize : 0 ms
15:06:42.129060	                Migrate Connection : 0 ms
15:06:42.129060	                OfflineManager.Merge : 0 ms
15:06:42.129060	                Merge With List - Contains : 0 ms
15:06:42.129060	                Merge With List : 0 ms
15:06:42.129060	            Loop : 0 ms
15:06:42.170948	            Filter : 42 ms
15:06:42.170948	            ClearConnections : 0 ms
15:06:42.170948	        DoMergeConnections : 43 ms
15:06:42.170948	    LoadConnectionsFromDataSource : 5058 ms
15:06:42.333513	    ClearConnections : 0 ms
15:06:42.501065	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 5646 ms
15:06:42.567886	Connection States: Refresh...
15:06:42.818235	    ClearClosedRunning : 250 ms
15:06:42.899995	    GetAllConnectionStates : 81 ms - Count : 66
15:06:42.899995	    HasChanges : 0 ms
15:06:42.903985	Connection States: Refresh : 335 ms
15:06:42.903985	TreeView.LoadConnectionList...
15:06:42.903985	    GetGroupInfos : 0 ms
15:06:42.903985	    BeginUpdate...
15:06:43.145339	        LoadConnectionInTreeNode : 67 ms
15:06:43.145339	        PreCreateGroups : 168 ms - Count : 1
15:06:43.145339	    BeginUpdate : 241 ms
15:06:43.145339	TreeView.LoadConnectionList : 241 ms
15:06:43.313888	SelectionChanged...
15:06:43.313888	    LoadConnectionList : 0 ms
15:06:43.387690	SelectionChanged : 75 ms

Thread : 18
----------------------------------------
18 - 15:06:42.084212	OfflineManager.SaveMeta...
18 - 15:06:42.084212	        750cdc81-ec43-4e82-8e5f-b4bc3595fde6
18 - 15:06:42.111117	    SaveSecurityInfo : 26 ms
18 - 15:06:42.120088	    Repository : 9 ms
18 - 15:06:42.126094	    Expiration : 6 ms
18 - 15:06:42.127066	    DataSourceSettings : 0 ms
18 - 15:06:42.131055	    PrivateConnectionManager.Saving : 4 ms
18 - 15:06:42.134047	    ConnectionOverrideManager.Saving : 2 ms
18 - 15:06:42.135044	OfflineManager.SaveMeta : 51 ms

Thread : 4
----------------------------------------
4 - 15:06:42.140057	Sync to Offline...
4 - 15:06:42.140057	    Offline.AddOrUpdateConnection : 0 ms
4 - 15:06:43.143378	Sync to Offline : 1004 ms

Thread : 5
----------------------------------------
5 - 15:06:42.171946	OfflineManager.SaveMeta...
5 - 15:06:42.171946	        750cdc81-ec43-4e82-8e5f-b4bc3595fde6
5 - 15:06:43.144375	    SaveSecurityInfo : 972 ms
5 - 15:06:43.145339	    Repository : 0 ms
5 - 15:06:43.147334	    Expiration : 1 ms
5 - 15:06:43.147334	    DataSourceSettings : 0 ms
5 - 15:06:43.152355	    PrivateConnectionManager.Saving : 4 ms
5 - 15:06:43.156310	    ConnectionOverrideManager.Saving : 4 ms
5 - 15:06:43.156310	OfflineManager.SaveMeta : 985 ms


avatar

Perfect that's exactly what I needed. I will get back to you soon.

Stéfane Lavergne

avatar

I think your offline cache might be corrupt. Can you please try the following:

  • In RDM
  • File > Data Sources > Edit
  • CTRL + click on the ID (bottom left in blue)
    • this will open a Windows explorer window
  • Close RDM
  • delete all files in the directory
  • open RDM (you are in vault "A")
  • start Profiler (Help > Profiler)
  • change vault "B"
  • change vault "A"
    • faster?
  • change vault "B"
    • faster?


Look for this line in the profiler, the load time will be displayed:

LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : xxxxxx ms


Also, please check your offline mode. File > My Data Source Information, the top must not be "Disabled" any other value you are good.
undefined

Best regards,

Stéfane Lavergne

avatar

Hei Stéfane

The offline mode seems to be ok

undefined


I cleared the offline cache and the switch is a little better but still over 15 seconds.
But always only in the one Vault where it has many entries.

I have given my user admin rights for testing.
Here the switch is very fast and the delay with the clipboard is no longer present with the admin rights

Here is the log with admin rights

Thread : 19
----------------------------------------
19 - 08:54:13.788520	OfflineManager.SaveMeta...
19 - 08:54:13.788520	        750cdc81-ec43-4e82-8e5f-b4bc3595fde6
19 - 08:54:13.793517	    SaveSecurityInfo : 4 ms
19 - 08:54:13.793517	    Repository : 0 ms
19 - 08:54:13.795521	    Expiration : 1 ms
19 - 08:54:13.796521	    DataSourceSettings : 0 ms
19 - 08:54:13.803519	    PrivateConnectionManager.Saving : 7 ms
19 - 08:54:13.803519	    ConnectionOverrideManager.Saving : 0 ms
19 - 08:54:13.804522	OfflineManager.SaveMeta : 17 ms
19 - 08:55:13.659051	Connection States: Refresh...
19 - 08:55:13.719059	    ClearClosedRunning : 59 ms
19 - 08:55:13.737053	    GetAllConnectionStates : 18 ms - Count : 55
19 - 08:55:13.737053	    HasChanges : 0 ms
19 - 08:55:13.737053	Connection States: Refresh : 77 ms

Main thread (UI)
----------------------------------------
08:54:13.788520	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit...
08:54:13.790522	    OfflineManager.GetDataSourceSettings : 1 ms
08:54:13.790522	    ClearConnections - dispose : 0 ms
08:54:13.793517	reload: True hasSecurityChanged: False hasChanged: True
08:54:13.793517	    HasOfflineChanges...
08:54:13.794521	        HasOfflineSessionChanges : 1 ms
08:54:13.794521	    HasOfflineChanges : 1 ms
08:54:13.807522	    OfflineManager.GetDataSourceSettings : 0 ms
08:54:13.808522	Offline engine: Default
08:54:13.813523	    OfflineManager.LoadConnections...
08:54:13.813523	        LoadConnectionsFromOfflineFile...
08:54:13.814524	            ReadFromOffline : 0 ms
08:54:13.814524	        LoadConnectionsFromOfflineFile : 0 ms
08:54:14.086552	    OfflineManager.LoadConnections : 278 ms
08:54:14.086552	    LoadConnectionsFromDataSource...
08:54:14.086552	        LoadDataSourceSettingsFromDataSource...
08:54:14.089550	            GetDataSourceSettings...
08:54:14.111547	                GetData : 22 ms
08:54:14.115570	            GetDataSourceSettings : 28 ms
08:54:14.115570	        LoadDataSourceSettingsFromDataSource : 28 ms
08:54:14.137553	        GetConnections...
08:54:14.137553	            RDMS.GetConnections...
08:54:14.137553	                this.dataSourceSettingsConnectionData : 0 ms
08:54:14.137553	                ConnectionInfos.Foreach...
08:54:14.137553	                    DecryptData : 0 ms
08:54:14.137553	                    DeserializeData : 0 ms
08:54:14.137553	                    Log - multi-threaded : 0 ms
08:54:14.137553	                    Decrypt - multi-threaded : 0 ms
08:54:14.137553	                    LoadObjectFromString - multi-threaded : 0 ms
08:54:14.137553	                ConnectionInfos.Foreach : 0 ms
08:54:14.137553	                Fetched 0 sessions
08:54:14.137553	                Fetched 0 removed sessions
08:54:14.137553	            RDMS.GetConnections : 0 ms
08:54:14.137553	        GetConnections : 0 ms
08:54:14.137553	        DoMergeConnections...
08:54:14.137553	            PrepareConnectionList : 0 ms
08:54:14.137553	        DoMergeConnections : 0 ms
08:54:14.138550	    LoadConnectionsFromDataSource : 51 ms
08:54:14.142553	    ClearConnections : 0 ms
08:54:14.270563	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 483 ms
08:54:14.323569	MigrateDataSource: ver.5 : 0 ms
08:54:14.323569	Connection States: Refresh...
08:54:14.410575	    ClearClosedRunning : 86 ms
08:54:14.428579	    GetAllConnectionStates : 17 ms - Count : 55
08:54:14.428579	    HasChanges : 0 ms
08:54:14.433580	Connection States: Refresh : 109 ms
08:54:14.433580	TreeView.LoadConnectionList...
08:54:14.433580	    GetGroupInfos : 0 ms
08:54:14.433580	    BeginUpdate...
08:54:14.673599	        LoadConnectionInTreeNode : 66 ms
08:54:14.673599	        PreCreateGroups : 170 ms - Count : 1
08:54:14.673599	    BeginUpdate : 239 ms
08:54:14.673599	TreeView.LoadConnectionList : 239 ms
08:54:14.812611	SelectionChanged...
08:54:14.812611	    LoadConnectionList : 0 ms
08:54:14.860630	    RootDashboardOverviewManager.LoadRootDashboardOverView - Quick Load : 48 ms
08:54:14.899623	SelectionChanged : 88 ms

Thread : 13
----------------------------------------
13 - 08:54:14.115570	OfflineManager.SaveMeta...
13 - 08:54:14.115570	        750cdc81-ec43-4e82-8e5f-b4bc3595fde6
13 - 08:54:14.122550	    SaveSecurityInfo : 6 ms
13 - 08:54:14.122550	    Repository : 0 ms
13 - 08:54:14.127550	    Expiration : 4 ms
13 - 08:54:14.131548	    DataSourceSettings : 4 ms
13 - 08:54:14.133583	    PrivateConnectionManager.Saving : 1 ms
13 - 08:54:14.135551	    ConnectionOverrideManager.Saving : 2 ms
13 - 08:54:14.138550	OfflineManager.SaveMeta : 22 ms

Thread : 5
----------------------------------------
5 - 08:54:14.138550	OfflineManager.SaveMeta...
5 - 08:54:14.138550	        750cdc81-ec43-4e82-8e5f-b4bc3595fde6
5 - 08:54:14.142553	    SaveSecurityInfo : 4 ms
5 - 08:54:14.142553	    Repository : 0 ms
5 - 08:54:14.144552	    Expiration : 1 ms
5 - 08:54:14.150549	    DataSourceSettings : 5 ms
5 - 08:54:14.151550	    PrivateConnectionManager.Saving : 1 ms
5 - 08:54:14.157550	    ConnectionOverrideManager.Saving : 5 ms
5 - 08:54:14.157550	OfflineManager.SaveMeta : 19 ms


08:54:14.270563	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 483 ms



When I remove the admin rights, it is slow again and the clipboard has the 5 seconds delay again.

The change of the Vault and also the clipboard function must be fast even as a normal user:-)


Best regards
Simon

avatar
I have given my user admin rights for testing.
Here the switch is very fast and the delay with the clipboard is no longer present with the admin rights.

Nice, we will investigate. Now we know where and what to look for so it shouldn't be long to solve.

The change of the Vault and also the clipboard function must be fast even as a normal user:-)

I agree with you 100%

Can you please try the newest version v2020.2.14, I'm 95% sure it won't solve your issue but it's worth a try.

Best regards,

Stéfane Lavergne

avatar

Hi Stéfane

I have testet the Version 2020.2.14.
The clipboard works both as admin and non-admin without delay. Great

Switching to the Vault is fast with admin rights. As a user without admin rights it takes a lot longer

Switch with admin rights

13:54:48.094323 LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 419 ms



Switch without admin rights first time after startup

13:56:18.074589	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 12179 ms


Switch without admin rights from one Vault back and again

13:56:48.537233	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 5379 ms

These 5 seconds remain and will not decrease

Why is there a 5 second difference between users with admin rights and without admin rights?

avatar

We are setting up here to reproduce the issue.

Yes, non-administrators will be slower but NOT 5 seconds slower, says 100-500ms slower since we need to apply the permissions granted to that user down the session list.

Are they AD users?

I'm trying to determine if the issue is client side, sever side or a combination of both. Could you please perform the following and post the entire profiler trace for each?

For each user (non-admin & admin)

  • select the "big" vault
  • CTRL+refresh (this does a "full load" of the data, no caching)
    • send us this trace
  • move to a second vault
  • move back to the "big" vault
    • send us this trace


Thank you, you've been really helpful on this thread. Your debugging, observation and analysis skills are on point.

Best regards,

Stéfane Lavergne

avatar

Hi Stéfane

Yes, all users are AD users.

I have taken the desired steps.
To keep it clear I have saved them in text files

I hope it is understandable

Best regards
Simon

normal user switch vaults.txt

normal user Ctrl refresh.txt

admin user switch vaults.txt

admin user Ctrl refresh.txt

avatar

Simon,

That is perfect thank you. I will get back to you with details once I figured out what is going on.

Best regards,

Stéfane Lavergne

avatar

Simon,

Quick update.

We've found and resolved 4 performance issues (3 in RDM and 1 in DPS) while also adding some profiling on the DPS side to help with further analysis in case it is necessary.

Now the focus is getting these builds to you. A new RDM build (v2020.2.15) should be out within the next day. Since I just missed what should be an official DPS release (v2020.2.7.0), I will create you a patch private build (v2020.2.7.1) that contains only the performance fixes for you (much quicker than a full QA test cycle with minimal risk). Once everything is available, I will send you the download links.

Best regards,

Stéfane Lavergne

avatar

Hi Stéfane

Thanks for the feedback.
I'll wait to hear back from you

Best regards
Simon



avatar

Simon,

Sent you a private message with download links to DPS & RDM.

Best regards,

Stéfane Lavergne

avatar

Hi Stéfane

Thanks for the information.
We will first check this on a test environment and then install it in the productive environment.

So it may be a few days before you hear from me again.

Best regards
Simon

avatar

Smart move with staging, no rush, let me know what you think.

Best regards,

Stéfane Lavergne

avatar

How do we have to import these files to perform an update?
Is there a how-to without an exe or msi? :-)

avatar

Here is the help link for upgrading your DPS using the .zip (https://helpserver.devolutions.net/upgrade_rdms.html)

FYI we offer remote session to help upgrade servers, if ever you are interested let me know someone from the support team can help you with that.

Stéfane Lavergne

avatar

Hi Stéfane

The upgrade in the test environment to version 2020.1.13.0 works fine.
Then we went one step further

We have tried to install the "special" update in the test environment. Unfortunately the installation was destroyed each time.
After installation, DPS and RDM no longer work. No data could be read and written

Then we tested the official version 2020.2.7.0
After this installation, DPS and RDM will no longer work. No data could be read and written.
We have done this several times and always got the same result

I think something's wrong. So far all updates have worked correctly

After the update we receive the following log

Best regards
Simon

DPS Error.html

avatar

Hello,

We can perform the DPS upgrade with you via a remote session and see what is going on in your staging environment.

Could you send us an email at ticket@devolutions.net so that we can schedule a session with my team to perform the upgrade?
Don't forget to include the URL for this thread in your message so that we can retrieve it easily.

Best regards,

Jeff Dagenais

avatar

Hello,

We haven't hear from you if you are interested for a support session to troubleshoot or reinstall the custom DPS build my colleague Stefane created for you.

Have you successfully installed that version?

If not, please send us an email at ticket@devolutions.net to open a ticket in our system and we will send you our online reservation system to book the session.

Best regards,

Érica Poirier

avatar

Hi Erica

No, the installation has not yet been successful

Right now it's a little stressful because of the holiday season.
I will get back to you as soon as I have more time for the tests.

Best regards
Simon

avatar

Hi together

I had some more time to check the test installation.
It's awkward

I have seen only at the second check, that the DPC Console should be updated before the update and we have an older version in use.
We were still using version 2019.1.17 and therefore the update always failed.
I have installed the latest DPS Console and could successfully install the special update DPS 2020.2.7.2 without errors.

Shame on me

I will install the special update in our productive environment and check if the performance has improved.
Based on the holiday season, I can do this only later this month.
I'll get back to you

Many thanks for your support and patience

Best regards
Simon

avatar

Thank you for the update.

Best regards,

Stéfane Lavergne

avatar

Hi Stéfane

The holiday season is over and i can continue here.
The update in the productive environment is scheduled for this Wednesday evening

I have seen that we at DPS have now arrived at version 2020.2.9.0.
Should I still install the special version 2020.2.7.2 which I received from you or the latest version 2020.2.9.0. ?

Best regards
Simon

avatar

Hello Simon,

The fix that was in special version 2020.2.7.2 is now included in DPS 2020.2.9. You can then install the latest DPS version.

Let us know how it goes following the upgrade on Wednesday.

Best regards,

Érica Poirier

avatar

Hi together

Yesterday evening I installed the update on our productive environment.
The update process went without problems. DPS Console and Web are on the Version 2020.2.9.0. RDM is on the Version 2020.2.19.0

Unfortunately the performance has not improved. DPS Web can still not be used and the delays in RDM are still present

I have logged the whole thing and attached detailed text files.

Pre Information

  • The smaller Vault is called A
  • The big vault is called B.



Windows 10 V.2004 / The User has no admin Permission

After starting RDM i am in Vault A

First switch to the big Vault B
14:37:16.550236	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 12163 ms

Switch back to Vault A
14:38:54.108728	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 170 ms

Second switch to the big Vault B
14:43:31.363914	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 739 ms




Windows 10 V.2004 / The User has admin Permission

After starting RDM i am in Vault A

First switch to the big Vault B
15:08:37.111292	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 2789 ms

Switch back to Vault A
15:09:42.123655	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 115 ms

Second switch to the big Vault B
15:10:20.855634	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 542 ms



That would be an acceptable speed. But we work 99% on terminal servers


Windows Server 2019 / The User has no admin Permission

After starting RDM i am in Vault A

First switch to the big Vault B
14:46:56.664343	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 10755 ms

Switch back to Vault A
14:48:12.492549	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 144 ms

Second switch to the big Vault B
14:49:01.559717	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 11108 ms




Windows Server 2019 / The User has admin Permission

After starting RDM i am in Vault A

First switch to the big Vault B
15:11:23.553478	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 5919 ms

Switch back to Vault A
15:11:55.402344	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 163 ms

Second switch to the big Vault B
15:12:37.473661	LoadConnections [Devolutions Password Server : DPS4N01] - 64-bit : 6512 ms


I do not understand why the performance on the 2019 server is so much slower than with Windows 10.
The work is done by the DPS server and not the client on which RDM is installed. or am I wrong here?


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Here we come to the big problem with DPS. The DPS Web is not used in the current state


DPS Web

After login in the DPS Web i am in Vault A
Unfortunately I did not find any logs here and had to stop the time manually.

The only thing I see on the DPS server is a load on the IIS Worker Process w3wp.exe of 25%
But that shouldn't be a problem

First switch to the big Vault B
106 Seconds

Switch back to Vault A
0.5 seconds

Second switch to the big Vault B
105 Seconds



We have 5430 entries and 5672 folders in the big Vault.
If we can't solve this problem, we will have to see if we can split this one big Vault.

But the goal is to be able to keep this one Vault



Do you have any more ideas?

Best regards
Simon

Win10_With_Admin_3_Second Switch to the big Vault B.txt

Win10_With_Admin_2_Switch back to the Vault A.txt

Win10_With_Admin_1_First switch to big Vault B.txt

Win10_No_Admin_3_Second Switch to the big Vault B.txt

Win10_No_Admin_2_Switch back to the Vault A.txt

Win10_No_Admin_1_First switch to big Vault B.txt

Server2019_With_Amin_1_First switch to big Vault B.txt

Server2019_With_Admin_3_Second Switch to the big Vault B.txt

Server2019_With_Admin_2_Switch back to the Vault A.txt

Server2019_No_Admin_3_Second Switch to the big Vault B.txt

Server2019_No_Admin_2_Switch back to the Vault A.txt

Server2019_No_Admin_1_First switch to big Vault B.txt

avatar

Hello,

The number of entries will definitely have an impact in RDM and also the way the permissions are set on folders and/or entries for non-admin users. As I understand, the biggest vault contains up to 11K entries, folders included. We recommend not going over 4K entries per vault to get RDM running smoothly.

About RDM on the Windows Server 2019, is the data source configuration is identical as RDM on the Windows 10 machine? Is the Caching mode set to intelligent in the Advanced tab in File - Data Sources?

Let us know if you want us to investigate your configuration on the Windows Server 2019 during a remote session. If you are interested, please send an email to ticket@devolutions.net and we will send a link to book the session.

Best regards,

Érica Poirier

avatar

Hi Erica

Thanks for the feedback

The data source configuration is identical as RDM on the Windows 10 machine.
The caching mode set to intelligent. There are no differences in the configuration.

But that is not the biggest problem for us. For now, we won't pursue this any further

I will now try to split the big Vault in the test environment and see how it behaves afterwards.
If all Vault-switches are fast enough when splitting the Vault, hopefully the problem with the terminal server will be solved too

I will do this next week and let you know if we can close this thread

Happy weekend
Simon

avatar

Hi Simon,

Thank you for your feedback.

We will then wait for the vault split you will achieve.

Have a good weekend too!

Best regards,

Érica Poirier

avatar

Hi

I have split the big Vault into two Vaults.


In RDM the performance is good.
In DPS Web the performance is still bad. Switching between these smaller vaults still takes 20-30 seconds. In RDM 200-300ms

In the next step i want to try to delete empty folders in this Vault.
Is there a Powershell Comand or another option to show all empty folders to delete them directly?
To delete this one by one is a pain

Best Regards
Simon

avatar

Hello,

Thank you for your feedback and sorry that the DPS web interface is still slow to respond.

Could you please send us a trace report when you switch vault in the DPS web interface? In Chrome, or any browser, open the developer diagnostic window with F12. Then select the Network tab (1). Clean all calls that are displayed to get only those for a vault switch (2). Then, export the trace report with the Export HAR button (3). You can send me the file in a private message if you don't want to attach it to your next post.
forum image

About deleting empty folders, I will create a PowerShell script as there is no specific cmdlet available that will allow us to easily delete an empty folder.

Best regards,

Érica Poirier

avatar

Hello,

So here is the PowerShell script to delete all empty folders. It is important to backup your data prior to run this script for safety measure and even test it in a staging environment. You could also comment the Remove-RDMSession line to get only the list of the folders that will be deleted.

Import-Module RemoteDesktopManager.PowerShellModule

# Replace the data source name with yours in the following command.
$ds = Get-RDMDataSource -Name 'YourDataSourceNameHere'
Set-RDMCurrentDataSource $ds

$folders = Get-RDMSession | Where-Object{$_.ConnectionType -eq "Group"}
foreach ($f in $folders)
{
    $groupname = $f.Group
    $sessions = Get-RDMSession | Where-Object{($_.Group -like "$groupname*")}
    If ($sessions.Count -eq 1)
    {
        Remove-RDMSession $sessions -Force -Refresh
        Write-Host "Folder" $sessions.Name "has been deleted!"
    }
}
Update-RDMUI


Best regards,

Érica Poirier

avatar

Hi Erica

Thanks for your feedback and your work with the Powershell Script

I have sent you the .har files in a private message.
I will try the Powershell Script tomorrow

Best regards
Simon

avatar

Hi Erica

Is it possible that user credentials must be added to the script?
In the test environment I do not use AD integration. So the script is executed with a user who has no rights in RDM/DPS

Currently I get two errors with the script.
It does not find the data source. Although this name is correct and I renamed it for testing. Maybe because of the permissions?


PS C:\Admin\Scripts> .\RDM_Empty_Folders.ps1
Get-RDMSession : Connection not found.
At C:\Admin\Scripts\RDM_Empty_Folders.ps1:7 char:12
+ $folders = Get-RDMSession | Where-Object{$_.ConnectionType -eq "Group ...
+            ~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Get-RDMSession], Exception
    + FullyQualifiedErrorId : 0,RemoteDesktopManager.PowerShellModule.GetRDMSessionCommand


In the current form I get a access denied
When I rename the name of the data source I get the following error

PS C:\Admin\Scripts> .\RDM_Empty_Folders.ps1
Get-RDMDataSource : Cannot validate argument on parameter 'Name'. The argument "4net DPS Test Server" does not belong to the set "DPSDEV01" specified by the
ValidateSet attribute. Supply an argument that is in the set and then try the command again.
At C:\Admin\Scripts\RDM_Empty_Folders.ps1:4 char:31
+ $ds = Get-RDMDataSource -Name "4net DPS Test Server"
+                               ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Get-RDMDataSource], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,RemoteDesktopManager.PowerShellModule.GetRDMDatasourceCommand

WARNING: Data source not found
WARNING: Access denied
Folder Cloud has been deleted!
WARNING: Access denied
Folder OnPremise has been deleted!
WARNING: Access denied
Folder Clients has been deleted!
WARNING: Access denied
Folder Other Devices has been deleted!
WARNING: Access denied
Folder Physical Servers has been deleted!
WARNING: Access denied
Folder Virtual Servers has been deleted!
WARNING: Access denied
Folder Routers has been deleted!
WARNING: Access denied
Folder Switches has been deleted!
WARNING: Access denied
Folder Telephony has been deleted!
WARNING: Access denied
Folder Wireless has been deleted!


Best regards
Simon

avatar

Hello,

Thank you for the files. An engineer will have a look on it and I will get back to you shortly about it.

About the PowerShell script, the data source name is the one you are using in RDM in File - Data Sources (1). From the error message you have in the script, your data source name seems to be DPSDEVO1.
And about the credentials, it will use what you have set in the data source (2). There is no need to set the credentials in the script.

forum image

Best regards,

Érica Poirier

avatar

Hello,

About the performances in RDM and on the DPS web interface, were connected as an administrator or with a standard user?

Are you available for a remote session for troubleshooting this performance issue? It would be easier than having back and forth messages over the forum. If you are interested, please contact us at ticket@devolutions.net and we will send you a link to our online reservation system to book the session.

Best regards,

Érica Poirier