[Opensim-dev] Will an SSD drive make OS any faster?

Sean McNamara smcnam at gmail.com
Fri Sep 16 19:58:24 UTC 2011


Hi,

On Fri, 2011-09-16 at 14:46 -0400, David Kaplan wrote:
> I'm getting ready to build a box specifically to run bunch of HG OS 
> regions. The box will likely have no other purpose. It's not going to be 
> expensive... I'm basically going to pour my money into a nice quad core 
> CPU and RAM. But, I wanted to know if anyone here has any experience 
> running OS using a high speed drive such as Seagate's Cheetah or SSDs. 
> I'm really interested to hear if anyone has any experience with SSDs as 
> they seem to be the fastest in terms of retrieval and storage.

They are fastest, but they also don't handle frequent, repeated writes
very well. I mean it'll be fast, but you can wear the drive out much
quicker than you can wear out an HDD. The manufacturers have not yet
solved this problem to *my* satisfaction (your opinion may differ) --
the usable life of an SSD for database workloads is pretty poor. It's
much better for scenarios where you do a lot more reading than writing.
But you do almost as much writing as reading in opensim, where objects
are constantly being modified, etc.

What I think would speed up an opensim instance more than anything else
is having tons of RAM. This boosts your performance almost regardless of
which backend you use to persist opensim data. Even if your backend
likes to write to disk a lot, and calls fsync() a lot, reads will still
be insanely fast out of the operating system's page cache. But without a
lot of RAM, the page cache can't grow very big, so more likely than not
you end up getting page faults that have to be handled by the HDD/SSD.

IMHO you would be much better off with getting ~24GB of DDR3 RAM (or
more, if you are looking at a server chassis and motherboard) than
worrying about SSDs. Heck, if you get *a whole honking lot of RAM* ("a
lot" is defined by the number of expected users and object complexity on
your sims) you could run opensim with the persistence completely in
memory! You'd need something like a UPS solution for power outages, with
enough battery life to I/O your entire in-memory database to persistent
storage (disk) before the battery dies, but it would be WAY faster than
an SSD. 

In my experience, DDR3 RAM is only slightly more expensive than SSDs,
gigabyte for gigabyte. But the problem with SSDs is that they use flash
memory, which wears out after many repeated writes; and SSDs use the
traditional hard disk bus paths (e.g. SATA) which are much slower, and
much higher latency than your memory controller. If you're willing to
shell out boku bucks for an SSD, shell out slightly more and buy the
equivalent in cheap DDR3 RAM (unbuffered 1066 MHz is more than
sufficient). You'll be able to keep a large portion (or all) of your
sim's persistent data cached in RAM, which is still *way* faster than
even the fastest SSD.

As for the software mechanism that would enable you to run your entire
database in RAM, I'd say you should take a look at the various memory
filesystem projects out there. It depends on the OS you run, too, but in
general you'll have better support for this kind of thing on Linux. You
just need to set up *some* way to eventually get the written data back
to a persistent storage (disk), which could be anything from an
occasional cron job backup, or only persist to disk when shutting down
the system and hook up a UPS that triggers a graceful system shutdown
when you lose main power. You could also look into the "null db" and
persisting your data with OAR backups.

HTH,

Sean

> 
> My theory is that OS is read/write intensive. Would a regular 7200 RPM 
> drive create a bottleneck? If so, would and SSD drive help?
> 
> TYIA!
> 
> David Kaplan
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev






More information about the Opensim-dev mailing list