I’m not sure if configuration is the right category, but given the options, it’s what I went with.
My HA install isn’t crazy loaded up or anything - 14 integrations, pretty standard home I think - Hue lights, few TVs and Chromecast devices, smart thermostat, etc. … but I have got soooo much stuff throwing timeout exceptions and warnings in my logs, to the point that I’ve had to revert some of my stuff back to my old Perl and Python scripts because HA is so unreliable with the timeouts!
Recorder used to complain, so I moved that off to a MySQL db. A number of other integrations would throw exceptions when they timed out, so I just disabled them entirely to shut them up as well as to free up resources from my other stuff, yet my logs are still full of -
2020-10-15 20:32:48 WARNING (MainThread) [homeassistant.components.switch] Setup of switch platform rest is taking over 10 seconds.
2020-10-15 20:32:58 WARNING (MainThread) [homeassistant.helpers.entity] Update of media_player.sony_bravia_tv is taking over 10 seconds
2020-10-15 20:32:58 WARNING (MainThread) [homeassistant.components.media_player] Updating braviatv media_player took longer than the scheduled update interval 0:00:10
2020-10-15 20:35:28 WARNING (MainThread) [homeassistant.helpers.entity] Update of switch.turtle_lights is taking over 10 seconds
2020-10-15 20:35:28 WARNING (MainThread) [homeassistant.helpers.entity] Update of switch.turtle_skimmer is taking over 10 seconds
It’s not as bad with those REST ones as I can set a timeout on those, but things like the Bravia integration there don’t have a timeout setting, so they just fail and then start reporting incorrect or no values via the HA API.
Even the REST stuff should NOT take more than 10 seconds though … within the HA container when I do a quick pull for status with wget it’s 1.5s over the k8s internal network -
bash-5.0# time wget -O - http://insteon-gateway.homecontrols:5000/2E4C2D
Connecting to insteon-gateway.homecontrols:5000 (10.43.94.4:5000)
writing to stdout
{"is_active": "true"}
- 100% |****************************************************************************************************************************| 22 0:00:00 ETA
written to stdout
real 0m1.508s
user 0m0.001s
sys 0m0.000s
bash-5.0#
and 1.8s from another host on the network -
dockernode-1:~# time wget -O - http://insteon-gateway.kntr/2E4C2D
Connecting to insteon-gateway.kntr (192.168.0.200:80)
writing to stdout
{"is_active": "true"}
- 100% |************************************************************************************| 22 0:00:00 ETA
written to stdout
real 0m 1.88s
user 0m 0.00s
sys 0m 0.00s
dockernode-1:~#
The container is running on a dual core VM with a 4% CPU utilization average, on a ‘quad core’ Hypervisor with a 10th gen i3 with < 20% CPU utilization average and a load average typically < 1. I can find no logical reason for these processes to be taking so long and would love any pointers or tips on how I can dig a little deeper! Thanks!