Testing BTRFS – Performance comparison on a high performance SSD (BTRfs vs Ext4)

Hi,
Today I was reading about btrfs and as never used it before I thought in giving it a try.
On my laptop I have a ssd with 256GB, there I created 2 LVM2 volumes to use and test btrfs.
It’s not the ideal solution because there’s a LVM layer but I’m not in the mood for backup,erasing,installing,erasing and installing. So the tests I’m going to do are just on the FS itself, not on all the layers that btrfs supports. A good thing in using a ssd card is that the access time is equal for all the block device and the data position on the block device is not accountable, so this is a very good opportunity to have measurements both on ext4 and btrfs.
Here’s the benchmark architecture, tools and setup:

Kernel:

Linux MartiniMan-LAP 2.6.38-31-desktop #1 SMP PREEMPT 2011-04-06 09:01:38 +0200 x86_64 x86_64 x86_64 GNU/Linux

LVM lv creation command:

lvcreate -L 20G -n TestingBTRfs /dev/mapper/system
lvcreate -L 20G -n TestingExt4fs /dev/mapper/system

LVM lvdisplay output:

--- Logical volume ---
LV Name /dev/system/TestingBTRfs
VG Name system
LV UUID zBYf0d-metk-VC9U-YkjE-z1Ts-NMLb-HzYmrJ
LV Write Access read/write
LV Status available
LV Size 20.00 GiB
Current LE 5120
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:3

--- Logical volume ---
LV Name /dev/system/TestingExt4fs
VG Name system
LV UUID FJEfiv-Hs9W-zGuV-sJIo-3INN-gh52-YgmsVl
LV Write Access read/write
LV Status available
LV Size 20.00 GiB
Current LE 5120
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4

FS creation command:

mkfs.ext4 /dev/system/TestingExt4fs
mkfs.btrfs /dev/system/TestingBTRfs

Processor:

model name : Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz

HardDrive:

Device Model: SAMSUNG MMDOE56G5MXP-0VB

Mount command (as you can see I didn’t do any optimizations, noatime, etc):

/dev/mapper/system-TestingBTRfs on /mnt/btrf type btrfs (rw)
/dev/mapper/system-TestingExt4fs on /mnt/ext4 type ext4 (rw)

Test software:

'Iozone' Filesystem Benchmark Program

Version $Revision: 3.373 $
Compiled for 64 bit mode.

Command line for the tests:
Command line used:

 ./iozone -Ra -r4k -r8k -r16k -r32k -r64k -r128 -r1024 -r4096k -r16384k -s1g

This command was used in the btrfs and the ext4 volumes.
The options mean:
-R excel/

office compatible format.
-a auto test
-r the record size (you can see I used several (4k,8k…))
-s size of test file (I used 1GB)

Here’s the test results:

And the charts (The scale is logarithmic):

(you may download the data here: [download id=”1″])

Conclusions

As you can see on the charts for sequential reading/writing there’s a performance gain  in BTRfs with the smaller record sizes but the inverse is also true, EXT4 has more performance on larger record sizes.

If you look to the random data access while reading or writing you’ll see that EXT4 is far faster that BTRfs, and this is according to my daily usage pattern would be 70% of the access to my hard drive. To be sincere I’m a bit surprised on such a difference. I know I didn’t tune any of the file systems and the purpose of this benchmark is not having to, just playing with the defaults as most of the installations out there.

Another conclusion that is really simple to understand is that bigger record sizes mean best performance.

For now I think I’ll stick to EXT4 and LVM, who knows if I’ll sometime soon I’ll change to BTRFS, I’ll let it grow and advise you to do the same.

Cheers,

Pedro Oliveira

Using awk to replace a block on a text file

Hello people,
If you need to replace a text block on a file you may use awk with the following sintax:
awk ‘/start/{f=1;print;while (getline < “replace.txt”){print}}/end/{f=0}!f’ datafile.txt

where datafile.txt:

bla bla bla
<start>
ble ble ble
ble ble ble
<end>
blo blo

and replace.txt like:

TEST OK

the outcome should be:

bla bla bla
<start>
TEST OK
<end>
blo blo

Cheers,
Pedro Oliveira

Hard reset on linux command line.

Linux is not Windows and if reboot fail you usually still connect by SSH and do something. This commands will show you how to remotely hard reboot machine.

Hard reboot mean that shutdown scripts will not run and machine reboot immediately without syncing hard disk drives, shutdown applications etc, it’s like hitting the reset button on your server.

 

echo 1 > /proc/sys/kernel/sysrq

echo b > /proc/sysrq-trigger

This commands enable sysrq and after this calls fast reboot. If you want to force shutdown machine try this.
Force shutdown

 

echo 1 > /proc/sys/kernel/sysrq

echo o > /proc/sysrq-trigger

This came handy, when I had a server that had some IO error and it can no longer read from disk, only few cached binaries into memory kept it running (kernel, SSHD, bash), I could still access the machine via SSH but can no longer do anything, forcing the reboot as mentioned above was my only resort, and it worked like charm…

Using cat,ssh and dd to copy ISOs

Hi!
After a long time without posting on the blog here I come again with a tiny command line that can speed up the usual method of copying large amounts of data.

Sometime ago a college gave me a DVD that I would like to keep to myself but that other 2 colleges wanted too. I used dd, cat and ssh for the task. Taking less that 5 minutes to do it all.

First I started the .iso creation with dd:

dd if=/dev/cdrom of=/home/pedro/my_new_iso.iso

In other console you may start the copy of the iso file even if the iso it’s fully copied to the hard drive (just give a few seconds to have some data copied to the drive):

(cat /home/pedro/my_new_iso.iso | ssh user@remote.host.local dd of=~/my_new_iso.iso) ; (cat /home/pedro/my_new_iso.iso | ssh user2@remote2.host.local dd of=~/my_new_iso.iso)

The only thing you need to guarantee is that the first command ends before the second one.
Cheers,
See you all next time

Hobao Hyper 9.5 GL review – from a user point of view

Last time I wrote about the Hobao Hyper 9  I was waiting the 9.5 arrival. It did arrived and I managed to put a gallon on it on practice plus a weekend competition. The competition didn’t go that well but it wasn’t the cars fault, just did practice and qualifications having to leave afterwards.

But lets go to what matters, how’s the Hyper 9.5 GL behaving and what are the new features?

Hyper 9.5 GL has some big improvements on its predecessor the Hyper 9 here’s a list:

  1. 4mm thick + 4mm longer rear lightweight chassis
  2. CNC Front chassis brace
  3. CNC Rear chassis brace
  4. Spider diff (front 5000, center 3000, rear 1000)
  5. 20 Degree engine mount
  6. CNC Coordinator mount
  7. 17mm (20mm) Big Bore shock set
  8. White spring set
  9. CNC one piece shock top cap set
  10. Fiber brake disc set up
  11. Front +2mm wheel hubs
  12. Rear +4mm wheel hubs
  13. Rear 3mm stabilizer
  14. Dust proof wheel nuts
  15. Proline 9024 tires

In my opinion on this list of upgrades from the hyper 9 to the 9.5 the really important ones are:

  1. 4mm thick + 4mm longer rear lightweight chassis
  2. CNC Front chassis brace
  3. CNC Rear chassis brace
  4. 17mm (20mm) Big Bore shock set
  5. White spring set
  6. Dust proof wheel nuts

With the new chassis and braces I’ve been damaging lot less parts than I had with the Hyper 9, specially the center dogbones and plastics, the new shocks are also great in handling as the new springs. The dust proof wheel nuts aren’t just a fancy upgrade they do help a lot preventing dust inside the nuts making it faster to replace or upgrade parts on the track.

About all the other improvements they work really well the brakes are much better, tiny springs where added to the brake pads this makes the brake free as soon as you hit the accelerator. The differential as better too, although I didn’t complain on the previous ones.

What I didn’t enjoy that much and reverted to the setting of the hyper 9 was the engine mount, I like the 25 degrees engine mount better, in my opinion the car handles better, but maybe it’s just me that I’m used to the older mount.

About the handling, what can I say, I loved the car before can’t deny it, but now I love it even more (my wife will kill me for saying this) but the handling in curve is better with the new chassis, the life cycle of parts is improved, I ran the gallon and the track weekend with almost no maintaince other than changing shock springs for tunning, and some minor setups (specially on the brakes). I’ve also noticed that with the with the white springs I can go faster on the corners without rolling. I also enjoy the gray ones for tracks that doesn’t have that many jumps.

What more can I say about the car, not much, just a little comparison I’ve been driving an HotBodies D8 and a Kyosho MP9 and compared to the D8 I like the Hyper 9 much more but compared to the Kyosho… well the Kyosho is a really nice car too, it’s fast and small like the Hyper, they both fly well and turn well in the long run I think the Hyper may have some advantage in what matters to shocks and turning speed, in accelaration they both perform very well but i think with the kyosho you can accelerate a bit sooner existing the corners, but this is just a thought, didn’t do an extensive test.

I’m more experienced with the hyper and it shows on lap times, but with the Kyosho I’m a second and a half slower, maybe due to the lack of habit driving it, with the D8 well… I’m three and a half seconds slower…and I’m equally used to it as I am with the Kyosho MP9.

In conclusion I think the Hyper 9.5 GL a great evolution on the hyper, it’s not that cheap nor it’s a car free of trouble, but is one of the best RC cars out there at least that I’ve drove, on the bottom end I really dislike the access to electronics as you have to take out the break linkage to change battery or do something else in the box, but well perfection doesn’t exist 😉

Cheers,

Pedro Oliveira