Casually measuring disk throughput with antimalware enabled and disabled

I wanted to test the relative performance of two drives on a Windows 10 machine and get a feel for how much overhead my anti-virus products cost me.  To that end, I created a program to copy in different combinations between the two drives.  I ran that test with different Anti-Malware versions and configurations 

From the README.md on GitHub

The Program
1. It takes the names of two directories
2. It creates the number of files that you specify of a size you specify in both of the directories passed in.
    1. You want big numbers for both.  The default is 10,000 files of 200,000B each.
3. It copies the large number of files in the 4 possible source/destination pair combinations.
4. It writes the timings to the console and deletes the test files.

In my case I ran a couple different variations to see what was happening
1. Drive A anti-malware enabled .  Drive B anti-malware enabled
2. Drive A anti-malware enabled .  Drive B anti-malware disabled
3. Drive A anti-malware disabled .  Drive B anti-malware enabled
4. Drive A anti-malware disabled .  Drive B anti-malware disabled

Sample Program

The Windows Powershell script is on GitHub

Antimalware Enabled Timing

This test was run with Microsoft AntiVirus enabled on both c:\tmp and d:\tmp

Click to Expand

Antimalware Disabled Timing

This test was run with Microsoft AntiVirus disabled on both c:\tmp and d:\tmp.

Click to Expand


Antimalware Enabled during Data Creation

Notice here that antimalware service is using 19% of the CPU.

Click to Expand

Antimalware Disabled during Data Creation

Antimalware doesn't show up after we disable it on c:\tmp and d:\tmp

Click to Expand

Antimalware Enabled during Copy

We can see here that we are CPU bound.  We can be comfortable that the scanning is impacting throughput.

Click to Expand

Antimalware Disabled during Copy

As expected, the CPU is now at 23% instead of 100%

Click to Expand


Created 2022 02

Comments

Popular posts from this blog

Understanding your WSL2 RAM and swap - Changing the default 50%-25%

Installing the RNDIS driver on Windows 11 to use USB Raspberry Pi as network attached

DNS for Azure Point to Site (P2S) VPN - getting the internal IPs