Tablets

Increase the read/write speed of the SD card on your rooted Android tablet

Jack Wallen show you how to boost the performance of your rooted Android tablet by increasing the read/write speed of the SD card.

By default, most Android SD card write speeds are set to a paltry 128KB. This can cause slowdowns when reading or writing to the SD card on your tablet. With the hardware powering these tablets, it only makes sense to up this value to gain some speed on reading and writing to the SD card.

The idea behind this is the modification of the amount of available read-ahead cache used for reading SD card data. In order to modify this amount, the file /sys/devices/virtual/bdi/179:0/read_ahead_kb must be opened (with write permission) in an editor. The problem with this is that write permissions is a challenge and, in some cases, the SD card itself must be remounted in read/write mode. On top of that, the device must be rooted.

Unfortunately, there's no way around the necessity of having the device rooted, but there are applications that circumvent the need to open that file in an editor (which is a challenge, in many cases). Let's take a look at how to manage this task without having to manually edit that file.

What you'll need

  • Rooted Android tablet
  • SD-Booster app to test speed
  • SD Tools app to make changes to read-ahead memory

I've experimented with a Toshiba Thrive and a Galaxy Tab and discovered that not all read-ahead amounts are created equal. In fact, both tablets excelled at different settings, so the speed test app is required to determine which setting is the best.

Download and install each of those tools from the Android Market, and get ready to make your tablet rock!

Speed Test

Before you open up SD-Booster, first open up SD Tools and do an initial speed test. You'll want to have a baseline, so you know when you've found that magic number. To do the speed test, follow these steps:

  1. Open up SD Tools
  2. Tap the Start speed tests button
  3. Let the testing complete

Once the testing has completed, you'll see the results of the tests with the default configuration (see Figure A). Figure A

As you can see, the speed test clearly differentiates between reading and writing speeds.

At the end of the speed test, you'll be asked to submit your results. This, of course, is optional.

The Thrive I'm working with is a rooted device, so the initial results might seem a bit higher than a non-rooted device. Even so, let's see if we can eek out a bit more speed.

Changing the read-ahead memory

Now, open up the SD-Boost application. When this is done, you'll see your default setting in the SD-Booster window (see Figure B). Figure B

As you can see, I've already changed the settings for this tablet.

Erase the currently set number, and enter a new number. You can start by maxing it out at 4096. When you do this, you'll need to give the application permission to have root access to the file. Okay this permission, and continue on. Once the value has been set, close the app, go back to the SD Tools app, and run another speed test.

If your tablet is like the Thrive, the maxed out number will not give you the best results. Continue testing different values until you find the value that gives the best results for your set up. For the Thrive, the best setting was 1028, whereas for the Galaxy, the best setting was 2048. As you can see, in Figure C, the speed did increase for both read and write. Figure C

Although the write speeds didn't increase significantly, the read speeds did.

Once you've found the best setting, go back to the SD-Booster app and make sure to check the box for Set on Boot, otherwise the setting will go back to the default every time the tablet is rebooted.

There you have it -- a quick and easy way to eek out a bit more speed from your rooted Android tablet. The Android platform is both powerful and flexible, allowing for creative ways to boost performance such as this.

About

Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website getjackd.net.

3 comments
Spitfire_Sysop
Spitfire_Sysop

The benchmark results I got may be misleading. When the data you are trying to read is not sequential the readahead is wasted. This can slow you down quite a bit in day to day useage. The readahead issue has been addressed by the Linux community and Linus himself. I got this suggestion from a conversation about readahead and small devices: disk size readahead size (scale by 4) (scale by 2) 2M 4k 8M 8k 32M 16k 128M 32k 512M 64k 2G 128k 8G 256k 32G 512k 128G 1024k Read the original article for yourself: http://thread.gmane.org/gmane.linux.kernel.mm/43753 So my device can hold a maximum SD card size of 32GB and I would set my readahead to 512k

Spitfire_Sysop
Spitfire_Sysop

I just tried SD-Tools and got a "failed to read buffer" error. Then I noticed in the release notes that the author states that his program doesn't work with some Motorola devices and further more he says "Don't download". That sounds to me like the dev is not interested in fixing this issue. If you have a Motorola device you can use SD Card Tester: market://details/?id=air.SDCardTester Before Optimization: (128kb was the default) Write: 3.21 MB/s Read: 9.7 MB/s Cache set to 1024KB (1MB) Write: 7.64 MB/s Read: 12.05 MB/s Cache set to 2048KB (2MB) Write: 8.05 MB/s Read: 11.73 MB/s Cache set to 4096KB (4MB) Write: 9.69 MB/s Read: 30.64 MB/s Cache set to 8192KB (8MB) Write: 8.08 MB/s Read: 11.75 MB/s

Spitfire_Sysop
Spitfire_Sysop

My internal storage is much slower than my external card. With the cache set to 4MB I get: Read: 4.66 MB/s Write: 16.23 MB/s