Loading ...
Sorry, an error occurred while loading the content.

Re: [nslu2-linux] Maximizing Slug Fileserver Speed

Expand Messages
  • Yann E. MORIN
    Brian, All, ... How many at the same time? Which bitrate: 4Mibps (SDTV) or 8Mibps (HDTV)? What s between your slug and the player: WiFi, cat-5, PLT? One or
    Message 1 of 6 , Jul 2 5:25 AM
    • 0 Attachment
      Brian,
      All,

      On Sunday 02 July 2006 051, Brian Wood wrote:
      > The slug will serve MPEG-2 video files, mostly over 1GB in size.

      How many at the same time? Which bitrate: 4Mibps (SDTV) or >8Mibps (HDTV)?
      What's between your slug and the player: WiFi, cat-5, PLT? One or more hub
      or switch? (see at bottom of mail).

      > I should use NFS and not Samba for maximum speed (not serving to
      > Windows).

      To serve video (or music as well), why don't you use streaming?
      That would have the benefit of adding no file system overhead on
      the network, thus maximizing the bandwidth for the actual data
      (provided your storage medium can sustain the throughput).

      > I should use a Big-Endian OS (not sure how much difference this might
      > make).

      From my experiments, that's not noticeable by timing with hardware,
      and even less noticeable for a human being. That said, if you need
      horsepower at the same time you transfer data, then you may loose
      a few ticks, but that's nothing compared to any context-switch.

      > I should De-underclock the slug (seems obvious).

      That should help, but again, serving video via streaming is mostly
      copy-from-disk-to-memory-to-network, and your limiting factors will most
      probably be (in path-order):
      - disk-throughtput,
      - IDE2USB adapter,
      - USB throughput (you should be fine here!),
      - memory latency,
      - network throughput,
      rather than CPU performance

      > Should I use a hard drive or a flash device for the OS ? (I'm
      > assuming NFS would not give optimum speed).

      I don't get it right. Were your planing on an NFS-root? That definitely
      is a bad idea to maximise your bandwidth usage!
      Anyway a hard drive for the rootfs would be better, you could even add
      some swap to help in those moments where you'd need it.

      > What filesystem should I use ?

      To store files, any _decent_ FS should do. ext2/3 or even reiserfs should be
      fine. Avoid FAT & co. and NTFS. Avoid any compressed FS (cramfs, squashfs,
      JFFS2...) because those _are_ CPU-bound.

      To share files, don't use any file system. Use streaming. That's faster.
      If you definitely need a file system, then NFS is the best choice over samba.

      > Are there any user settable TCP/IP settings that might help optimize
      > speed.

      NFS, try rsize=16384 and wsize=16384 (or even 32768, but not bigger).
      man 5 nfs

      > Are there any filesystem options that might help optimize speed ?

      On your storage file system, use noatime (for those file systems supporting
      atime). man 8 mount

      > Any other configuration settings that might help optimize speed ?

      Add RAM to your slug to avoid swapping (although file-serving should not
      cause swapping).

      > Obviously there may be no hard and fast answers to the above, but I'd
      > like to hear any opinions, discoveries, ideas etc.

      I would stream media data (video/music), and serve other data via NFS. Thus
      I could apply some QoS on the media streams to ensure they get delivered
      reliably (in terms of latency and throughput) while my other services gets
      slowed in favor of media-streams.

      > Much thanks for any info.

      You're my guest. Anyway, I'm slowly aiming at the same kind of setup, but
      much work is before me.. :-)

      Regards,
      Yann E. MORIN.

      Note from the top:
      My setup is (not counting the USB hub and DSL in the router):

      HDD <-+ nslu2 PC: br0 router: br0
      HDD <-+ / \ / \ / \
      HDD <-+-> usb eth0 <-> eth1 eth0 <-> switch <-> PLT <-> eth0 wifi <-> PC
      \ | \
      \-> PC PC \-> PC
      +-> PC +-> PC

      ( A bit of overhead, he? :-] ) Thus I'm limited to the narower tube in the path,
      that is PLT (about 6Mibps). And I'm using a bridge in the first PC because it
      is the one I use most frequently, and which needs the faster access to the slug.
      YEM.

      --
      .-----------------.--------------------.------------------.--------------------.
      | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
      | +0/33 662376056 | Software Designer | \ / CAMPAIGN | ^ |
      | --==< °_° >==-- °---.----------------: X AGAINST | /e\ There is no |
      | web: ymorin.free.fr | SETI@home 3808 | / \ HTML MAIL | """ conspiracy. |
      °---------------------°----------------°------------------°--------------------°
    • Brian Wood
      ... Good point. What you say is absolutely correct for drives being used with their native (usually ATA) interface (although we are starting to see some 7200
      Message 2 of 6 , Jul 2 6:50 AM
      • 0 Attachment
        On Jul 2, 2006, at 3:28 AM, Attila Csipa wrote:

        > On Sunday 02 July 2006 05:11, Brian Wood wrote:
        >> Is there a particular USB/IDE chipset(s) that gives the best
        >> performance?
        >
        > What nobody seems to mention is the importance of the type of disks
        > they are
        > using. 2.5" disks are not 'just the same but smaller' than 3.5"
        > disks. If you
        > want to transfer large files, you will get noticeably lower speeds
        > since
        > built-in disk cache won't help you and the lower spin rate of 2.5"
        > disks
        > really comes out in those cases (all this assuming that the USB2IDE
        > chipset
        > can actually sustain that throughput). They are generally designed for
        > notebooks (small size, lower power, more resistance to shock and
        > heat, not
        > top performance).

        Good point. What you say is absolutely correct for drives being used
        with their native (usually ATA) interface (although we are starting
        to see some 7200 RPM 2.5" drives. I've also seen some 2GB and 4GB all
        solid-state 2.5" drive replacements).

        I guess I figured that the performance loss in going to the USB
        interface was so great that it really didn't matter how fast the
        drive was to start with.

        Now I'm not so sure. I guess I'll just have to try using different
        drives and see if there is a difference.
      • Brian Wood
        ... These are SD files recorded by a MythTV system using PVR capture cards. They are about 2.2GB per hour (more or less full D1). The network is 100-base-T
        Message 3 of 6 , Jul 2 8:00 AM
        • 0 Attachment
          On Jul 2, 2006, at 6:25 AM, Yann E. MORIN wrote:

          > Brian,
          > All,
          >
          > On Sunday 02 July 2006 051, Brian Wood wrote:
          >> The slug will serve MPEG-2 video files, mostly over 1GB in size.
          >
          > How many at the same time? Which bitrate: 4Mibps (SDTV) or >8Mibps
          > (HDTV)?
          > What's between your slug and the player: WiFi, cat-5, PLT? One or
          > more hub
          > or switch? (see at bottom of mail).

          These are SD files recorded by a MythTV system using PVR capture
          cards. They are about 2.2GB per hour (more or less full D1). The
          network is 100-base-T hard-wired (CAT-5E) with one switch, not
          including the switch in the router.


          >
          >> I should use NFS and not Samba for maximum speed (not serving to
          >> Windows).
          >
          > To serve video (or music as well), why don't you use streaming?
          > That would have the benefit of adding no file system overhead on
          > the network, thus maximizing the bandwidth for the actual data
          > (provided your storage medium can sustain the throughput).

          I should have said that my purpose is not to "play" the files, but to
          give multiple machines access to the files in order edit them and
          create DVD images to burn.

          As such I don't think streaming would work, certainly not without
          major changes to the editing software. Throughput is not an issue the
          way it would be if playing, as there is no "real time" to keep up
          with, but obviously the faster the server the less time spent waiting
          while editing.


          >
          >> I should use a Big-Endian OS (not sure how much difference this might
          >> make).
          >
          >> From my experiments, that's not noticeable by timing with hardware,
          > and even less noticeable for a human being. That said, if you need
          > horsepower at the same time you transfer data, then you may loose
          > a few ticks, but that's nothing compared to any context-switch.

          There had been a few posts here recently that seemed to indicate that
          a TCP/IP-intensive machine would be more efficient if running BE, but
          I suspected the difference would be minor.

          But I'm tending to run the BE OpenSlug in any case, certainly I don't
          need the vast package library of the full Debian release just to run
          an NFS server.

          Unless, of course, somebody could convince me that OpenSlug is not
          the best answer here.


          >
          >> I should De-underclock the slug (seems obvious).
          >
          > That should help, but again, serving video via streaming is mostly
          > copy-from-disk-to-memory-to-network, and your limiting factors will
          > most
          > probably be (in path-order):
          > - disk-throughtput,
          > - IDE2USB adapter,
          > - USB throughput (you should be fine here!),
          > - memory latency,
          > - network throughput,
          > rather than CPU performance



          >
          >> Should I use a hard drive or a flash device for the OS ? (I'm
          >> assuming NFS would not give optimum speed).
          >
          > I don't get it right. Were your planing on an NFS-root? That
          > definitely
          > is a bad idea to maximise your bandwidth usage!
          > Anyway a hard drive for the rootfs would be better, you could even add
          > some swap to help in those moments where you'd need it.

          No NFS root, that would definitely not give me optimum speed. Just
          deciding between a hard drive and a flash device for root. I've never
          tried a flash stick, always used drives with nice large swap partitions.

          I've seen some "Fast Flash" NAND devices that are drop-in
          replacements for 2.5" hard drives. They claim 17.7MB/sec. read/write
          burst capability and 12MB sustained rates. Expensive, but look
          awfully nice for a root filesystem, and plenty of room for swap.
          Built-in "dynamic wear leveling", which I take to mean spreading out
          the load so you don't wear out specific locations quickly.


          >
          >> What filesystem should I use ?
          >
          > To store files, any _decent_ FS should do. ext2/3 or even reiserfs
          > should be
          > fine. Avoid FAT & co. and NTFS. Avoid any compressed FS (cramfs,
          > squashfs,
          > JFFS2...) because those _are_ CPU-bound.

          I think the first 3 you mentioned are the only simple choices for a
          slug in any case. I know the Myth people go on endlessly about what
          filesystem is best, usually with very conflicting results.


          Anyway, much thanks for your input, it is appreciated.
        • Brian Wood
          Apologies for not having found this earlier: http://www.nslu2-linux.org/wiki/Info/Performance Especially: Some tests done with the copy of a 200MB file between
          Message 4 of 6 , Jul 2 3:52 PM
          • 0 Attachment
            Apologies for not having found this earlier:

            http://www.nslu2-linux.org/wiki/Info/Performance

            Especially:

            Some tests done with the copy of a 200MB file between a NSLU2 with
            2.12-beta firmware and a Linux 2.8 (ubuntu), the test was performed
            with the filesystem "mounted" and then a simple read/write of the
            200MB via a python script.

            read write
            nfs: 5.7MB/s 2.6MB/s
            cifs: 3.5MB/s 1.9MB/s
            samba: 2.2MB/s 1.85MB/s

            nfs-server Version: 2.2beta47-2

            --titoo

            Looks like we're all doing a bit better than that, but that may also
            be with a 133Mhz. slug.
          Your message has been successfully submitted and would be delivered to recipients shortly.