RDMS/RDM performance issue with 20K entries (sessions and credentials)

RDMS/RDM performance issue with 20K entries (sessions and credentials)

avatar

We're experiencing serious performance issue with 20000 entries in the Database (mixed credentials and sessions, mostly sessions). The client freezes frequently and becomes almost unusable.

We're running the latest version of the RDMS (2.2.21.0) and the client (10.1.4.0).

Is there something we can do to improve the performance? We had to temporarily reduce the number of entries below 10K to keep the system at acceptable performance level.

We'll soon have to import the remaining entries, so the problem will present itself very soon.


Regards,
Alex

All Comments (13)

avatar

Hi,
We recommend to have more than one data source when you have more than 5000 entries. The issue is that RDM is designed to load all the entries in memory. This allow you to have a tree instead of a search dialog.

We still have plan to improve the performance but 20000 is really huge.

David Hervieux

avatar

Hi,

How can I build multible Datasources for all clients on one Server instance?
Is that posible or we can I do that for all clients as well?

Cheers Pädu I

avatar

Hi,
You need to create multiple databases for now. Your RDMS license allows you to create 3 databases. We have a enhancement request on our todo list to allow multiple data sources in the same database.

David Hervieux

avatar

And how can i deploy that on the server site, so we have on connection sting for all clients?

avatar

Hello,

You will have three server instances, therefore your desktop clients will have three data sources.

You will need to contact us at support@devolutions.net to get your two other license keys as we normally send just one.

Are you using the custom installer?

Best regards,

Maurice

avatar

This will become an issue for us as well.
I prepared an empty tree (just folders). For 250 customer names I prepared a structure consisting of 25 folders
This results in 6000+ empty groups but this is not a particularly weird configuration. We like to keep things separated so we have a folder for accounts, one for servers, one for support tools, one for documents, one for switches et cetera.

Our objective is to put all information in the DB per customer. I would like to also add attachments like some documentation, visio, instructions, license-files et cetera in there. So maybe on average 20 connections and some accounts, maybe some text. This will add another 5000 sessions to the database.

We will be using RMDS and already have bought a license and the RDMS server set-up with a SQL Express back-end and the option to change that to SQL Standard when we reach the 10GB limit.

Groups and Sessions combined will then add up to over 11.000.

The datasource will be used internally and externally. I was hoping that the caching mechanism would handle everything in the background but this appears not to be the case.

I did contemplate with the idea of dividing the sessions into several datasources i.e. A, B, C -based in first letter but this is not feasible. Mostly because in order to reduce the performance issues we would need multiple licenses (?!?!). We only require one datasource and have no need for multiple sources other than performance issues.

It all seems strange to me. 10.000, 20.000, 50.000... these should be peanuts for a modern day computer. Especially with a clever database mechanism. If I run Process Monitor for 30 seconds it captures 500.000 events. That saves to a 180MB file in 2 seconds. The same file opens in 2 seconds and when I exclude or included stuff it filters those 500.000 events in the blink of an eye.

Maybe not a fair comparison but when opening a database with a mere 6000 items is slow then something seems not right. If I understand correctly RDM creates a local cache based on SQLite? When I work with RDM I only care for stuff that's on screen. I.e. the current Group I have opened. Everything else is on disk (ssd nowadays) and can be accessed anytime I open a Group.

Being able to show a tree makes sense but it may not be necessary to load all the stuff that is in collapsed groups ?
edited by rolflobker on 5/11/2015

avatar

Hello,

I havent read everything, but when a new license is required for performance reasons and you have worked with me on the setup, we will give you the licenses you require.

I will read the rest and respond in another post.

Maurice

avatar

Hello Again,

You cannot just estimate the time to load entries by analyzing the DB. Its a major part of the whole process for sure, but RDM uses an open architecture, which means that we use a XML structure for most of the information related to the sessions. Our shortcuts feature results in the whole tree having to be read at once.

We are working on many concepts to prevent all fo the data to be read in order for displaying what you need. We will soon add departments, as well a store group information in fields rather than the xml. Hopefully this will improve the performance dramatically.

About the log/history tables, indeed they must be cleaned up regularly. We have a feature request to help with that on our board.

Best regards,

Maurice

avatar

Thanks for the update! Looking forward to any improvements a next version will bring.

I didn't really based load times on DB size. Maybe I gave that impression. Loading a single DB with 1000 groups (customers) each containing 25 sub-groups was not doable. We can reduce that to 250 active customers but when we add the actual sessions this will still amount to ~15K + sessions. Or in other words: a tree of 15.000 objects to be fully loaded in memory, even when you expand just one customers Group :)

Should take us a few weeks to migrate all sessions into RDM. I am worried about the attachments and large number of sessions though. Will get back to when we hit performance issues in our production DB.

I removed some text which was just some statistics. Main objective was to illustrate the impact of custom images which is huge;

.rdm-export contains 25 (sub-) groups with 4 custom images
.rdm-file is 25.960 bytes

Imported this .rdm-file 253 times to new sessions each with a different (customer) name.
This resulted in a SQLite DB of 32MB which was very sluggish.

Altered .rdm-file and removed images. .rdm-file is now 11.616 bytes
Did the same import and the resulting DB is 17 MB. Performance increased a lot!

Bottom line: Do not use custom images!
At least: Not until images are all references in the DB instead of individual copies.
edited by rolflobker on 5/11/2015

avatar

On that note, please consult http://blog.devolutions.net/2015/04/introducing-theme-support-for-remote-desktop-manager.html

The impact of using custom images was the driving force for adding theme support.

Maurice

avatar

hi maurice,

i'm preparing upgrade from our RDMS to new DVLS and investigating in performance bottlenecks & improvements.
theme-support is a very interesting feature as i tested our db with and without custom images and there is a full-refresh-improvement of 100% without loading custom images.

but as i understand, usage of themes is limited to local-pc-settings and folders.
that makes this feature actually unuseable as the theme-images have to be distributed manually.

is there a better/improved solution in progress?

themes and theme-updates should be automatically distributed to all dvls-instance-users like shared-templates. maybe a separate container that gets synced after successfull authentication?
manual file-sync will not work since our RDMS has only 443-Port for communication through corporate firewall.

regards
markus

Kind Regards
Markus

======================

avatar

Hi Markus,
I will add an enhancement request for that. We could add a custom image distribution list and sync.

David Hervieux

avatar

thx
plz keep me up to date ...
we planned to change to new DVLS by begin of june, but i'll wait for your update on this.
i dont want to update all users twice ;-)

Kind Regards
Markus

======================