VMware Cloud Community
rickardnobel
Champion
Champion

Memory compression - does it use ZIP?

The new memory compression system in 4.1 sets in before going to vmkernel swap. In RESXTOP the amount is showed as a certain amount of ZIP / MB.

My question is, do we know which compression form it uses, i.e. is it ZIP? Or is "zip" just a short way of speaking of compressed data in some form?

My VMware blog: www.rickardnobel.se
0 Kudos
3 Replies
a_p_
Leadership
Leadership

It's always interesting to read your question. Even though I don't actually know which compression is used, I don't think it's zip. Since I also don't think the guys at VMware developed a new compression algorithm, I assume they probably use the Lempel–Ziv (LZ) algorithm for performance reasons.

André

rickardnobel
Champion
Champion

André Pett wrote:

It's always interesting to read your question.

Thanks. Do you think I ask a lot? Smiley Happy

Since I also don't think the guys at VMware developed a new compression algorithm, I assume they probably use the Lempel–Ziv (LZ) algorithm for performance reasons.

It sounds reasonable to not develope a new algorithm of course and probably performance would be more important than good compression rate. From what I understand it only attempts at pages which could be reduced to 50%.

My VMware blog: www.rickardnobel.se
0 Kudos
AureusStone
Expert
Expert

That is a good question.

I don't know if anyone other then VMWare would know the answer.

They have used the word "ZIP" consistently throughout the software.  If you go into the advanced memory management options on the host they still refer to it as ZIP compression.

Having said that there is almost zero chance they are using ZIP compression.  ZIP is a general purpose algorithm that would not be suitable for memory compression.  VMWare would be using an algorithm that is a good trade off between speed and compression.

Also the ZIP file format is not an open format.

Here is an extract from a document on memory compression on Linux

http://www.kernel.org/doc/ols/2007/ols2007v1-pages-53-64.pdf

On page 61

"by using WKdm and miniLZO sequentially, we can obtain good compression levels with small overheads"

This is from 2007, but I still presume they went with something like this.