Bug 1722954
| Summary: | Slow performance when running "hammer host list" with a high number of Content Hosts (15k+ for example) | ||
|---|---|---|---|
| Product: | Red Hat Satellite | Reporter: | Aldrey Souza <alsouza> |
| Component: | Hosts | Assignee: | Oleh Fedorenko <ofedoren> |
| Status: | CLOSED ERRATA | QA Contact: | tstrych |
| Severity: | medium | Docs Contact: | |
| Priority: | high | ||
| Version: | 6.5.0 | CC: | apatel, egolov, inecas, jcallaha, kgaikwad, mbacovsk, mshira, ofedoren, rabajaj, wpinheir |
| Target Milestone: | 6.8.0 | Keywords: | Performance, Triaged |
| Target Release: | Unused | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | tfm-rubygem-hammer_cli-0.20.0,tfm-rubygem-hammer_cli_foreman-2.0.0 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-10-27 12:58:39 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Aldrey Souza
2019-06-21 19:54:53 UTC
On local lab was used the script below to reregister the machine with diff UUID and FQDN 40K times. At this moment we have ~15k and we are able to face the slow behavior.
// Script executed on a Content Host
===
#!/bin/bash
{
for SEQ in {00001..40000}
do
NODEUUID=$(uuidgen)
NODEHOST="node${SEQ}.local.domain"
cat << _EOF_ > /etc/rhsm/facts/host.facts
{
"dmi.system.uuid":"${NODEUUID}",
"virt.uuid":"${NODEUUID}",
"network.fqdn":"${NODEHOST}",
"network.hostname":"${NODEHOST}",
"uname.nodename":"${NODEHOST}"
}
_EOF_
echo "Register: HOST [${NODEHOST}] - UUID [${NODEUUID}] - TIME [$(date)]"
subscription-manager register --org="EXAMPLE" --username=admin --password=redhat --environment=Library
echo -e "=============== TIME [$(date)] ===============\n"
find /etc/pki/consumer/ -type f -delete
done
} 2>&1 | tee -a create_hosts.log
===
Note. On this scenario, the org is EXAMPLE.
Aldrey Souza
Depending on what you are using hammer host list for, you can drastically reduce execution time by using the --thin option. For example, using Waldirio's reproducer, "--thin 1" reduced execution time from 13m11s to 1m3s. # time hammer host list --thin 1 real 1m3.263s user 0m22.975s sys 0m1.427s Of course, only the host's id and name are included in the output, but additional commands could follow up to gather more detailed information. Upstream bug assigned to ofedoren Moving this bug to POST for triage into Satellite 6 since the upstream issue https://projects.theforeman.org/issues/17819 has been resolved. Not sure if we resolve the root of the problem here, but next text in this comment would about be about verification of upstream fix in downstream.
if sat has more than 1000 hosts
hammer host list - after hammer host list fetches 1000 hosts it will show them
On example:
with 3345 hosts
1. firstly you saw nothing
2. after 1000 thousand host is fetched, you can see header and 1000 hosts, (wc -l == 1003)
3. after another 1000 fetched, it shows 2000 hosts, (wc -l == 2003)
4. same again, it shows 3000 hosts, (wc -l == 3003)
5. lastly, 345 hosts is fetched, you can see them all, 3345 hosts is showed, (wc -l == 3348), command ends.
Easy as that.
This was verified with 5309 hosts and these steps:
1. hammer host list > hammer_host_list.txt &
2. as fast as possible after 1. ( choose the bigger number to rather stop later, my sat shows 5000 host under 200 seconds in all runs)
for i in {1..<number>}; do echo $i; sleep 1; wc -l hammer_host_list.txt; done
result:
1
0 hammer_host_list.txt
2
0 hammer_host_list.txt
---------<omitted>-------
26
0 hammer_host_list.txt
27
1003 hammer_host_list.txt
---------<omitted>-------
54
1003 hammer_host_list.txt
55
2003 hammer_host_list.txt
---------<omitted>-------
81
2003 hammer_host_list.txt
---------<omitted>-------
82
2003 hammer_host_list.txt
83
3003 hammer_host_list.txt
---------<omitted>-------
107
3003 hammer_host_list.txt
108
4003 hammer_host_list.txt
---------<omitted>-------
135
4003 hammer_host_list.txt
136
5003 hammer_host_list.txt
---------<omitted>-------
143
5003 hammer_host_list.txt
144
[1]+ Done hammer host list > hammer_host_list.txt
5312 hammer_host_list.txt
it is approximately 30s per 1000 hosts.
using sat 6.8 snap 4
Verified.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Important: Satellite 6.8 release), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2020:4366 |