• TiWorker uses 2hours of CPU time after windows update

    Home » Forums » AskWoody support » Windows » Windows 10 » Questions: Win10 » TiWorker uses 2hours of CPU time after windows update

    Author
    Topic
    #155728

    Ever since Windows 8(8.1, server 2012, server 2016, windows 10 ), there is an automated task that kicks off the TiWorker.exe to “clean up” the c:\windows folder. Through our support contract and even talking with some MS engineers at Microsoft ignite, I have yet to find out what this does and why it uses 2 hours of CPU when “Start Maintenance” is run manually.   It is really easy to duplicate:

    – Pick some VMs software and install the OS ( windows 10 ), 2GB of memory and 1 CPU core is you really want to see the affects of this.

    – give it a hostname and and connect it to a network.

    – download and install the latest updates.

    – as soon as the system reboots, shut down the system and take a snapshot.

    – reboot the system

    – open “control Panel -> System And Security -> Action Center”

    – find and click “Start Maintenance” under Automatic Maintenance

    – pull up the task manager, look at the details tab.  Enable CPU time column, and sort by CPU usage ( or time ). Check back every 10 minutes and you should see tiWorker, sucking up CPU cycles.

    – revert to snapshot and repeat to duplicate as much a desired.

     

    We use VMs all the time to get back to known good states. We also install security updates to those VMs to stay secure as practical. Each time we load updates, we waste twice the time running maintenance so that the latest snapshot is clean as it can be.   With the various cases opened with Microsoft, it seems that each windows update can set a dirty flag of some type and this triggers the tiworker to do some type of delta compression ( Microsoft’s name for it ) to clean up the disk. Watching the task mgr and resource mgr, it also looks like .NEt assemblies are being recompiled.

    I also believe that when the task runs on its own, it runs for up to 1 hour at time each night.  When you run it manually, it runs to completion. It also seems to run within 1hr of booting if the OS is not run for a while. For example, stop the VM, revert, and the start start the VM.  The revert boots a VM that may not have ran for a few weeks. In this scenario, it doesn’t seem to wait until 2am to run.

    Stating all this, I would like to know:

    – how can you tell if it needs to run for 10 minutes or two hours? ( is there a query to see what components need cleanup )

    – what is the complete list of Maintenance tasks? ( I think it does virus scans and defragmentation of the disks, but there is not way to know for sure )

    – can you programmatically control any part of maintenance.

    Maybe everyone just accepts this cr***y performance or perhaps there is a better way to control when this cleanup runs ( to control CPU and disk usage, or at least give it a lower priority ) If anyone can provide some insight on this, I would appreciate it.

    Viewing 1 reply thread
    Author
    Replies
    Viewing 1 reply thread
    Reply To: TiWorker uses 2hours of CPU time after windows update

    You can use BBCodes to format your content.
    Your account can't use all available BBCodes, they will be stripped before saving.

    Your information: