Saturday, 19 March 2011

SSD update for Asus EeePC 901

For a while I have struggled with the small but slow SSD's in the trusty old EeePC 901. The machine was born in 2009 with 4GB of "fast" and 16GB of very slow SSD disks. The 4GB was used for Ubuntu Netbook edition and 16GB one for the /home and apt's temporary -directories.
A some time ago I bought a cheap ($93 with p&p on eBay), new and shiny KingSpec KSD-SMP.1-032MJ, a 32GB Mini-Pcie SATA SSD. Installation was really easy; two screws off, lid open, two more screws out, replace SSD and reverse.
New drive, well packaged to survive posting across the globe. Check out the funny sticker about warranty;)
Old Phison 16GB drive before its retirement. Under the grey plastic cap resides previous modification, a 2GB RAM upgrade.
New 32GB drive. It could also be modified to fit into the shorter, 50mm card slot. Besides making irreversible cut to PCB, that would also have required opening the EeePC 901 completely. Perhaps some day, if the current disk fills up I will add both the 32 and 16GB disks at once.

Most troublesome was installation of new Ubuntu Natty, which is still in alpha-3 stage. The installer froze always, likely due to finding the "unknown" formatted partitions from 4GB disk, which are required for Asus' Speedbooster, which speeds up the BIOS' boot sequence. Fortunately the well known bug was fixed after few days, so I could proceed with the installation. After restoring the home directory from backups, I had a whole system in a single 32 GB disk. No more trouble with insufficient disk space on system upgrades:-)
After all, the system seems to start now considerably faster, there are less waits on disk when surfing the web, etc.
Some simple, non scientific sequential IO benchmarks on top of ext4 file system for the old and new disks:

dmesg:[    1.537966] scsi 1:0:1:0: Direct-Access     ATA      ASUS-PHISON SSD  TST2 PQ: 0 ANSI: 5
[    1.538571] sd 1:0:1:0: Attached scsi generic sg1 type 0
[    1.539758] sd 1:0:1:0: [sdb] 31522176 512-byte logical blocks: (16.1 GB/15.0 GiB)
[    1.540517] sd 1:0:1:0: [sdb] Write Protect is off
[    1.540529]  sda: sda1 < sda5 > sda3 sda4
[    1.540549] sd 1:0:1:0: [sdb] Mode Sense: 00 3a 00 00
[    1.540803] sd 1:0:1:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

write:
tero@wendy:/mnt/data/home/tero$ dd if=/dev/zero of=test.zero bs=512 count=5M
5242880+0 records in
5242880+0 records out
2684354560 bytes (2.7 GB) copied, 254.203 s, 10.6 MB/s
tero@wendy:/mnt/data/home/tero$ dd if=/dev/zero of=test.zero bs=4096 count=400K
409600+0 records in
409600+0 records out
1677721600 bytes (1.7 GB) copied, 169.388 s, 9.9 MB/s
tero@wendy:/mnt/data/home/tero$ dd if=/dev/zero of=test.zero bs=16KB count=100K
102400+0 records in
102400+0 records out
1638400000 bytes (1.6 GB) copied, 156.973 s, 10.4 MB/s
tero@wendy:/mnt/data/home/tero$ dd if=/dev/zero of=test.zero bs=64KB count=50K
51200+0 records in
51200+0 records out
3276800000 bytes (3.3 GB) copied, 325.498 s, 10.1 MB/s
tero@wendy:/mnt/data/home/tero$ dd if=/dev/zero of=test.zero bs=1MB count=5000
5000+0 records in
5000+0 records out
5000000000 bytes (5.0 GB) copied, 607.437 s, 8.2 MB/s

read:
tero@wendy:/mnt/data/home/tero$ dd if=test.zero of=/dev/zero bs=512
11160136+0 records in
11160136+0 records out
5713989632 bytes (5.7 GB) copied, 155.788 s, 36.7 MB/s
tero@wendy:/mnt/data/home/tero$ dd if=test.zero of=/dev/zero bs=4096
1395017+0 records in
1395017+0 records out
5713989632 bytes (5.7 GB) copied, 155.857 s, 36.7 MB/s
tero@wendy:/mnt/data/home/tero$ dd if=test.zero of=/dev/zero bs=16K
348754+1 records in
348754+1 records out
5713989632 bytes (5.7 GB) copied, 157.91 s, 36.2 MB/s
tero@wendy:/mnt/data/home/tero$ dd if=test.zero of=/dev/zero bs=64KB
89281+1 records in
89281+1 records out
5713989632 bytes (5.7 GB) copied, 156.168 s, 36.6 MB/s
tero@wendy:/mnt/data/home/tero$ dd if=test.zero of=/dev/zero bs=1MB
5713+1 records in
5713+1 records out
5713989632 bytes (5.7 GB) copied, 156.46 s, 36.5 MB/s




some background for /dev/zero's throughput, which should not affect figures too much

tero@wendy:/mnt/data/home/tero$ dd if=/dev/zero of=/dev/zero bs=512 count=10M
10485760+0 records in
10485760+0 records out
5368709120 bytes (5.4 GB) copied, 19.0382 s, 282 MB/s
tero@wendy:/mnt/data/home/tero$ dd if=/dev/zero of=/dev/zero bs=1M count=10000
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 7.32884 s, 1.4 GB/s


And the new disk:
dmesg:
[    1.072397] ata1.01: ATA-7: KingSpec KSD-SMP.1-032MJ, 100415, max UDMA/133
[    1.072414] ata1.01: 62947328 sectors, multi 1: LBA48
[    1.080431] ata1.01: configured for UDMA/133
[    1.080802] scsi 0:0:1:0: Direct-Access     ATA      KingSpec KSD-SMP 1004 PQ: 0 ANSI: 5
[    1.081177] sd 0:0:1:0: [sda] 62947328 512-byte logical blocks: (32.2 GB/30.0 GiB)
[    1.081303] sd 0:0:1:0: Attached scsi generic sg0 type 0
[    1.081424] sd 0:0:1:0: [sda] Write Protect is off
[    1.081435] sd 0:0:1:0: [sda] Mode Sense: 00 3a 00 00
[    1.081543] sd 0:0:1:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

tero@wendy:~$ uname -a
Linux wendy 2.6.38-7-generic #36-Ubuntu SMP Fri Mar 18 22:05:25 UTC 2011 i686 i686 i386 GNU/Linux

tero@wendy:~$ mount
/dev/sda1 on / type ext4 (rw,noatime,errors=remount-ro,commit=0)

tero@wendy:~$ dd if=/dev/zero of=test.zero bs=512 count=5M
5242880+0 records in
5242880+0 records out
2684354560 bytes (2.7 GB) copied, 92.2996 s, 29.1 MB/s
tero@wendy:~$ dd if=/dev/zero of=test.zero bs=4096 count=500K
512000+0 records in
512000+0 records out
2097152000 bytes (2.1 GB) copied, 40.5247 s, 51.7 MB/s
tero@wendy:~$ dd if=/dev/zero of=test.zero bs=16KB count=100K
102400+0 records in
102400+0 records out
1638400000 bytes (1.6 GB) copied, 31.5863 s, 51.9 MB/s
tero@wendy:~$ dd if=/dev/zero of=test.zero bs=1MB count=3000
3000+0 records in
3000+0 records out
3000000000 bytes (3.0 GB) copied, 67.5938 s, 44.4 MB/s

tero@wendy:~$ dd if=test.zero of=/dev/zero bs=512
5859375+0 records in
5859375+0 records out
3000000000 bytes (3.0 GB) copied, 36.39 s, 82.4 MB/s
tero@wendy:~$ dd if=test.zero of=/dev/zero bs=1024
2929687+1 records in
2929687+1 records out
3000000000 bytes (3.0 GB) copied, 35.6681 s, 84.1 MB/s
tero@wendy:~$ dd if=test.zero of=/dev/zero bs=4096
732421+1 records in
732421+1 records out
3000000000 bytes (3.0 GB) copied, 35.9203 s, 83.5 MB/s
tero@wendy:~$ dd if=test.zero of=/dev/zero bs=16KB
187500+0 records in
187500+0 records out
3000000000 bytes (3.0 GB) copied, 36.1911 s, 82.9 MB/s
tero@wendy:~$ dd if=test.zero of=/dev/zero bs=64KB
46875+0 records in
46875+0 records out
3000000000 bytes (3.0 GB) copied, 36.289 s, 82.7 MB/s
tero@wendy:~$ dd if=test.zero of=/dev/zero bs=1MB
3000+0 records in
3000+0 records out
3000000000 bytes (3.0 GB) copied, 36.417 s, 82.4 MB/s

tero@wendy:~$ dd if=/dev/zero of=/dev/zero bs=512 count=10M
10485760+0 records in
10485760+0 records out
5368709120 bytes (5.4 GB) copied, 23.139 s, 232 MB/s
tero@wendy:~$ dd if=/dev/zero of=/dev/zero bs=1MB count=10000
10000+0 records in
10000+0 records out
10000000000 bytes (10 GB) copied, 6.95549 s, 1.4 GB/s



No comments:

Post a Comment