Forum: Cfengine Help
Subject: Adding large number of host classes slows down cfengine drastically
Author: Sal
Link to topic: https://cfengine.com/forum/read.php?3,19521,19521#msg-19521
I'm not sure if anyone else has already talked about this topic but here goes
just in case.
I added several host classes to my cfengine configuration and when cf-execd
runs it now takes several minutes (up to 8 minutes) to finish its run. I'm
running cfengine 3.0.5p1 on centos 5.4.
Here is an example of the size of the bundle that has the definitions of the
host classes:
bundle common prod_host_classes
{
vars:
"prod_web_hosts" string => "www.*";
"prod_cache_hosts" string => "cache.*";
"prod_updater_hosts" string => "updater.*";
"prod_db_hosts" string => "db.*";
"prod_admin_hosts" string => "admin.*";
"prod_sched_hosts" string => "scheduler.*";
"prod_presales_hosts" slist => { "presales01", "sales_demo01",
"sales_clean01" };
"prod_data_hosts" slist => { "clean01", "ms.*" };
"prod_nagios_hosts" slist => { "monitor01", "emonitor01" };
"prod_backups_hosts" string => "backup01";
classes:
"prod_web" or => { classmatch("$(prod_web_hosts)") };
"prod_cache" or => { classmatch("$(prod_cache_hosts)") };
"prod_updater" or => { classmatch("$(prod_updater_hosts)") };
"prod_db" or => { classmatch("$(prod_db_hosts)") };
"prod_admin" or => { classmatch("$(prod_admin_hosts)") };
"prod_sched" or => { classmatch("$(prod_sched_hosts)") };
"prod_presales" or => { classmatch("$(prod_presales_hosts)") };
"prod_data" or => { classmatch("$(prod_data_hosts)") };
"prod_nagios" or => { classmatch("$(prod_nagios_hosts)") };
"prod_backups" or => { classmatch("$(prod_backups_hosts)") };
"all_prod" or =>
{
classmatch("$(prod_web_hosts)"),
classmatch("$(prod_cache_hosts)"),
classmatch("$(prod_updater_hosts)"),
classmatch("$(prod_db_hosts)"),
classmatch("$(prod_admin_hosts)"),
classmatch("$(prod_sched_hosts)"),
classmatch("$(prod_presales_hosts)"),
classmatch("$(prod_data_hosts)"),
classmatch("$(prod_nagios_hosts)"),
classmatch("$(prod_backups_hosts)")
};
}
The actual bundle is even larger then that but you get the idea... Does anyone
have an idea of how I can do this in a more efficient way? Every time it runs
(every 20 minutes) cfengine has to evaluate the list of classes and it can take
as long as 8 - 10 minutes on busy servers. I have other such bundles for
smaller groups of host classes that have just added to the total time.
_______________________________________________
Help-cfengine mailing list
[email protected]
https://cfengine.org/mailman/listinfo/help-cfengine