Configuration guide: Slow PC troubleshooting

Introduction

To get started with this workflow, please ensure all related content is installed and configured appropriately. This page provides guidance on which content is included and how to configure it.

Please keep in mind this is just a guide and represents suggested configurations. You are free to customize and edit content as you see fit based on your specific environment.

Dependencies

To utilize this workflow, you need to install the necessary content into your Nexthink Infinity tenant.

Pre-requisites

This library pack contains content from the following expansion products.

Content and dependency

Type
Name
Description

Slow PC troubleshooting

Automated guided process to troubleshoot possible causes of device slowness.

Slow PC identification

Sample KPIs and tables providing the starting point for customized identification of potential devices experiencing slowness.

Browser tabs advisory

Informs the user that their device has been identified as running an excessive number of browser tabs and suggests that these are closed in order to free up resources on their device.

Disk cleanup request

Informs the user that as part of the troubleshooting process a disk cleanup is required and asks for their permission to run a full cleanup to free up resources on their device.

macOS memory pressure advisory

Informs the user that their device is reporting high levels of memory pressure and suggests that applications not in use are closed in order to free up resources on their device

Power plan advisory

Informs the user that their device is not running the corporate approved power plan and suggests that they change this as their current plan could be affecting the performance of their device

Reboot request

Informs the user that their device is in need of a reboot. They are asked to save their work and for their permission to proceed

Self help complete

Informs the user that self help troubleshooting process has completed. They are advised to restart their device if updates are pending and to log a ticket if their device slowness continues.

Slow PC identification

Informs the user that their device has been identified as potentially experiencing slowness and asks for their permission to perform some checks on the device.

Wi-Fi self help

Informs the user that that their device has been identified as experiencing poor Wi-Fi signal strength and suggests some actions that they can take to improve this. This campaign will only appear for remote workers

Disk Cleanup

Helps employees to maintain healthy levels of disk space.

Get Battery Status

Returns the health status of the battery installed on the laptop, in terms of capacity that it can still hold. It also retrieves for Windows devices the currently active power plan. Useful for identifying the batteries to be replaced and optimize the power settings of the devices.

Get Browser Tabs

Provides information about the number of opened tabs from a given browser name.

Get Default Browser

Retrieves browser name that is configured as default.

Get Disk Health

Gets physical disk health details where the drive is located (identified by a given drive letter).

Get macOS Memory Pressure

Used to output data taken from Apple macOS devices and help you understand metrics relating to memory usage and memory pressure on macOS. For further information on memory pressure please refer to macOS documentation.

Get macOS updates and restart information

Provides insights into your macOS software updates status - understanding where devices have pending updates or restarts, giving insights into which updates are pending and if they require a restart as well as the amount of disk space required. The Remote Action will also output the number of days since the device was last restarted.

Get Wi-Fi Signal Strength

Retrieves Wi-Fi signal quality, strength and channel, as well as whether the device is connected to a corporate network or not.

Get Windows Disk Information

Gets physical disk details of the drive identified by its assigned letter. This remote action also gets configuration status of disk-consuming features such as SuperFetch, Indexing, Hibernate and Drive Optimization (a.k.a. Disk Defragmentation).

Restart macOS Device

Retrieves information if a restart is necessary due to too long device uptime and, based on provided input, schedules a restart of target device.

Restart Windows Device

Retrieves information if restart is necessary due to too long device uptime or pending reboot, and based on provided input configures restart of target device

Test Pending Reboot

Determines if device is pending a reboot and the reason. Possible causes covered are as follows:

  • Computer renaming.

  • Domain join.

  • File rename operations.

  • SCCM Agent.

  • Software installation.

  • Windows update.

It also retrieves the date and type of the last boot event. Boot types can be the following:

  • Regular Boot

  • FastBoot

  • Resume from Hibernation

Configuration

Step 1) Install library pack content

Go to the Nexthink Library and install all required content.

Step 2) Configure ITSM API connector credentials

The configuration of connector credentials is essential for enabling API calls. See detailed information at https://nexthink.gitbook.io/opd/integrations/outbound-connectors/connector-credentials. Each Service/API thinklet has a dropdown field for credentials that needs to be filled out. When the workflow is installed or copied from the Library, this field will be blank as it is a local setup of each environment and is not included in the Library.

ServiceNow actions can be created using the built-in ServiceNow connector. The required action and the connector credentials can be selected from the drop down lists, and the available parameters will change in line with the action chosen.

Step 3) Configure remote action(s)

Please note: To be used in a workflow, the following remote actions must be configured with a manual trigger. This can be combined with other execution triggers if the remote action is also used outside of a workflow.

There are twelve remote actions used by, and included with this workflow. For the workflow to function correctly, some of these remote actions are triggered with different input parameters to the default (For example, the remote action “Disk cleanup” is triggered with a “Deep Clean”). Custom campaigns created for this workflow may launch before a remote action is triggered, in order to request permission to run it, or after a remote action has run, depending on it’s outputs. As a result, it may be necessary to change the default behaviour of certain remote actions by allowing custom input parameters. This will prevent campaigns built-in to the remote action from launching and causing confusion.

Name

Disk cleanup

These three parameters should all be configured to allow custom values

  • Disk cleanup campaign ID

  • Cleanup completed campaign ID

  • Cleanup Level

Get Browser tabs

These two parameters should be configured to allow custom values

  • Campaign ID

  • Number of tabs

Restart macOS device

These parameters should all be configured to allow custom values

  • Number of days since last reboot

  • Show campaign

  • Campaign ID

  • Postpone grace period in days

  • Restart delay in minutes

Step 5) Configure campaigns

This workflow contains eight Engage campaigns. During the guided process of troubleshooting the device, these campaigns will appear to give advice, or when an intervention on the device is required.

These campaigns should be modified before use to ensure that they match corporate communication guidelines.. Navigate to the manage campaigns administration page to review and edit your campaigns.

For each installed campaign, please ensure to:

  • Customize the sender name and image.

  • Review and adjust questions.

  • Publish the campaign when you are ready to use it.

Step 6) Schedule the workflow

Manual triggering

This workflow is not designed to be scheduled on a regular basis but executed manually on devices that could benefit from it. It is principally designed to automate the normal processes that an L1 support agent would perform when a slow running device is reported and could be added as a diagnostic step in that process.

Proactive detection

If there is a desire to proactively run this workflow on devices that are suspected to be running slow, please consider that the identification of target devices can be subjective due to the range of factors involved and may differ from customer to customer. For this reason we offer different metrics to be investigated that report on different aspects of a device’s performance as perceived slowness is likely to be due to a combination of factors. Some metrics that could be considered are:

  • CPU usage

  • CPU queue length (if the CPU queue length exceeds double the number of available logical processors for an extended period of time, this can indicate an issue with the device)

  • CPU interrupt usage (an extended duration of CPU interrupt usage can indicate high workload)

  • Disk queue length (Not in itself an indicator of slowness, but in conjunction with other metrics)

  • Memory swap rate to disk (frequent spikes can be the result of insufficient, or over used memory)

  • Memory swap size (continued usage can be the result of insufficient, or over used memory)

  • Available memory ratio

A dashboard containing KPIs and tables with sample queries is provided with this pack. All queries provided have thresholds that should be adjusted and query logic (permutations of and/or operators) that should be tested against devices in your landscape before use.

Code
1 devices during past 24h
2 | include device_performance.events
3 | compute cpu_queue_ratio = cpu_queue_length.avg()/(number_of_logical_processors.avg()*2), cpu_usage_ = normalized_cpu_usage.avg(), high_interrupt = duration_with_high_cpu_interrupt_usage.sum(), medium_interrupt = duration_with_medium_cpu_interrupt_usage.sum(), mem_swap_rate = memory_swap_rate.avg(), mem_swap_size = memory_swap_size.avg(), mem_ratio = used_memory.avg() / installed_memory.avg(), disk_queue_length_ = disk_queue_length.avg(), disk_space_ratio = system_drive_free_space.avg() / system_drive_capacity.avg()
4 | where cpu_queue_ratio >= 1 or cpu_usage_ > 80 or high_interrupt > 1min or medium_interrupt > 5min or (mem_swap_size > 5GB and mem_swap_rate > 1MB) or mem_ratio > 0.85 or disk_queue_length_ >= 1 or disk_space_ratio >= 0.90
5 | include execution.events
6 | compute response_time = connection_establishment_time.avg()
7 | where response_time >= 50ms
8 | sort cpu_queue_ratio desc
9 | sort disk_queue_length_ desc

Usage guide

Your content is now configured and ready to be used. For usage overview and recommendations, you can visit the usage guide:

Usage guide: Slow PC troubleshooting

Last updated