• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

Gentoo SSD

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.
I got the 30gig version a few days ago...looks just as sexy though ;) I installed Windows 7 on it, but I would be interested in hearing if you have any issues with Gentoo.
 
Have not had any time to switch over to the new drive :( been working on my neural networks project for class. Then once that is done I have a multi-threaded auction server/client to write :(. Then after that I have to implement some kind of flow control in a network simulator :(. Then to top it all off I have a reinforcement learning project to do as well. All due before Monday. doh! Maybe if I get a bit of time this weekend I will try it out.

I just got a copy of Win7 so now I wish I would have bought the 120gig version so I could run both. Just an excuse to buy the next round of drives that come out.
 
I have finally put this stupid drive into my laptop and I have got everything up and running!! Yahoo...

1st updated the firmware on the drive to 1275. Newest as far as I know.
Code:
# lsscsi 
[0:0:0:0]    disk    ATA      OCZ-VERTEX 1275  00.P  /dev/sda

Next I decided to give Funtoo a try over the classic Gentoo. Funtoo seems to be a bit more liberal with it's program versions. I am running Funtoo-Unstable, sounds scarier than it is. Only difference I see over the stable version is this fun statement in make.conf

Code:
ACCEPT_KEYWORDS="~amd64"
:attn:

I originally had a nice write up on everything I did to get my system to where it is now but then I took out my old hdd and put this one in, leaving my message saved on my other drive. I am far to lazy to go back in get it, so I will just have to try and remember what I did.

One thing I love about linux is you can install it while you are running it. I just plugged my Vertex into the esata port and installed Linux while I was booted off my original laptop hdd. You most certainly cannot surf the web, watch movies, or anything else when your installing windows. :D.

Gentoo/Funtoo install is pretty cut and dry you basically follow the Gentoo-Handbook and magically everything works. Well when I got to the part where I actually need to setup my file systems I forgot that I was running an older kernel and it had no idea what BtrFS was so I had to grab a 2.6.29 kernel and install it just so I could build a btrfs partition. That was probably a 30min delay but easy fix. Next stop was aligning my partitions.

I used this to build my partitions (i think this is off the top of my head):
Code:
cfdisk -s 56 /dev/sda

Hopefully that aligns everything nicely. I build a 128meg boot partitions and a 40gig root partition. I am leaving the rest blank because I may want to install windows on the rest. Just incase. My fully loaded system now is 4.5 gigs and thats with all the files in /usr/portage/dist. Probably ~2gigs by now. I should really offload that somewhere. For the future I guess.

After the hdd setup everything else was pretty smooth. I always mess up the time setup and my time is ALWAYS wrong but I have learned to live with it. I think it is impossible to get that step right. Next up was choosing a syslogger. I really debated about this one and ended up installing syslogger-ng and mount an SD card to my /var/log folder. So far it has cut down a lot of writes.

Now I arrive at installing grub. Over the years I have become a grub master. I never get grub installed right the first try ever so I am always in the grub command line fixing my mistakes. This time it was different it was actually giving me errors when I was trying to install it. It was throwing some very strange errors that even google didn't know about. Finally after about two hours I decided to try it in a different computer. I booted afew live cds which of course didnt have btrfs support!! Finally I found one and I proceeded to install grub and it worked perfectly fine first try. It was one of those WTF moments, why did that just work. I eventually found out why it wasn't installing before, it was because I had the drive on an eSata port which the bios didn't probe at boot so grub didn't know anything about the drive. When I put it in the other computer it was recognized at boot so grub knew what it was.

Well after grub I popped the drive into my laptop and away I went.
_mg_7590.jpg

I booted up and totally forgot about using tmpfs. So I quickly changed my fstab:
Code:
/dev/sda1		/boot		ext2		noauto,noatime	1 2
/dev/sda2		/		btrfs		noatime,ssd		0 1
/dev/mmcblk0p1		none		swap		sw		0 0
/dev/mmcblk0p3		/home/chris	ext2		noatime		0 0
/dev/mmcblk0p2          /var/log     ext2            noatime         0 0

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

I put /tmp and /var/tmp both into ram. This actually had a the very nice side-effect of including /var/tmp/portage. So I found later that all my emerging was done in ram as well so the only time I actually wrote to the drive was at the very end of the emerge when it copied all the files to their final resting place. I also setup an old 4gig SD card as a small swap partition, small home folder, and small /var/log folder.

I setup the swap on the SD card for emergency memory which I actually needed a few times after a few long emerges. I actually cannot emerge openoffice without it because it needs to extract about 5gigs worth of files. I will probably keep /var/log on the SD card just so I can keep my laptop portable and while on the road I won't have to worry about connecting to some remote NFS server just to write some stupid log files. Using the SD card for my home folder is something I really need to change because alot of programs use it to load from. Some of my programs take a bit longer to load because of it, mainly firefox and eclipse.

For my final solution to my home problem I think I might setup a NFS share and use that while I am at home and keep the SD card synced up and use it on the road. It is a decent solution still not optimal. I was also thinking about getting an express-card SATA controller and adding an external drive to my laptop. This kinda goes against my desire to save power but I do also love speed!! :burn:

I guess at this point everything is up and running not 100% but close. I very rarely see any writes to my ssd. Unlike my old laptop hdd where it was getting pinged all the time. It may have something to do with btrfs. There is just activity on my vertex ever (kinda scary at times). Probably because most everything is running in ram. I have run out of memory twice and I had to delete my /tmp files to clear it up, but I was emerging and doing alot of other stuff I don't usually do day-to-day. So it is acceptable and since I dropped in that SD card I haven't had anymore OUT OF MEMORY errors. Gotten very close but I saved it.

At the moment the system is very sluggish. I don't think it has anything to do with the SSD mainly a graphics problem. I think I have fallen victim to a kernel bug which kills nvidia-drivers performance. It requires a kernel upgrade to fix it and I fell like I have configured far to many kernels for one week. It isn't bad but firefox scrolling defiantly takes a hit. GLXgears is around 150fps /w direct-rendering enabled, not really a benchmark but it is much lower than what you would expect.

I am noticing a huge amount of CPU usage not sure what exactly is causing it but both my processors are averaging around 10% all the time even idle. Top isn't being very helpful either, I have a feeling it is X chewing it up because my graphics suck.

Hopefully sometime soon I can get some hdd benchmarks done. Here are some quick hdparms. sda is vertex, sdb is 500gig seagate 5400rpm laptop hdd, mmc is the SD card.
Code:
# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   2656 MB in  2.00 seconds = 1328.49 MB/sec
 Timing buffered disk reads:  384 MB in  3.00 seconds = 127.82 MB/sec
# hdparm -tT /dev/sdb

/dev/sdb:
 Timing cached reads:   1902 MB in  2.00 seconds = 951.24 MB/sec
 Timing buffered disk reads:  212 MB in  3.00 seconds =  70.62 MB/sec
# hdparm -tT /dev/mmcblk0p2 

/dev/mmcblk0p2:
 Timing cached reads:   2360 MB in  2.00 seconds = 1180.03 MB/sec
 Timing buffered disk reads:   34 MB in  3.19 seconds =  10.67 MB/sec

Maybe tomorrow I will try some network transfers off the drive to see how blazing it is on my sexy network. I got a new switch and some nice intel pcie server cards. I have been dieing to try it out.

The final setup:
_mg_7584.jpg

I cropped the pictures down (i think) so it might be a bit hard to see, but you can try and play spot the items worth more than $150, $250, $500, $1000 and $2000. There is certainly alot of money sitting in this picture. :santa:
 
Make sure you change your io scheduler to noop (or deadline maybe). This is the single most important tweak for SSD based systems.
 
Yes, it is still necessary. All SSD's, since they do not have moving parts, do not do well with the cfq and anticipatory schedulers. noop is the best probably but deadline is ok too. The others are based on the idea of a physical platter and substantial seek times, which are negligible for SSDs. The only time this will change is if the default is changed - the technology by its very nature will never work well with cfq or anticipatory.

As for the other tweaks:

1) I have no experience on the write-through, write-back cache difference. It might be worth looking into.

2) noatime is almost always a good idea. All those little writes, especially on MLC drives, will really bog things down.

3) ext2... not so sure. I do not really agree that the drives are less prone to errors and that journalling is unnecessary. It is possible I am just missing something though. I use journalling, although I do agree ext2 would improve performance. Ext2 always improves performance actually... it just reduces reliability. I am not sure how much it matters. Traditional wisdom is that journalling has a negligible influence on performance except when the cpu is slow (I used ext2 on a P1 a few years ago), but SSDs may show a more pronounced effect than magnetic drives.
 
Yes, it is still necessary. All SSD's, since they do not have moving parts, do not do well with the cfq and anticipatory schedulers. noop is the best probably but deadline is ok too. The others are based on the idea of a physical platter and substantial seek times, which are negligible for SSDs. The only time this will change is if the default is changed - the technology by its very nature will never work well with cfq or anticipatory.

As for the other tweaks:

1) I have no experience on the write-through, write-back cache difference. It might be worth looking into.

2) noatime is almost always a good idea. All those little writes, especially on MLC drives, will really bog things down.

3) ext2... not so sure. I do not really agree that the drives are less prone to errors and that journalling is unnecessary. It is possible I am just missing something though. I use journalling, although I do agree ext2 would improve performance. Ext2 always improves performance actually... it just reduces reliability. I am not sure how much it matters. Traditional wisdom is that journalling has a negligible influence on performance except when the cpu is slow (I used ext2 on a P1 a few years ago), but SSDs may show a more pronounced effect than magnetic drives.

Right on! :rock:

My bios doesn't have an option to configure write through or write back - I'm updating to the latest T400 BIOS version from November, but don't expect this will enable the option.

I've switched to the noop scheduler, I'm using noatime, and I stuck with EXT4 which seems to be working great.

Read:
[mrb78s@l3adf3h ~]$ sudo hdparm -t --direct /dev/sda
Password:

/dev/sda:
Timing O_DIRECT disk reads: 600 MB in 3.01 seconds = 199.38 MB/sec

Write:
[mrb78s@l3adf3h ~]$ sync;time bash -c "(dd if=/dev/zero of=bf bs=8k count=500000; sync)"
^C182721+0 records in
182721+0 records out
1496850432 bytes (1.5 GB) copied, 9.20967 s, 163 MB/s

real 0m9.584s
user 0m0.060s
sys 0m2.113s
 
Oh, and one more thing to keep in mind: If you use ext2, and the system shutdown isn't clean, it will have to do a full fsck on the ext2 partitions. This is very slow. With a journalled filesystem, integrity can be quickly verified making the boot process much faster.
 
Back