I've been pondering over support for Solid State Drives in Linux recently. Eventually I'm going to have a system with LMDE running on a SSD, and I feel I have some important questions dealing with it.

I think advice targeted towards the newest Samsung SSDs would be the most useful since from what I've heard they are very reliable and fast. Take for instance this one (which I will likely be purchasing for my setup), although I still want these questions to apply to all SSDs.

1: I've heard that if the partitions aren't aligned at a certain interval (maybe 512k or 1024k?) performance dramatically decreases. Is it true for modern SSDs? Does this apply to setting up a LMDE installation? If so, how would one create this "alignment"?

2: For the Samsung SSD I mentioned in particular, does performance degrade once every part of the drive has been written to at least once? I've heard that writes are slower to parts of an SSD that aren't blank (and thus the need for TRIM support to make the areas of deleted files all zeroes). If so, is there a way to counter it?

3: What about the NILFS file system? Does it actually improve SSD write performance as well as I've heard? Take a look at this (starting at page 8 ). If so, how would one set up LMDE on this file system with an SSD? It seems like this could improve performance with an SSD a lot.

4: Any SSD "tweaking guides" that are very likely to / designed to work with LMDE? I'm not sure how compatible with LMDE the instructions from the results of just a Google search would be.

5: How about working with a system where LMDE is running off an SSD but there is another standard HDD installed? Would the SSD "tweaks" interfere with performance from the HDD?

6: Is a swap space partition on a SSD a bad idea?

I know, it's a lot of questions, but I think answers for at least some of them would be really helpful for anybody (including me! ) who is trying to set up LMDE on a system with a SSD.

Last edited by Mindstormscreator on Mon Jan 02, 2012 6:20 pm, edited 8 times in total.

Good questions. I would also like to hear people's experiences with this, particularly partition alignment. I am runnning LMDE on 3 SSD's on 3 different machines. When Googling around for optimal setup there is a ton of stuff, much of which is contradictory. Not easy to sort the wheat from the chaff.

Have not tried NILFS, but BTRFS was a no go for me. It displayed an error message (forgotten) at boot but then booted and ran very slowly. Could have been partition alignment related as I pay no special attention to this.

I basically run with EXT4 with discard and noatime options in fstab. The newest setup also has /tmp mounted in RAM to reduce IO ops to SSD.

No idea if this is optimal, but I have had no stability issues and they are super fast.

To get the alignment right you need to do two things [in GParted] :1) UNCHECK the box that says "align to cylinders"2) when you size the target partition, you want to leave 1MB of free space *before* the new partition. This results in an offset of exactly 2^20 bytes or 2048 512B disk sectors, which is excellent alignment for virtually all applications, SSD types, RAID array stripe sizes, etc.

I'm guessing for multiple partitions you just align their starts and ends at a power of 2 bytes greater than 1024? Therefore it would be most space-efficient to make the smaller partitions closer to the beginning of the drive?

On question 6 for SSD I think I would try zram for your swapfile , it compresses your ram and uses it as a swapfile instead if the ssd. RAM is better made for multiple reading in writing than SSDs , from what I've been hearing.

the zram mod should already be in your kernel if your using a newer kernel. I use it without a ssd, for it helps WINE work a little better with some programs, also been known to help load some larger programs faster.

With 3GBs of ram the only thing I ever used the sawpfile for now is hibernating.