Mono on linux lacks lots of things, even on a decent machine, without proper knowledge and time, you'll encounter lots of difficulty.
Dinamyc save strategy will always fail, threaded (dual) save strategy will fail sometime, you have to use the normal strategy one, fortunately this is the default till now....Parallel serialization simply won't work EVER.
Recent changes from mark sturgill to Runuo deposited elsewhere won't work well with Mono classes, especially the interlocking mechanism combined with the parallel.foreach calls, sum this with the ipooledenumerator<T> changes made in map.cs, mobile.cs, item.cs and elsewhere...that eats almost all the cpu in mono (a quad-core of mine just goes 100% crazy - tested on latest mono or official 3.x available on site), while it does very well under .net framework with windows.
Yes, you can use custom classes and native one's for this, but this just needs lot of time, linux can be fun if you aren't doing something seriously, but when you get serious you have to think about it, especially on a system with another cpu/mechs...how well do you know the system and the hardware?
I'm not trying to put someone down, but you have to evaluate this, doing something just for fun is ok, doing it for a production shard can be the ruin of it.
Anyway, beside my beginning, in the recent git releases they should have fixed some problems, but the rest I described still remains.