Skip to content

Conversation

@erwindon
Copy link
Owner

Hi Team,

I have a Salt Master running on Ubuntu 22.04 with Salt version 3006.1, managing over 1000 minions. To simplify management, I’ve configured SaltGUI for access. However, I’m noticing significant performance issues — particularly, it takes a long time to load and display the list of minions after logging into SaltGUI.

The Salt Master is running on a server with a 16-core CPU and 12 GB of RAM. I’d like to know if this hardware specification is sufficient for managing this number of minions, or if an upgrade is recommended. Additionally, are there any specific configuration best practices for optimizing Salt/SaltGUI performance in large environments like this?

Looking forward to your suggestions.

Best regards,
Sunder

@erwindon
Copy link
Owner

Sunder,

I answer the questions in reverse order.

The resource use on the Salt Master is not significantly altered by using SaltGUI. Obviously, more commands are executed as when compared to command-line use only. But in a Salt environment, it is mostly the minions that do the work. I have no measurements available on salt-master sizes for various scenarios.

The original design of SaltGUI is to show the list of minions on startup.
But you can choose a different landing page using the setting saltgui_pages. See section Reduced menus of the manual for that. I can update the mechanism so that it is easier to use that mechanism for only selecting the initial page instead of limiting the accessible pages (as was the original purpose).

If it helps, I can add options to limit the amount of additional data that is collected for certain pages.
e.g. the minions page could skip the collection of grains data (thus no ip-number, salt-version and os-version visible there).

You can also switch off the tooltips in the GUI by setting saltgui_tooltip_mode: none. (or saltgui_tooltip_mode: simple to get lightweight tooltips). This helps in the effort that the browser has to render a page.

@erwindon
Copy link
Owner

ping...

@sunderjayaraj
Copy link
Author

Sorry for the delayed response, Erwin. I’ve configured saltgui_pages to include only the "keys" and "logout" pages, and I’ve set saltgui_tooltip_mode to none. However, I’m still experiencing performance issues.

When I log in to SaltGUI, the system load average spikes to 20, and the interface becomes unresponsive. Please find the attached screenshots for your reference.

Image

Image

@erwindon
Copy link
Owner

It looks like auditbeat is consuming a lot of memory and some cpu, also causing swapspace to be used. which may slow down everything else.
I recommend to switch off swap and give the server enough memory to cope with that.
But it may be enough to just tune auditbeat or switch it off.
I've use ELK stack before, so I recognize auditbeat. But I cannot remember such resource use for it.

@sunderjayaraj
Copy link
Author

Hi Erwin,

"I configured saltgui_pages to include only the jobs page, which resulted in significant performance improvements. However, since the keys and grains pages are not included, the minion list is no longer available in the 'Manual Run' dropdown."

"Thank you for your valuable support and suggestions. The tool is working great!"

Thanks
Sunder

@erwindon
Copy link
Owner

erwindon commented May 29, 2025

I'm keeping this issue open to look at the list of minions to be available in de CommandBox under more/all cicumstances.

@erwindon erwindon removed the question label May 29, 2025
@sunderjayaraj
Copy link
Author

sunderjayaraj commented May 29, 2025 via email

@erwindon
Copy link
Owner

The list of minions is taken from the side effects of the following pages: Minions, Beacons, Grains, Nodegroups, Pillars or Schedules.
Since "Minions" is the default homepage, that works for most users.

I'm experimenting with an alternative that works in other cases, but should still be light-weight...

@erwindon
Copy link
Owner

migrated this issue to a PR

@erwindon
Copy link
Owner

erwindon commented May 29, 2025

@sunderjayaraj
SaltGUI branch cmd_minion_list now contains a crude solution for this.
The CommandBox will collect the information if it was not collected before.
The downside is that (for now) the result is only visible when you open the CommandBox for the second time.
I'll look whether that can be improved.
Can you please try out the branch from this PR?

Note that I've made fixes and merges for other issues. Please use git pull -r when updating that branch...

@erwindon erwindon assigned sunderjayaraj and unassigned erwindon May 29, 2025
@erwindon erwindon marked this pull request as draft May 29, 2025 18:08
@erwindon erwindon force-pushed the cmd_minion_list branch 6 times, most recently from c0c89df to cb4bc82 Compare May 30, 2025 22:27
@erwindon
Copy link
Owner

erwindon commented Jun 5, 2025

ping...

@sonarqubecloud
Copy link

@erwindon erwindon marked this pull request as ready for review June 11, 2025 23:22
@erwindon
Copy link
Owner

I've moved the code to initialize this list to always run on login.
This makes that procedure uniform as it is now always run on login only.
It will therefore work independent of the menu-bar authorizations.

@sunderjayaraj I will merge this code as it is an improvement, thx for bringing it up.

@erwindon erwindon merged commit e2babea into master Jun 11, 2025
8 checks passed
@erwindon erwindon deleted the cmd_minion_list branch June 11, 2025 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants