What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
To identify the cause of high Home Assistant CPU usage, combine four kinds of evidence: the System monitor integration confirms that the host is saturated, the Profiler attributes runtime to Home Assistant code, automation traces connect a state change to a specific run, and integration debug logs and diagnostics expose polling, retries, or exceptions. Start by recording a baseline, capture a 60-second profile while the spike is happening, then correlate its timestamp with the relevant automation trace or integration log. No universal CPU percentage proves that an automation is faulty; the useful result is a repeatable before-and-after comparison on your own installation.
Which Home Assistant tool should I use first?
Use the tool that matches the question you are trying to answer. System monitor shows the host-level symptom, Profiler measures where Home Assistant spends execution time, traces explain one automation run, and integration logging reveals what a suspected integration is doing.
| Tool | What it measures | When to run it | Output | Main limitation |
|---|---|---|---|---|
| System monitor integration | Host CPU usage, load and, where available, process information | Continuously for a baseline and while the spike occurs | Entities showing processor use, load and process data | It does not identify the responsible automation by itself |
| Profiler integration | Execution time consumed by Home Assistant components and functions | During the high-CPU window | cprof and callgrind.out files |
A profile is useful only if it captures the incident |
| Automation trace and entity Activity | The sequence and timing of one automation run or state change | Immediately after the relevant run | Timeline showing triggers, conditions and actions | It explains a run but does not quantify total CPU across the system |
| Integration debug logging and diagnostics | Requests, retries, exceptions and integration-specific behavior | While reproducing a suspected integration fault | Downloadable logs and diagnostic data | Debug logging increases log volume and should not be left enabled unnecessarily |
| Integration startup time report | How long integrations take to initialize during boot | When startup is slow | Startup timing report | It does not measure steady-state CPU consumption |
How do I confirm that Home Assistant is actually CPU-bound?
Install or enable the System monitor integration and watch its processor-use and load entities during the incident. This separates a real host saturation problem from a slow dashboard, network delay or another symptom.
Free tools Windows power users keep installed
One-click scans. No signup required.
Add System monitor
- Open Settings and select Devices & services.
- Choose Add integration, search for System monitor, and complete the setup for the machine running Home Assistant.
- Add the processor-use and load entities to a dashboard, or inspect them in the device page. If process sensors are exposed by your installation, include those as well.
- Leave the sensors available long enough to see normal behavior. Record the time, processor-use value, load value and what the system was doing when the spike began.
The System monitor documentation describes this integration as a way to monitor CPU usage and running processes on the host. It gives you the time window needed for attribution, but not the name of the automation responsible. A process sensor can show that the Home Assistant process is consuming resources; it cannot map that usage directly to an entity, automation or integration.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
Build a useful baseline
- Capture a period of ordinary activity, including the approximate processor-use and load values.
- Note scheduled tasks, backups, recorder activity, dashboard refreshes and other events that regularly occur at the same time.
- Write down the exact start and end time of an abnormal episode in the Home Assistant time zone.
- Do not disable anything before collecting this baseline. You need a comparison point after each change.
There is no authoritative CPU-percentage threshold that applies to every Home Assistant installation. Hardware, storage, add-ons, recorder configuration and the number of entities all change what “high” means, so compare the same workload before and after a controlled change.
How do I profile Home Assistant while CPU usage is high?
The Profiler integration is the attribution tool. Home Assistant describes it as providing statistics that identify how much time each part of Home Assistant is taking. Capture it during the spike, not several minutes later after the system has returned to normal.
Enable Profiler
- Open Settings and go to Devices & services.
- Select Add integration, search for Profiler, and finish the setup.
Start a profile from the interface
- When System monitor shows the high-CPU condition, open Settings > Developer tools (called Tools in some releases) and select Actions.
- Choose Profiler: Create system profile. The exact menu wording can vary by Home Assistant release.
- Start the action while the spike is active. The action requires administrator permission and uses a 60-second capture duration by default.
- Wait for the completion notification. Home Assistant reports the paths of the generated files in the notification.
Start a profile from an automation or script
If the event is too brief to catch manually, call the profiler.start action from an automation or script that runs when your chosen trigger occurs. Keep the trigger narrowly scoped so the profile starts for the suspected event rather than on every ordinary state change. The same administrator permission requirement applies.
The action writes a cprof file and a callgrind.out file in the Home Assistant configuration directory. Preserve both files and their timestamps; the matching time window is what lets you compare profile results with traces and logs.
How do I read the Profiler files?
Open the files with a profile viewer and sort by cumulative time or the functions consuming the most execution time. The goal is to find a repeated path associated with a custom or built-in integration, template rendering, event handling or callbacks.
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
Choose a viewer
- Use SnakeViz, Gprof2dot or another compatible viewer for the
cprofoutput. - Use KCachegrind, QCachegrind or Gprof2dot for
callgrind.out.
Start with the highest cumulative time, then inspect whether the same function appears repeatedly. A single expensive call may be a one-time startup task; a shorter function called thousands of times can be the steady-state cause. Look for names that point to an integration domain, a custom component, event processing, a template renderer or a callback scheduled in a tight loop.
Separate evidence from a hypothesis
- A function name that contains an integration domain is a lead, not proof that the integration is defective.
- Template-related frames indicate that rendering is expensive or frequent, but they do not tell you which entity caused the renders without correlation.
- Profile data shows execution cost during the capture. It does not establish that the same code consumes CPU outside that window.
Repeat the capture after changing one suspect at a time. If the same workload produces a materially different profile and System monitor reading, you have stronger evidence than a single profile snapshot.
How do I tell whether an automation caused the spike?
Use the affected entity’s Activity entry to identify the initiating automation or script, then open that automation’s trace. Home Assistant’s troubleshooting guidance notes that “Most problems show up in the trace of the automation, so open the trace first.”
Find the causal state change
- Open the entity that changed when the CPU increase began.
- Open its Activity entry for the relevant timestamp.
- Check whether the entry is marked By automation, By script or Via an integration.
- Follow the linked automation or script and open the trace for that exact run.
Read the trace as a timeline
Confirm the trigger that started the run, then inspect conditions, waits, loops, parallel branches and service calls in order. A trace can reveal a trigger that fires more often than intended, a branch that repeatedly calls a service, or a loop that never reaches its terminating condition. Compare the trace timestamp with the Profiler capture and System monitor spike; a trace that occurs outside the profile window cannot explain that profile.
Traces are strongest for answering “what did this run do?” They do not add up the CPU cost of every automation on the system, so use them together with the profile when several automations run in the same period.
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
How do I investigate a suspected integration?
Once the profile or Activity record points to an integration, enable that integration’s debug logging, reproduce the problem, then turn logging off and download the evidence. Download diagnostics as well when the integration offers them.
- Open Settings > Devices & services.
- Open the suspected integration’s entry and use its menu to enable Debug logging.
- Reproduce the high-CPU behavior while recording the start and end time.
- Disable debug logging immediately after reproduction.
- Download the generated log and any available diagnostics.
Search the captured period for repeated polling, retry storms, exceptions, connection attempts or a stack path naming the integration. Repeated messages at a regular interval suggest a polling or retry pattern; an exception followed by the same request over and over suggests a failure loop. Debug logging increases log volume and can add overhead, which is why it should be enabled only for the reproduction window.
Diagnostics and logs are the appropriate material for an integration bug report because they show the integration’s own behavior rather than only the host symptom. Keep the profile, trace timestamp, downloaded log and diagnostics together so the events can be matched.
Can a template or rendering loop cause high CPU?
Yes. Frequent Jinja rendering, an automation that writes a state it also watches, or a callback that retriggers itself can create sustained work. Treat render counts as a lead and confirm the conclusion with a profile and an automation trace.
Inspect template activity
A community troubleshooting technique uses the profiler.dump_log_objects action with type: RenderInfo. The resulting information can show unusually high renders= counts for template objects. This is community guidance, not an official threshold, so do not treat a particular count as proof of a fault.
Recommended Free Tools
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
Confirm the trigger chain
- Use the Profiler output to establish that template rendering consumes meaningful execution time.
- Use automation traces to identify which trigger and action changed the related entity.
- Check whether an action writes to an entity that appears in its own trigger set.
- Check whether a high-frequency event, such as a frequently changing sensor, causes a template to render more often than the automation needs.
After editing one template or automation, repeat the same profile duration and workload. A lower render count, lower profile cost and lower System monitor reading together provide a defensible before-and-after result.
What does the integration startup-time report tell me?
Use Settings > System > Repairs, open the three-dot menu and select Integration startup time when Home Assistant takes too long to boot. The report identifies integrations that delay initialization.
Startup timing answers a boot-delay question, not a continuous CPU question. An integration can start slowly and then be inexpensive during normal operation, or start quickly and later consume CPU through polling, retries or event handling. Use System monitor and Profiler for the latter case.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.How do I turn the evidence into a safe fix?
Change one suspected cause at a time and repeat the same observation window. This keeps the result attributable and gives you a rollback point.
If the profile points to an automation path
- Disable or edit only that automation, preserving its original YAML or settings.
- Run the same workload that previously produced the spike.
- Compare System monitor values and capture another profile if the behavior remains unclear.
- If the load falls, reintroduce the automation in smaller changes until the expensive trigger, action or branch is isolated.
If the profile points to an integration
- Use debug logging and diagnostics during one controlled reproduction.
- Check for retries, exceptions and repeated polling in the captured period.
- Apply the integration’s documented configuration change or temporarily disable only that integration to verify the relationship.
- Repeat the profile and preserve the evidence if the issue persists.
If the profile points to templates or event processing
- Use RenderInfo output, where appropriate, to identify unusually frequent renders.
- Trace the automation that consumes the template and inspect its trigger frequency.
- Remove self-triggering state writes or narrow the trigger to the changes the automation actually needs.
- Measure the result with the same profile duration and workload.
Do not make several unrelated changes between measurements. A lower CPU reading after multiple edits does not tell you which edit solved the problem.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
What should I do when the spike is too brief to catch manually?
Keep System monitor entities recording so you can identify the recurring time window, then start Profiler automatically with profiler.start from a narrowly targeted automation or script. Align the profile’s start time with the trigger event and use the resulting notification paths to retrieve the files.
If the event cannot be reproduced reliably, collect the baseline, Activity entry, trace and any integration logs from the closest occurrence rather than guessing from a dashboard snapshot. A profile captured outside the event cannot establish causation.
What are the most common investigation mistakes?
- Profiling after the spike: the profile then describes normal activity instead of the incident.
- Treating System monitor as an attribution tool: host sensors show saturation, not the responsible automation.
- Using startup timing for runtime diagnosis: initialization duration does not measure ongoing CPU use.
- Leaving debug logging enabled: extra log volume can obscure the event and add overhead.
- Changing several things at once: you lose the ability to identify the effective change.
- Ignoring timestamps: a trace, profile and log must overlap before they can support a causal explanation.
- Assuming a render-count number is a universal limit: RenderInfo is a diagnostic lead, not an official CPU threshold.
What evidence should accompany a Home Assistant issue report?
Keep the exact time zone and timestamps for the spike, the System monitor observations, the Profiler notification and both profile files. Add the relevant automation trace, the integration’s downloaded debug log and diagnostics when available. This package lets someone compare host load, execution cost, automation behavior and integration errors instead of relying on a single CPU percentage.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Frequently Asked Questions
Can I profile Home Assistant if I do not have administrator access?
No. The documented profile action requires administrator permission. Ask an administrator to run the capture or to create a narrowly scoped automation or script that invokes the profiling action during the incident.
Why do my profile files have two different formats?
The cprof and callgrind.out files are alternate representations for different viewers. Use a viewer compatible with the format you have, and retain both because one may make integration, template or callback hotspots easier to inspect.
What if an integration has no diagnostics download?
Use the integration’s debug log together with the Profiler capture and the matching Activity or trace timestamp. Diagnostics are useful when offered, but the profile and time-correlated log still provide evidence of repeated requests, retries or exceptions.
How can I prove that a change fixed the problem?
Repeat the same workload and observation window used for the baseline, then compare System monitor readings and, when needed, another profile. A fix is more credible when the expensive path disappears or shrinks and the automation or integration behavior remains correct.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

