3

What are the performance effects of compressing Program Files on Windows NTFS?

On a fast, multicore machine, the overhead of decompression is minimal. Machines are generally disk bound, and if you can reduce the disk load by compression, you often speed things up. (Microsoft says that the built in compression of Windows Search indexes actually improves speed for this reason.)

On the other hand, Windows' virtual memory is complicated. Perhaps if files are compressed, they can't be paged out simply. And there may be other issues.

In short: On a fast, multicore machine with a relatively slow disk, what performance effects will compressing Program Files have?

2
  • 2
    Food for thought: considering Program Files usually holds binary programs, your compression ratio may not be as good as you think.
    – Andrew M.
    Jan 3, 2011 at 5:52
  • Found this link: serverfault.com/questions/61750/… . I think it really comes down to this question: "Can Windows page and memory map a compressed file the same way it does a regular file?" Jan 4, 2011 at 3:26

2 Answers 2

3

For most server machines, it should probably be hitting files in %PROGRAM_FILES% at boot and initialization, and not very often after that - it should get anything it needs to run into memory, and then page-in/out as needed without having to hit the actual original file on disk again.

An exception could be log files, if they are in the directory tree that you've compressed. And in that case it's doing a ton of writes, so I don't see compression helping IO performance in any way at all. If your application(s) involve generating or seeking through large files, that would also make a difference. But in either case, you shouldn't have those files located on your system volume; if they fill up, your system is down, so you should keep such transient or growing files on a different partition (which you may or may not want to compress.)

Another exception would be if it's hitting a ton of different binaries during normal operations, but I would imagine that's much more common on a desktop machine than most servers. An exception would be a Citrix or TS server presenting complete desktop sessions; I'm sure there could be some others scenarios too.

So, I imagine the best answer would be "it depends on your server's workload. Try it with and without, with appropriate benchmarking, and tell us what you found."

As a side note, if you have new hardware, configured properly, why should free disk space on c:\ be a concern?

3
  • 1. I want to compress to save disk access time, not to free up space. Jan 4, 2011 at 3:23
  • 2. But I'm not sure if compressing Program Files will disturb the paging. Can Windows page as freely if the file is compressed? Can Windows memory map a compressed file? Jan 4, 2011 at 3:24
  • I don't know the answer, but I'd be surprised if it can't. I don't see why it couldn't. It reads the file, puts it in RAM, and then pages out anything it needs to. I don't see why compression of the initial file would hinder that. But again, how often is your server needing to do an initial read of binaries from %PROGRAM_FILES% ?
    – mfinni
    Jan 4, 2011 at 15:06
0

Write operations will be slower. Read operations - depends. There's some good info here: https://superuser.com/questions/411720/how-does-ntfs-compression-affect-performance

My personal experience is that it has a bad effect on performance. However I have not conducted thorough benchmarks, luckily tomshardware has:

https://www.tomshardware.com/reviews/ssd-ntfs-compression,3073-8.html

https://www.tomshardware.com/reviews/ssd-ntfs-compression,3073-9.html

https://www.tomshardware.com/reviews/ssd-ntfs-compression,3073-10.html

And the conclusion is yes, it's significantly slower, particularly for program load times.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .