1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Asus RT-N66U microSD transfer rates

Discussion in 'Tomato Firmware' started by gawd0wns, Aug 4, 2014.

  1. gawd0wns

    gawd0wns LI Guru Member

    Hello,

    Can someone please post their read/write transfer rates to and from the microsd card? I was thinking of picking up one of these routers....

    Thank you
     
  2. koitsu

    koitsu Network Guru Member

    I wondered about this -- why my RT-N66U reported having an SD slot yet there is none visible. Turns out you have to open the chassis (thus voiding the warranty) to install a microSD card. Screw that -- I'll stick to USB :p. If someone else has opened it up, great!
     
  3. gawd0wns

    gawd0wns LI Guru Member

    I'm ok with opening it up. My only question is whether it is worth the effort. If not, I am going to go with the RT-N18U.
     
    Last edited: Aug 5, 2014
  4. Siff

    Siff Serious Server Member

    Here are some numbers. Obviously the speed is hugely dependent on the SDHC card chosen, the client device and the performance of the Wi-Fi.

    Please note that these were influenced from some external factors and therefore should be taken with a big grain of salt, but they might give you an idea of the performance of the SDHC card.

    Environment:
    • Asus RT-N66U Running Shibby Tomato build 119 AIO
    • 32GB SD Card Class 10 (sorry, I don't have the manufacturer and the model info handy)
    • The card is formatted as EXT2
    • 1 GB File copied from Windows 7 laptop to and from the router
    • Wireless tests were performed over 2.4 GHz*
    Results:
    • Wireless 2.4 GHz - write: 19.60 Mbps
    • Wireless 2.4 GHz - read: 42.45 Mbps
    • Wired 1 Gbit - write: 68.84 Mbps
    • Wired 1 Gbit - read: 55.35 Mbps
    * Note: The Wireless speeds I measured are much worse mainly because of the congested 2.4 GHz frequency in my area. I achieved much, much better speeds (~115 Mbps) copying over 5GHz Wireless Ethernet bridge to a wired device. Unfortunately my laptop doesn't have 5 GHz Wireless adapter, so I'm not able to test this scenario.

    [Edit] I followed this thread to install the SDHC card.

    Hope this helps.
     
  5. leandroong

    leandroong Addicted to LI Member

    on my transcend 32GB microsdhc class 10 test, max read speed of 19MBps and write speed of 10MBps. It depends on brand, EVO brand higher read of 48MBps.
     
  6. koitsu

    koitsu Network Guru Member

    Can you guys who are doing this simply use GNU dd (Busybox dd does not report speed, sigh) to test the throughput to the card? You can test device speed for reads without any data loss, but for writes (if you already have an existing filesystem) you'd need to rely on the filesystem. Meaning, rephrased, using Entware, and assuming SD device is /dev/sdb (not sdb1! That's a partition!):

    Code:
    opkg install coreutils-dd
    /opt/bin/dd if=/dev/sdb of=/dev/null bs=64K count=2000
    /opt/bin/dd if=/dev/zero of=/wherever/dev/sdb1/is/mounted/filename bs=64K count=2000
    
    This will read 2000*65536 bytes (128MBytes) from the drive, and the latter will write 128MBytes to the file /wherever/dev/sdb1/is/mounted/filename.

    I would also suggest bypassing the Linux block/buffer cache and checking those results, because that can often skew things (although some devices might have kernel quirks to bypass that entirely, i.e. device is sync-only):

    Code:
    /opt/bin/dd if=/dev/sdb of=/dev/null bs=64k count=2000 iflag=direct
    /opt/bin/dd if=/dev/zero of=/wherever/dev/sdb1/is/mounted/filename bs=64k count=2000 oflag=direct
    
    And if you don't have a filesystem anywhere on the device, you can test actual writes to the device natively (this is best, but doing this if you have data on the card will zero it, so be warned!):

    Code:
    /opt/bin/dd if=/dev/zero of=/dev/sdb bs=64K count=2000
    /opt/bin/dd if=/dev/zero of=/dev/sdb bs=64K count=2000 oflag=direct
    
    Do not use /dev/urandom or /dev/random for a source (this will hit the CPU very very hard, given little entropy available on these routers). Use /dev/zero only.

    Note that the bs parameter matters greatly here. You will find craploads of docs online talking about using bs=1M on Linux -- do not do that here. USB flash drives, SD cards, etc. are all very different than classic hard disks and SSDs, and many of the underlying chips have significantly smaller caches.

    Using my USB flash drive as a test (only showing reads here), and showing my point:

    Code:
    root@gw:/tmp/home/root# /opt/bin/dd if=/dev/sda of=/dev/null bs=64K count=2000
    2000+0 records in
    2000+0 records out
    131072000 bytes (131 MB) copied, 13.8876 s, 9.4 MB/s
    
    root@gw:/tmp/home/root# /opt/bin/dd if=/dev/sda of=/dev/null bs=1M count=128
    128+0 records in
    128+0 records out
    134217728 bytes (134 MB) copied, 15.1517 s, 8.9 MB/s
    
    root@gw:/tmp/home/root# /opt/bin/dd if=/dev/sda of=/dev/null bs=64K count=2000 iflag=direct
    2000+0 records in
    2000+0 records out
    131072000 bytes (131 MB) copied, 15.8448 s, 8.3 MB/s
    
    root@gw:/tmp/home/root# /opt/bin/dd if=/dev/sda of=/dev/null bs=1M count=128 iflag=direct
    128+0 records in
    128+0 records out
    134217728 bytes (134 MB) copied, 14.8594 s, 9.0 MB/s
    
    Welcome to disk I/O benchmarking 101. It's too bad Entware doesn't have bonnie++. Oh well.
     
    Last edited: Aug 5, 2014
    Siff likes this.
  7. leandroong

    leandroong Addicted to LI Member

  8. Siff

    Siff Serious Server Member

    @koitsu: Great post! (as always :) )

    I'm not allowed to touch the router these days, but I'll see whether I'll have a chance this weekend to test the speed of the card as per your post.
     
    Last edited: Aug 6, 2014
  9. koitsu

    koitsu Network Guru Member

    Not relevant -- the link there points to Windows-based software, so all you'd be benchmarking is essentially "the drive" (you can accomplish the same on Linux using dd, but use GNU dd because Busybox dd doesn't show throughput). The OP wants to know what the performance of an SD card is in the microSD slot on the RT-N66U, which means he wants real-world numbers using a) the existing IC used to drive the SD card, and b) all of that under Tomato (Linux) itself. Naturally the numbers will vary per model of SD card (different classes perform better or worse, so if anyone does this, please disclose full details of every bit of hardware you have, including the vendor and model number and class of SD card you use!), but the testing must be done under Linux to get real-world numbers.

    Case in point: we know USB 2.0 on common PC workstations can perform up to ~35MBytes/second (with USB protocol overhead taken into consideration), but on many TomatoUSB-based routers (Broadcom mipsel anyway) the performance is often half that, because there is not a dedicated USB IC to offload things onto -- it's part of the SoC, and the USB portion of the SoC is not designed for good throughput. The SD card + IC that drives the SD interface therefore may have the same complications. So my point here is that the underlying SoC behaviour and performance that drives things like USB (and probably the SD interface as well!) matters greatly, which justifies the OP's request to have the testing done natively on TomatoUSB and not benchmarking the SD card on a different system (ex. desktop PC running Windows).

    Reading material:

    http://wiki.laptop.org/go/SDCard_Testing
    http://wiki.laptop.org/go/NAND_Testing
    http://www.addictivetips.com/windows-tips/usbflashspeed-measure-usb-drive-r-w-performance/ (note this is Windows, but it allows people to compare their devices to that of other people's devices -- but the actual core site seems to be down right now. I've used this myself on Windows and I will say that it's useful but I do occasionally see completely bogus numbers, like some entries in their DB showing drives getting 93482389342MBytes/second and so on, so take it with a grain of salt)

    All that said:

    The reason I mentioned bonnie++ because that's for *IX systems (Entware does not have a package for it, but one could be made with ease -- I should probably file a ticket for it) and it allows you to get real-world benchmark data from a filesystem (for actual device testing, use GNU dd as I mentioned above). So if folks want to test using ext2 vs. ext3 vs. jffs2 and all that, having bonnie++ would be incredibly useful for that. But don't forget about all the filesystem features that can impact performance as well (tune2fs stuff, including journalling enabling/disabling on ext3).
     
    Last edited: Aug 6, 2014
  10. er fudd

    er fudd Reformed Router Member

    Really? Worried about Warranties? thats the last thing on my mind.
     
  11. gawd0wns

    gawd0wns LI Guru Member

    Siff, leandroong, and koitsu, thanks very much for the info. I really like the feature, though the read/write performance is lower than what I expected. I will keep it on my shortlist for now, until I figure out if I want to go with an AC router or not (I'm not really sold on 5 GHz yet).
     

Share This Page