Skip to contentSkip to conversation

good compressed caching experience

2.4.20-ck7 Kimmo Sundqvist 3 participants 8 messages May 26, 2003 – May 28, 2003

lore
Share & tools
lore
#0 lore raw

Hello

I just decided to tell everyone that I've been able to run 2.4.20-ck7 with compressed caching enabled in my little brother's Pentium 133MHz, for hours, doing stress testing, compiling kernels and using the Internet under X.

I had pre-empt enabled. Compressed swap worked also. I used 4kB pages without compressed swap, and 8kB with it.

This was with Con's ck7pre versions released on 24th and 25th of May.

Now running 2.4.20-ck7pre with compressed cache in a dual CPU machine with SMP disabled (compressed caching and SMP support are still mutually exclusive), 1GB of RAM but "mem=128M" for testing purposes. Been stable for 6 hours now, and done even some stress testing. Try 128 instances of burnBX with 1MB each, like "for ((A=128;A--;A<1)) do burnBX J & done". A nice brute force or "if you don't behave I'll push all my buttons" method :)

Wondering if Pentium 133MHz (64MB RAM) is fast enough to benefit from compressed caching. I know there's a limit, depending on the speed of the CPU and the speed of the swap partition (doing random accesses), which determines if compressed caching is beneficial or not.

This machine has a Seagate Barracuda V 80GB, which does sequential reads at 40MB/s. I could drive this into trashing, then type "sar -B 1 1000" and see how the swap is doing. Now, compressed caching brings me benefit if, and only if, it can compress and decompress pages faster than that in this CPU, which it sure does, since this is a Pentium III 933MHz, but I'm not sure about the little brother's Pentium 133MHz. It has a 4GB Seagate that does 6MB/s sequentially. Did I figure it out correctly? Of course swapping to a partition gets slower as the swap usage increases. Longer seeks and the like.

Just a warning... both systems have only ReiserFS partitions. Other FSes might still get hurt.

-Kimmo Sundqvist

#1 lore raw
Quoted 1 line · Kimmo Sundqvist

Hello

Hi Kimmo

Quoted 23 lines

I just decided to tell everyone that I've been able to run 2.4.20-ck7 with compressed caching enabled in my little brother's Pentium 133MHz, for hours, doing stress testing, compiling kernels and using the Internet under X.

I had pre-empt enabled. Compressed swap worked also. I used 4kB pages without compressed swap, and 8kB with it.

This was with Con's ck7pre versions released on 24th and 25th of May.

Now running 2.4.20-ck7pre with compressed cache in a dual CPU machine with SMP disabled (compressed caching and SMP support are still mutually exclusive), 1GB of RAM but "mem=128M" for testing purposes. Been stable for 6 hours now, and done even some stress testing. Try 128 instances of burnBX with 1MB each, like "for ((A=128;A--;A<1)) do burnBX J & done". A nice brute force or "if you don't behave I'll push all my buttons" method :)

Wondering if Pentium 133MHz (64MB RAM) is fast enough to benefit from compressed caching. I know there's a limit, depending on the speed of the CPU and the speed of the swap partition (doing random accesses), which determines if compressed caching is beneficial or not.

Quoted 9 lines

This machine has a Seagate Barracuda V 80GB, which does sequential reads at 40MB/s. I could drive this into trashing, then type "sar -B 1 1000" and see how the swap is doing. Now, compressed caching brings me benefit if, and only if, it can compress and decompress pages faster than that in this CPU, which it sure does, since this is a Pentium III 933MHz, but I'm not sure about the little brother's Pentium 133MHz. It has a 4GB Seagate that does 6MB/s sequentially. Did I figure it out correctly? Of course swapping to a partition gets slower as the swap usage increases. Longer seeks and the like.

What you describe has been my experience with cc as well. I haven't had any crashes or unusual problems with it since removing the AA vm changes as well
- it seemed to be the combination that caused hiccups on extreme testing.

Quoted 1 line

From what I can see, no matter how slow your cpu you will still get benefit

from cc as the hard drives on those machines are proportionately slower as well. The one limitation of cc is that it does require _some_ ram to actually store swap pages in, and it seems that you need more than 32Mb ram to start deriving benefit.

One minor thing, though - my vm hacks make compressed caching work much less than it normally does as they try to avoid swapping quite aggressively. It is when the vm attempts to start swapping that cc looks to see if it should take pages into compressed cache instead.

I've cc'ed the actual developer of cc as he has indicated that he is actively working on compressed caching again.

Quoted 2 lines

Just a warning... both systems have only ReiserFS partitions. Other FSes might still get hurt.

This is definitely the case! If you try out compressed caching with ck7 please do not enable preempt if you are using ext2/3 or vfat.

Cheers,
Con

#2 lore raw

Hi Con,

Quoted 8 lines · Con Kolivas
Quoted 7 lines · Kimmo Sundqvist

I just decided to tell everyone that I've been able to run 2.4.20-ck7 with compressed caching enabled in my little brother's Pentium 133MHz, for hours, doing stress testing, compiling kernels and using the Internet under X.

I had pre-empt enabled. Compressed swap worked also. I used 4kB pages without compressed swap, and 8kB with it.

[snip]

Quoted 10 lines
Quoted 10 lines

exclusive), 1GB of RAM but "mem=128M" for testing purposes. Been stable for 6 hours now, and done even some stress testing. Try 128 instances of burnBX with 1MB each, like "for ((A=128;A--;A<1)) do burnBX J & done". A nice brute force or "if you don't behave I'll push all my buttons" method :)

Wondering if Pentium 133MHz (64MB RAM) is fast enough to benefit from compressed caching. I know there's a limit, depending on the speed of the CPU and the speed of the swap partition (doing random accesses), which determines if compressed caching is beneficial or not.

[snip]

Quoted 4 lines

What you describe has been my experience with cc as well. I haven't had any crashes or unusual problems with it since removing the AA vm changes as well - it seemed to be the combination that caused hiccups on extreme testing.

Something to be figured out yet. It is a pity we couldn't work harder on these problems.

Quoted 3 lines
Quoted 1 line

From what I can see, no matter how slow your cpu you will still get

benefit from cc as the hard drives on those machines are proportionately slower as well.

I guess that, in the past, the gap was smaller, but still there.

Quoted 3 lines

The one limitation of cc is that it does require _some_ ram to actually store swap pages in, and it seems that you need more than 32Mb ram to start deriving benefit.

I am not sure. It requires some ram, but it is only a few pages to avoid failed page allocations when it first needs to allocate pages. I have a report of running CC on a laptop with 8M RAM, that showed to be a little more responsive. I don't have a scientific results showing that is better on system with a lower amount of memory, but this feedback seems positive.

Quoted 4 lines

One minor thing, though - my vm hacks make compressed caching work much less than it normally does as they try to avoid swapping quite aggressively. It is when the vm attempts to start swapping that cc looks to see if it should take pages into compressed cache instead.

What exactly are your VM hacks concerning CC? The default behaviour is to compress pages only when the VM starts freeing pages, not in a compress-ahead fashion, pretty much what I think you said above.

Quoted 2 lines

I've cc'ed the actual developer of cc as he has indicated that he is actively working on compressed caching again.

At a slower pace, but finally back to CC development. :-)

Quoted 5 lines
Quoted 2 lines

Just a warning... both systems have only ReiserFS partitions. Other FSes might still get hurt.

This is definitely the case! If you try out compressed caching with ck7 please do not enable preempt if you are using ext2/3 or vfat.

As told in a previous email, I wouldn't enable preempt in any case with this code version.

Regards,

Signature · 1 line
Rodrigo
#3 lore raw
Quoted 29 lines · Rodrigo Souza de Castro

Hi Con,

Quoted 8 lines · Con Kolivas
Quoted 7 lines · Kimmo Sundqvist

I just decided to tell everyone that I've been able to run 2.4.20-ck7 with compressed caching enabled in my little brother's Pentium 133MHz, for hours, doing stress testing, compiling kernels and using the Internet under X.

I had pre-empt enabled. Compressed swap worked also. I used 4kB pages without compressed swap, and 8kB with it.

[snip]

Quoted 12 lines
Quoted 12 lines

exclusive), 1GB of RAM but "mem=128M" for testing purposes. Been stable for 6 hours now, and done even some stress testing. Try 128 instances of burnBX with 1MB each, like "for ((A=128;A--;A<1)) do burnBX J & done". A nice brute force or "if you don't behave I'll push all my buttons" method

:)

Wondering if Pentium 133MHz (64MB RAM) is fast enough to benefit from compressed caching. I know there's a limit, depending on the speed of the CPU and the speed of the swap partition (doing random accesses), which determines if compressed caching is beneficial or not.

[snip]

Quoted 7 lines
Quoted 4 lines

What you describe has been my experience with cc as well. I haven't had any crashes or unusual problems with it since removing the AA vm changes as well - it seemed to be the combination that caused hiccups on extreme testing.

Something to be figured out yet. It is a pity we couldn't work harder on these problems.

I think getting the stability necessary on the main tree was far more important so I don't regret this.

Quoted 19 lines
Quoted 5 lines
Quoted 2 lines

From what I can see, no matter how slow your cpu you will still get

benefit from cc as the hard drives on those machines are proportionately slower as well.

I guess that, in the past, the gap was smaller, but still there.

Quoted 3 lines

The one limitation of cc is that it does require _some_ ram to actually store swap pages in, and it seems that you need more than 32Mb ram to start deriving benefit.

I am not sure. It requires some ram, but it is only a few pages to avoid failed page allocations when it first needs to allocate pages. I have a report of running CC on a laptop with 8M RAM, that showed to be a little more responsive. I don't have a scientific results showing that is better on system with a lower amount of memory, but this feedback seems positive.

Quoted 8 lines
Quoted 4 lines

One minor thing, though - my vm hacks make compressed caching work much less than it normally does as they try to avoid swapping quite aggressively. It is when the vm attempts to start swapping that cc looks to see if it should take pages into compressed cache instead.

What exactly are your VM hacks concerning CC? The default behaviour is to compress pages only when the VM starts freeing pages, not in a compress-ahead fashion, pretty much what I think you said above.

Ok, I didn't look at your code, but that would make sense too because with my hacks it will start even lower priority than the default VM freeing less pages at a time unless the memory pressure gets high.

Quoted 5 lines
Quoted 3 lines

I've cc'ed the actual developer of cc as he has indicated that he is actively working on compressed caching again.

At a slower pace, but finally back to CC development. :-)

Excellent. Good to have you back.

Quoted 9 lines
Quoted 6 lines
Quoted 3 lines

Just a warning... both systems have only ReiserFS partitions. Other FSes might still get hurt.

This is definitely the case! If you try out compressed caching with ck7 please do not enable preempt if you are using ext2/3 or vfat.

As told in a previous email, I wouldn't enable preempt in any case with this code version.

-ck has always come with a warning saying as much. I hope to integrate more of your code when you're happy with it, so this problem can be resolved.

Cheers,
Con

#4 lore raw
In reply to Con Kolivas
Quoted 7 lines · Con Kolivas
Quoted 2 lines · Kimmo Sundqvist

Just a warning... both systems have only ReiserFS partitions. Other FSes might still get hurt.

This is definitely the case! If you try out compressed caching with ck7 please do not enable preempt if you are using ext2/3 or vfat.

Is this a problem in ext2/3, pre-empt implementation, compressed caching or kernel in general?

I think I can still choose between compression methods, or can I? Which one of them, on average, is the least CPU-intensive, and which one gives the best compression ratio? I am also at loss how to interpret the percentages in "cat /proc/comp_cache_stat".

For M$ Windows there was once a program called MagnaRAM97 that had a similar idea, but I don't understand how it could report 2 to 3-fold compression ratios. It always spontaneously rebooted the Pentium 133MHz after some hours, so I uninstalled it.

Just take your time, but will we see a pre-empt safe (or better yet SMP safe) version coming out anytime soon?

Compiling another 2.4.20-ck7 with 8kB pages and swap compression in the background. I have now "mem=896M" to avoid the highmem boundary, even if it wasn't necessary. Someone said somewhere that a 1GB system is faster without highmem support, so I haven't compiled it in for a while.

-Kimmo S.

#5 lore raw
Quoted 10 lines · Kimmo Sundqvist
Quoted 6 lines · Con Kolivas
Quoted 2 lines · Kimmo Sundqvist

Just a warning... both systems have only ReiserFS partitions. Other FSes might still get hurt.

This is definitely the case! If you try out compressed caching with ck7 please do not enable preempt if you are using ext2/3 or vfat.

Is this a problem in ext2/3, pre-empt implementation, compressed caching or kernel in general?

The compressed caching code isn't yet properly preempt aware. The filesystems that are safe are just lucky.

Quoted 5 lines

I think I can still choose between compression methods, or can I? Which one of them, on average, is the least CPU-intensive, and which one gives the best compression ratio? I am also at loss how to interpret the percentages in "cat /proc/comp_cache_stat".

The default in -ck7 is lzo which is the best compression and pretty fast. The full details only RCastro can tell us.

Quoted 6 lines

For M$ Windows there was once a program called MagnaRAM97 that had a similar idea, but I don't understand how it could report 2 to 3-fold compression ratios. It always spontaneously rebooted the Pentium 133MHz after some hours, so I uninstalled it.

Quoted 7 lines

Just take your time, but will we see a pre-empt safe (or better yet SMP safe) version coming out anytime soon?

Compiling another 2.4.20-ck7 with 8kB pages and swap compression in the background. I have now "mem=896M" to avoid the highmem boundary, even if it wasn't necessary. Someone said somewhere that a 1GB system is faster without highmem support, so I haven't compiled it in for a while.

Definitely with the default VM as the basis in 2.4 (as opposed to AA or RMAP) you are much better off without High Mem enabled if you only have 1Gb.

Con

#6 lore raw
In reply to Kimmo Sundqvist

Hey Kimmo,

Quoted 10 lines · Kimmo Sundqvist
Quoted 6 lines · Con Kolivas
Quoted 2 lines · Kimmo Sundqvist

Just a warning... both systems have only ReiserFS partitions. Other FSes might still get hurt.

This is definitely the case! If you try out compressed caching with ck7 please do not enable preempt if you are using ext2/3 or vfat.

Is this a problem in ext2/3, pre-empt implementation, compressed caching or kernel in general?

It is a compressed caching problem. As Con said, FSs that are safe are just lucky.

Quoted 1 line

I think I can still choose between compression methods, or can I?

You can, just use the kernel parameter "compalg=" kernel parameter.

compalg=0 (WKdm)
compalg=1 (WK4x4)
compalg=2 (LZO, default)

Quoted 3 lines

Which one of them, on average, is the least CPU-intensive, and which one gives the best compression ratio? I am also at loss how to interpret the percentages in "cat /proc/comp_cache_stat".

LZO is the most CPU-intensive and gives the best compression ratio. Even if spending more CPU cycles to compress than WKdm or WK4x4, it showed to have the best performance given its compression ratio.

Quoted 4 lines

For M$ Windows there was once a program called MagnaRAM97 that had a similar idea, but I don't understand how it could report 2 to 3-fold compression ratios. It always spontaneously rebooted the Pentium 133MHz after some hours, so I uninstalled it.

I am not sure, but I guess the purpose of MagnaRAM and this patch are different, as well as the approach. This patch intends to reduce the number of disk accesses using compression and extending effective memory size, therefore improving general performance. We use an adaptive cache size to avoid overhead when compression isn't/wouldn't help.

Quoted 2 lines

Just take your time, but will we see a pre-empt safe (or better yet SMP safe) version coming out anytime soon?

Yes, you will, they are the top items on my todo list.

Quoted 5 lines

Compiling another 2.4.20-ck7 with 8kB pages and swap compression in the background. I have now "mem=896M" to avoid the highmem boundary, even if it wasn't necessary. Someone said somewhere that a 1GB system is faster without highmem support, so I haven't compiled it in for a while.

Best regards,

Signature · 1 line
Rodrigo
#7 lore raw
In reply to Kimmo Sundqvist

Hi Kimmo!

Quoted 4 lines · Kimmo Sundqvist

I just decided to tell everyone that I've been able to run 2.4.20-ck7 with compressed caching enabled in my little brother's Pentium 133MHz, for hours, doing stress testing, compiling kernels and using the Internet under X.

Great, glad to know that.

Quoted 2 lines

I had pre-empt enabled. Compressed swap worked also. I used 4kB pages without compressed swap, and 8kB with it.

Compressed cache patch isn't safe to be used with preempt, at least not with the version you tried (0.24pre5). There are some bug reports that I was able to check myself about fs corruptions (due to problems in locking control). The latest code seems to fix these corruptions, given some tests some volunteers and I performed. I ported this code to 2.4.20, but I still couldn't figure out why it isn't as stable as in 2.4.18 version, that is why it remains unreleased as a patch (although it is in the CVS server).

Double page size (i.e, 8K pages) is useful when you don't have a good compression ratio. If your data compress to more than 50% of its original size, a compressed cache with 4K isn't supposed to provide major performance gains.

Quoted 6 lines

This was with Con's ck7pre versions released on 24th and 25th of May.

Now running 2.4.20-ck7pre with compressed cache in a dual CPU machine with SMP disabled (compressed caching and SMP support are still mutually exclusive),

Until I make it work safely on SMP systems, I want to make it exclusive in the config.in.

Quoted 5 lines

1GB of RAM but "mem=128M" for testing purposes. Been stable for 6 hours now, and done even some stress testing. Try 128 instances of burnBX with 1MB each, like "for ((A=128;A--;A<1)) do burnBX J & done". A nice brute force or "if you don't behave I'll push all my buttons" method :)

:-)

Quoted 5 lines

Wondering if Pentium 133MHz (64MB RAM) is fast enough to benefit from compressed caching. I know there's a limit, depending on the speed of the CPU and the speed of the swap partition (doing random accesses), which determines if compressed caching is beneficial or not.

That's right. Faster CPUs have a greater tendency to benefit from compressed caching, since the gap between them and disks is larger. This gap is the basic principle that makes compressed caching interesting today.

Quoted 9 lines

This machine has a Seagate Barracuda V 80GB, which does sequential reads at 40MB/s. I could drive this into trashing, then type "sar -B 1 1000" and see how the swap is doing. Now, compressed caching brings me benefit if, and only if, it can compress and decompress pages faster than that in this CPU, which it sure does, since this is a Pentium III 933MHz, but I'm not sure about the little brother's Pentium 133MHz. It has a 4GB Seagate that does 6MB/s sequentially. Did I figure it out correctly? Of course swapping to a partition gets slower as the swap usage increases. Longer seeks and the like.

Yes, you figured it out correctly. I don't know the lower limit for a CPU to benefit from compressed caching. However I guess that, since we already had a gap between disk and CPU with a Pentium 133 MHz, it will probably have some advantage using it, even if not as much as with a faster CPU. The current code was written and tested on a Pentium III 1 GHz CPU, so there may be room for improvements for such systems, as your Pentium 133 MHz.

I would like to know your impressions about compressed caching on your brother's system.

Quoted 2 lines

Just a warning... both systems have only ReiserFS partitions. Other FSes might still get hurt.

True. I don't know how you don't have your filesystem corrupted though. I suggest you to disable preempt if you want to keep testing this compressed cache code in order to avoid possible problems (and you getting mad at me :-).

Thanks for your feedback.

Regards,

Signature · 1 line
Rodrigo