Announcement

Collapse
No announcement yet.

Ubuntu 12.10 File-Systems: Btrfs, EXT4, XFS

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by russofris View Post
    My guess (when I see strange results like that) is that BTRFS is ignoring an fsync or flush of some type, and caching when it shouldn't be.
    I'm 99,9% sure that's the case simply because physically the HDD in this test would never be able to achieve such high random write values. Even the fastest consumer HDD (Velociraptor 1TB) wouldn't be able to achieve even 1/10 of those 35MB/s.

    Comment


    • #17
      i wonder when butter is gonna released as stable. it's funny that linux managed to ship a graphic server before a filesystem. even though linux is used heavily in the enterprise and a high-end filesystem is very important.

      Comment


      • #18
        Originally posted by russofris View Post
        BTRFS has an SSD mount option which changes some of the underlying logic. To date, I have not seen a compelling set of benchmark results to call it faster than without the mount option on an SSD.

        There are tools for BTRFS, including fsck. I do not know that I would call them stable (It's a relative term), nor do I believe that fsck is as essential as it was with the previous generation of filesystems.

        F
        From what I understand it just turns off the optimizations meant for spinning disks as it's wasted cpu cycles to perform them where the seek latency is the same throughout the entirety of the disk.

        Comment


        • #19
          XFS stable on old system where EXT4 crashed

          I had an interesting experience a few days ago with an old machine that I was upgrading for a friend. I installed Ubuntu for him 3 years ago and it has run fine. Then he wanted an upgrade, which I did. But the OS wouldn't survive more than a couple of reboots before totally crashing and burning, so serious that I couldn't repair it and had to reinstall. Happened a few times. So finally, I put Ubuntu (actually, Lubuntu) 12.04 on it using XFS as the file system, and it has been fine.

          No doubt there's something funny going on with his hardware. But anyway, XFS works and EXT4 doesn't. I didn't try BTRFS. I'm just happy it works and will leave well enough alone. I am curious though if anyone else has seen this?

          Comment


          • #20
            Originally posted by russofris View Post
            BTRFS has an SSD mount option which changes some of the underlying logic. To date, I have not seen a compelling set of benchmark results to call it faster than without the mount option on an SSD.
            I think the mount option is deprecated, btrfs now automatically switches to that mode when it sees a SSD. Also AFAIK it's not supposed to make a performance difference, the purpose is rather to extend the device's life.

            Comment


            • #21
              Originally posted by Ericg View Post
              Side note: Why is Btrfs so good at threaded IO? Like what the f*ck? Thats a huge jump up from ext4 and xfs. Is it because of BTRFS design or what?
              COW "converts" a bunch of random writes into sequential writes; the downside is that the files will become more fragmented than with a traditional update-in-place filesystem.
              Last edited by jabl; 09-18-2012, 01:59 AM. Reason: remove whitespace

              Comment


              • #22
                Originally posted by russofris View Post
                Unfortunately, I am still stuck with the perf/regression testing, and still have to write a CBA report for the directors. The other option is to wait for our vendor (RHEL or OEL) to adopt the new FS as a default/recommended option and implement it during the next cycle.
                ext4 is the default fs in RHEL6. If you're stuck on an older release, well, sucks to be you..

                (Another big advantage of ext4 over ext3 in addition to the ones mentioned previously is much faster fsync, since ext3 cannot really fsync an individual file but rather the entire file system is synced when fsync() is called.)

                Comment


                • #23
                  Michael, could you benchmark EXT4 with different journal size ?

                  From this article (2 years half old), it can make a big changes with small files : http://www.linux-mag.com/id/7666/

                  Comment


                  • #24
                    Dpkg is incredibly, horribly, painfully slow with btrfs due to fsync calls. Would have been nice to see that added to the benchmarks.

                    Comment


                    • #25
                      Originally posted by devius View Post
                      I'm 99,9% sure that's the case simply because physically the HDD in this test would never be able to achieve such high random write values. Even the fastest consumer HDD (Velociraptor 1TB) wouldn't be able to achieve even 1/10 of those 35MB/s.
                      Like jabl said, the way btrfs works effectively converts random writes into linear writes - and with that in mind, 35 MB/sec is fairly modest.

                      Comment


                      • #26
                        You should have also tested JFS. In my database tests, JFS outperforms all the others. Also, you should do a test with two HDDs (or a combination of HDD and SSD) where the journal for the main filesystem is stored on the 2nd device. Again, in my tests this can make a huge difference in overall throughput.

                        My results are posted here:
                        http://highlandsun.com/hyc/mdb/microbench/july/#sec11

                        Comment


                        • #27
                          Originally posted by highlandsun View Post
                          You should have also tested JFS. In my database tests, JFS outperforms all the others
                          Sure, a filesystem which doesn't support barriers (such as JFS or ext2) will obviously outperform one which does (e.g. ext4, btrfs, xfs) on a test which tests synchronous writes (fsync()). In order to avoid an apples to oranges comparison, you need to either

                          - Disable the disk write cache when using a filesystem without barrier support (slower but safer).

                          - Disable barriers on the filesystems with barrier support (mount with barrier=0) (fast but unsafe).

                          - Or even better, use a device with a non-volatile write cache (e.g. a RAID card with battery backed cache) (fast AND safe).

                          Comment


                          • #28
                            Originally posted by jabl View Post
                            Sure, a filesystem which doesn't support barriers (such as JFS or ext2) will obviously outperform one which does (e.g. ext4, btrfs, xfs) on a test which tests synchronous writes (fsync()). In order to avoid an apples to oranges comparison, you need to either

                            - Disable the disk write cache when using a filesystem without barrier support (slower but safer).

                            - Disable barriers on the filesystems with barrier support (mount with barrier=0) (fast but unsafe).

                            - Or even better, use a device with a non-volatile write cache (e.g. a RAID card with battery backed cache) (fast AND safe).
                            Hm, thanks for pointing that out. Yeah, I probably need to retest with disk write cache disabled.

                            Of course, in a dedicated database deployment, I would just have a single DB residing in a dedicated filesystem, and preallocate all of the space for the DB file(s). At that point, metadata updates are irrelevant, they would only be occurring for the mtime stamps and not for any structural changes, so FS structural corruption would be impossible.

                            Comment


                            • #29
                              I believe that fsck is as essential as it was with the previous generation of filesystems.

                              Comment


                              • #30
                                Originally posted by highlandsun View Post
                                Of course, in a dedicated database deployment, I would just have a single DB residing in a dedicated filesystem, and preallocate all of the space for the DB file(s). At that point, metadata updates are irrelevant, they would only be occurring for the mtime stamps and not for any structural changes, so FS structural corruption would be impossible.
                                Yes, in such a situation a database engine can get away with using fdatasync() instead of fsync(). The filesystem still needs to have barrier support in order to provide data integrity guarantees when used on a device with a volatile write cache, though.

                                Comment

                                Working...
                                X