Skip to content

Remove redundant call to Serialize() in ConfigItem::Commit() #9362

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 15, 2022

Conversation

julianbrost
Copy link
Contributor

The very same object is already serialized a few lines above, the result is even stored in a variable, but that variable was not used before. Simply using this variable results in a noticeable improvement of config validation times.

Eyeball statistics on the tests below show around a 13% improvement, exact numbers will vary depending on the config. The improvement will be smaller if there are more complex things in the config (like lots of apply rules) on the other hand, the objects in the config aren't that hard to serialize (you would probably see some more improvement with complex custom variables). But I'd say some 5% to 10% improvement is totally possible for real configs.

Test

Super trivial config showing the effect quite well:

object CheckCommand "true" {
	command = ["true"]
}

for (i in range(1000000)) {
	object Host i {
		check_command = "true"
	}
}

Run icinga2 daemon -C a few times on this config.

Before

real	0m48.192s
real	0m51.420s
real	0m51.165s
real	0m49.791s
real	0m50.361s
real	0m49.682s
real	0m49.421s
real	0m50.773s
real	0m52.256s
real	0m50.120s
Full Output
% docker run --rm -it -v $(pwd)/icinga2-many-hosts.conf:/icinga2.conf:ro icinga/icinga2:dev bash -c 'for i in {1..10}; do time icinga2 daemon -C -c /icinga2.conf; done'
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Initializing /data as we're the init process (PID 1)
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Checking "/data/etc/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Copying "/data-init/etc/icinga2" to "/data/etc/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Checking "/data/var/cache/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Copying "/data-init/var/cache/icinga2" to "/data/var/cache/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Checking "/data/var/lib/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Copying "/data-init/var/lib/icinga2" to "/data/var/lib/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Checking "/data/var/log/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Copying "/data-init/var/log/icinga2" to "/data/var/log/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Checking "/data/var/run/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Copying "/data-init/var/run/icinga2" to "/data/var/run/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Checking "/data/var/spool/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Copying "/data-init/var/spool/icinga2" to "/data/var/spool/icinga2"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Checking "/var/lib/icinga2/certs/ca.crt"
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Looking up "dumb-init" in $PATH
[2022-04-28 14:55:55 +0000] information/DockerEntrypoint: Running "/usr/bin/dumb-init"
[2022-04-28 14:55:55 +0000] information/cli: Icinga application loader (version: v2.13.0-295-ga51c004f5)
[2022-04-28 14:55:55 +0000] information/cli: Loading configuration file(s).
[2022-04-28 14:56:00 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 14:56:10 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 14:56:43 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 14:56:43 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 14:56:43 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 14:56:43 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 14:56:43 +0000] information/cli: Finished validating the configuration file(s).

real	0m48.192s
user	4m1.396s
sys	0m14.763s
[2022-04-28 14:56:44 +0000] information/cli: Icinga application loader (version: v2.13.0-295-ga51c004f5)
[2022-04-28 14:56:44 +0000] information/cli: Loading configuration file(s).
[2022-04-28 14:56:48 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 14:56:58 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 14:57:35 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 14:57:35 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 14:57:35 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 14:57:35 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 14:57:35 +0000] information/cli: Finished validating the configuration file(s).

real	0m51.420s
user	4m15.644s
sys	0m16.356s
[2022-04-28 14:57:35 +0000] information/cli: Icinga application loader (version: v2.13.0-295-ga51c004f5)
[2022-04-28 14:57:35 +0000] information/cli: Loading configuration file(s).
[2022-04-28 14:57:40 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 14:57:50 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 14:58:26 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 14:58:26 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 14:58:26 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 14:58:26 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 14:58:26 +0000] information/cli: Finished validating the configuration file(s).

real	0m51.165s
user	4m12.098s
sys	0m16.439s
[2022-04-28 14:58:26 +0000] information/cli: Icinga application loader (version: v2.13.0-295-ga51c004f5)
[2022-04-28 14:58:26 +0000] information/cli: Loading configuration file(s).
[2022-04-28 14:58:31 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 14:58:41 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 14:59:16 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 14:59:16 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 14:59:16 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 14:59:16 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 14:59:16 +0000] information/cli: Finished validating the configuration file(s).

real	0m49.791s
user	4m11.705s
sys	0m16.481s
[2022-04-28 14:59:16 +0000] information/cli: Icinga application loader (version: v2.13.0-295-ga51c004f5)
[2022-04-28 14:59:16 +0000] information/cli: Loading configuration file(s).
[2022-04-28 14:59:21 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 14:59:31 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:00:06 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:00:06 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:00:06 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:00:06 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:00:06 +0000] information/cli: Finished validating the configuration file(s).

real	0m50.361s
user	4m12.805s
sys	0m16.137s
[2022-04-28 15:00:06 +0000] information/cli: Icinga application loader (version: v2.13.0-295-ga51c004f5)
[2022-04-28 15:00:06 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:00:11 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:00:21 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:00:56 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:00:56 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:00:56 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:00:56 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:00:56 +0000] information/cli: Finished validating the configuration file(s).

real	0m49.682s
user	4m12.778s
sys	0m15.866s
[2022-04-28 15:00:56 +0000] information/cli: Icinga application loader (version: v2.13.0-295-ga51c004f5)
[2022-04-28 15:00:56 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:01:01 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:01:11 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:01:45 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:01:45 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:01:45 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:01:45 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:01:45 +0000] information/cli: Finished validating the configuration file(s).

real	0m49.421s
user	4m11.747s
sys	0m16.377s
[2022-04-28 15:01:45 +0000] information/cli: Icinga application loader (version: v2.13.0-295-ga51c004f5)
[2022-04-28 15:01:45 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:01:50 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:02:00 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:02:35 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:02:35 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:02:35 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:02:36 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:02:36 +0000] information/cli: Finished validating the configuration file(s).

real	0m50.773s
user	4m11.874s
sys	0m16.265s
[2022-04-28 15:02:36 +0000] information/cli: Icinga application loader (version: v2.13.0-295-ga51c004f5)
[2022-04-28 15:02:36 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:02:41 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:02:51 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:03:28 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:03:28 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:03:28 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:03:28 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:03:28 +0000] information/cli: Finished validating the configuration file(s).

real	0m52.256s
user	4m15.868s
sys	0m16.335s
[2022-04-28 15:03:28 +0000] information/cli: Icinga application loader (version: v2.13.0-295-ga51c004f5)
[2022-04-28 15:03:28 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:03:33 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:03:43 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:04:18 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:04:18 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:04:18 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:04:18 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:04:18 +0000] information/cli: Finished validating the configuration file(s).

real	0m50.120s
user	4m10.391s
sys	0m15.973s

After

real	0m39.824s
real	0m43.625s
real	0m44.899s
real	0m43.503s
real	0m43.922s
real	0m45.133s
real	0m42.545s
real	0m42.447s
real	0m43.525s
real	0m45.081s
Full Output
% docker run --rm -it -v $(pwd)/icinga2-many-hosts.conf:/icinga2.conf:ro icinga/icinga2:dev bash -c 'for i in {1..10}; do time icinga2 daemon -C -c /icinga2.conf; done'
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Initializing /data as we're the init process (PID 1)
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Checking "/data/etc/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Copying "/data-init/etc/icinga2" to "/data/etc/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Checking "/data/var/cache/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Copying "/data-init/var/cache/icinga2" to "/data/var/cache/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Checking "/data/var/lib/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Copying "/data-init/var/lib/icinga2" to "/data/var/lib/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Checking "/data/var/log/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Copying "/data-init/var/log/icinga2" to "/data/var/log/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Checking "/data/var/run/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Copying "/data-init/var/run/icinga2" to "/data/var/run/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Checking "/data/var/spool/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Copying "/data-init/var/spool/icinga2" to "/data/var/spool/icinga2"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Checking "/var/lib/icinga2/certs/ca.crt"
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Looking up "dumb-init" in $PATH
[2022-04-28 15:11:29 +0000] information/DockerEntrypoint: Running "/usr/bin/dumb-init"
[2022-04-28 15:11:29 +0000] information/cli: Icinga application loader (version: v2.13.0-296-g2dcdae447)
[2022-04-28 15:11:29 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:11:34 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:11:44 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:12:09 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:12:09 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:12:09 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:12:09 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:12:09 +0000] information/cli: Finished validating the configuration file(s).

real	0m39.824s
user	3m13.189s
sys	0m14.929s
[2022-04-28 15:12:09 +0000] information/cli: Icinga application loader (version: v2.13.0-296-g2dcdae447)
[2022-04-28 15:12:09 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:12:13 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:12:23 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:12:52 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:12:52 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:12:52 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:12:52 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:12:52 +0000] information/cli: Finished validating the configuration file(s).

real	0m43.625s
user	3m27.352s
sys	0m16.379s
[2022-04-28 15:12:53 +0000] information/cli: Icinga application loader (version: v2.13.0-296-g2dcdae447)
[2022-04-28 15:12:53 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:12:57 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:13:07 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:13:37 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:13:37 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:13:37 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:13:37 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:13:37 +0000] information/cli: Finished validating the configuration file(s).

real	0m44.899s
user	3m28.050s
sys	0m16.366s
[2022-04-28 15:13:37 +0000] information/cli: Icinga application loader (version: v2.13.0-296-g2dcdae447)
[2022-04-28 15:13:37 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:13:42 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:13:52 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:14:21 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:14:21 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:14:21 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:14:21 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:14:21 +0000] information/cli: Finished validating the configuration file(s).

real	0m43.503s
user	3m26.426s
sys	0m16.347s
[2022-04-28 15:14:21 +0000] information/cli: Icinga application loader (version: v2.13.0-296-g2dcdae447)
[2022-04-28 15:14:21 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:14:26 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:14:36 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:15:04 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:15:04 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:15:04 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:15:04 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:15:05 +0000] information/cli: Finished validating the configuration file(s).

real	0m43.922s
user	3m28.837s
sys	0m16.745s
[2022-04-28 15:15:05 +0000] information/cli: Icinga application loader (version: v2.13.0-296-g2dcdae447)
[2022-04-28 15:15:05 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:15:10 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:15:20 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:15:50 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:15:50 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:15:50 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:15:50 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:15:50 +0000] information/cli: Finished validating the configuration file(s).

real	0m45.133s
user	3m27.229s
sys	0m16.393s
[2022-04-28 15:15:50 +0000] information/cli: Icinga application loader (version: v2.13.0-296-g2dcdae447)
[2022-04-28 15:15:50 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:15:54 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:16:04 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:16:32 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:16:32 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:16:32 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:16:32 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:16:32 +0000] information/cli: Finished validating the configuration file(s).

real	0m42.545s
user	3m25.101s
sys	0m16.154s
[2022-04-28 15:16:33 +0000] information/cli: Icinga application loader (version: v2.13.0-296-g2dcdae447)
[2022-04-28 15:16:33 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:16:37 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:16:47 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:17:15 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:17:15 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:17:15 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:17:15 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:17:15 +0000] information/cli: Finished validating the configuration file(s).

real	0m42.447s
user	3m25.682s
sys	0m15.953s
[2022-04-28 15:17:15 +0000] information/cli: Icinga application loader (version: v2.13.0-296-g2dcdae447)
[2022-04-28 15:17:15 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:17:20 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:17:30 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:17:58 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:17:58 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:17:58 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:17:58 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:17:58 +0000] information/cli: Finished validating the configuration file(s).

real	0m43.525s
user	3m27.589s
sys	0m16.108s
[2022-04-28 15:17:59 +0000] information/cli: Icinga application loader (version: v2.13.0-296-g2dcdae447)
[2022-04-28 15:17:59 +0000] information/cli: Loading configuration file(s).
[2022-04-28 15:18:03 +0000] information/ConfigItem: Committing config item(s).
[2022-04-28 15:18:13 +0000] information/WorkQueue: #4 (DaemonUtility::LoadConfigFiles) items: 0, rate: 5.46667/s (328/min 328/5min 328/15min);
[2022-04-28 15:18:43 +0000] information/ConfigItem: Instantiated 1000000 Hosts.
[2022-04-28 15:18:43 +0000] information/ConfigItem: Instantiated 1 IcingaApplication.
[2022-04-28 15:18:43 +0000] information/ConfigItem: Instantiated 1 CheckCommand.
[2022-04-28 15:18:43 +0000] information/ScriptGlobal: Dumping variables to file '/var/cache/icinga2/icinga2.vars'
[2022-04-28 15:18:43 +0000] information/cli: Finished validating the configuration file(s).

real	0m45.081s
user	3m28.383s
sys	0m16.607s

The very same object is already serialized a few lines above, the result is
even stored in a variable, but that variable was not used before. Simply using
this variable results in a noticeable improvement of config validation times.
@julianbrost julianbrost added area/configuration DSL, parser, compiler, error handling core/quality Improve code, libraries, algorithms, inline docs consider backporting Should be considered for inclusion in a bugfix release labels Apr 28, 2022
@cla-bot cla-bot bot added the cla/signed label Apr 28, 2022
@julianbrost julianbrost requested a review from Al2Klimov June 14, 2022 13:58
@julianbrost julianbrost added this to the 2.14.0 milestone Jun 14, 2022
@Al2Klimov Al2Klimov merged commit 4522522 into master Jun 15, 2022
@icinga-probot icinga-probot bot deleted the bugfix/remove-redundant-serialization branch June 15, 2022 07:34
@julianbrost julianbrost added backported Fix was included in a bugfix release and removed consider backporting Should be considered for inclusion in a bugfix release labels Jun 15, 2022
yhabteab pushed a commit that referenced this pull request Sep 5, 2022
…ation

Remove redundant call to Serialize() in ConfigItem::Commit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/configuration DSL, parser, compiler, error handling backported Fix was included in a bugfix release cla/signed core/quality Improve code, libraries, algorithms, inline docs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants