Bug #17520
openPuppet consumes excessive amounts of CPU and memory when importing facts from hosts with many NIC's (puppet_fact_parser.rb / Solaris)
Description
It seems that the fact import from hosts with many NICs (Solaris) causes the foreman processes to run amoc with CPU and RAM - all passenger instances consume 100% CPU and just grow in memory until the OS starts swapping. As a consequence foreman performs worse and gets even slower when importing and so on..
My suspicion is that it is the puppet_fact_parser.rb that might be at fault.
Not sure if the CPU consumption is triggered for a single host with many NIC's or when many hosts with many nic's gets their facts imported in a short timeinterval.
I will attach a facter json output from a host with many nics (there are hosts with 254 ip's, so fact output might be modified to match).
Additional output - Passenger under httpd without any special tweaking done:
passenger-memory-stats
...
...
PID VMSize Private Name
----------------------------------
33114 2078.3 MB 837.3 MB Passenger RackApp: /usr/share/foreman
37420 1564.7 MB 798.4 MB Passenger RackApp: /usr/share/foreman
38605 6878.9 MB 4012.7 MB Passenger RackApp: /usr/share/foreman
41681 6045.9 MB 3801.0 MB Passenger RackApp: /usr/share/foreman
44608 5917.8 MB 3953.4 MB Passenger RackApp: /usr/share/foreman
52642 209.8 MB 0.0 MB PassengerWatchdog
52645 1338.9 MB 1.3 MB PassengerHelperAgent
52651 214.2 MB 0.0 MB PassengerLoggingAgent
57032 1116.3 MB 437.1 MB Passenger RackApp: /usr/share/foreman
- Processes: 9
- Total private dirty RSS: 13841.33 MB
Files