What compression tools are available in Ubuntu that can benefit from a multi-core CPU.
Ubuntu – Multi-Core Compression tools
compressionmulti-core
Related Solutions
I can only answer with the available information in the different related btrfs sites. As you say, using compression is relatively safe as compression is only applied to the new written content. As per the stability of the FS, it is still in testing stage, although it seems to be pretty stable right now. About recompressing the whole disk, I'm not sure you can do it (I haven't seen it). It shouldn't be difficult to write such tool. Right now the obvious way is to copy/move the data from the partition to other disk/partition, and then re-copying, but it implies having enough space in another disk or partition to do the copy (and a fair amount of time)...
For the time being, I do not have a clear answer for this, however it is obvious that the linux Kernel is using some energy saving mechanisms.
However, doing some quick research around, I quickly realised that the most recent Linux kernels make use of a feature called ACPI which is an acronym for Advanced Configuration and Power Interface.
What the ACPI is doing:
the Advanced Configuration and Power Interface (ACPI) specification provides an open standard for device configuration and power management by the operating system.
via Wikipedia.
Basically the ACPI allows for control of different CPU states, to allow for better power management.
Different ACPI CPU-states:
CPU C-States (power management)
Basically, there is probably nothing that you have to worry about concerning the CPU "C states". These are automatically controlled by the kernel+ACPI system taking into consideration current system load. (CAVEAT: check out the note about AMD Athlon and Duron processors below). The ACPI code in the newer (2.6+) kernels automatically puts your CPU to sleep when there is idle time (note: this does not change the CPU frequency. That is controlled by "P states" - see below).
The only thing to realize is that your system is completely "conscious" when the CPU is momentarily halted - you won't notice much of a difference. However, the power savings can be considerable. Just think of it as having your CPU taking thousands of "micro-naps" whenever it is idle.
CPU-T States (throttling)
These are very much like "C states" (the same HLT instruction is used), however the difference is that throttling is "forced by you" (like every 4th cycle is forced to be a sleep cycle, as opposed to the "C states" above which are automatically determined by the system load). Note that the frequency has NOT been changed... see the "P states" below.
CPU-P States (performance)
Many processors these days (especially laptops) can have the clock frequency actually slowed "on the fly". This adds up to huge power savings. Intel calls this "SpeedStep" and AMD calls it "Cool'n'Quiet" or "PowerNow". More generically these states are called "P states". You will almost certainly have to go into the BIOS and enable this feature for your CPU FIRST!
** Some consumption benchmarks:**
What are the power savings from the above CPU states? The following data is extracted from the AMD website. Consider an AMD 64 3400+/2200MHz with 1 MB of L2 cache. By the way, while I'm here, let me complain about the AMD naming convention. The number 3400+ doesn't mean jack squat. This is just AMD's way of saying that this processor "looks like" an Intel Pentium-4 running at 3400MHz. I guess this is their way of not losing marketshare. Here are the P and T state power consumption values (the C state is the same HLT instruction as the T state):
- Performance State 0 (Fully Active) (2200MHz): 89 Watts
- Performance State 1 (2000MHz): 70 Watts
- Performance State 2 (800MHz): 35 Watts
- Throttled (HLT instruction): 2.2 Watts
Some references for further reading
- Red Hat power management guide ( I know you asked about Ubuntu, but this is still a good read)
- http://www.spencerstirling.com/computergeek/powersaving.html
- This article talks about APM mostly (an older version of ACPI) but it makes a reference to ACPI too.
- Very technical information can be found here.
- The PowerTop software, which seems to be cool.
- The Gentoo Power management guide. Still a good read.
- An introductory Linux Journal Article.
- And the Wikipedia article.
EDITS
[EDIT #1]: Googling around, I found some other posts in some forums too (OpenSuse forum seems to be relevant to what you seek) and found out that this is not that much of an issue for Linux as it is for windows and especially in gaming. I also dug up some information in two mails (first one and second one [follow-up]) in the RedHat mailing lists that seems to be related. I am currently researching the information in it.
[EDIT #2]: I have researched the issue a bit, and I am getting more and more certain that there is not a core parking mechanism in Linux, unless there is one the ACPI that I am unaware of. Some interesting findings are some pieces of software that allow for direct manipulation of the cpu and the processes run on it, like cpuset, numactl and last but not least, CPUfreq. Will continue with my research.
Best Answer
There are two main tools.
lbzip2
andpbzip2
. They're essentially different implementations of bzip2 compressors. I've compared them (the output is a tidied up version but you should be able to run the commands)lbzip2
appears to be the winner on random data. It's slightly less compressed but much quicker. YMMV.