Looks like your server is overloading, since for a server to be running at optimal efficiency is @ 20 tps. Try allocating more memory to java and/or starting the server with more memory.
Your cpu isn't fast enough, before I got my new dedicated machine we had an Athlon II x2 2.8GHz that would start going under 20 tps at around 32 people at 2.3GHz and the same kind of chip, you will have less performance than I did
You don't have to believe in it, just consider it a very possible reason for your low TPS with many players online.
ok, then don't believe me, I'm fine with that. Just thought you wouldn't mind hearing from someone that had a server on similar hardware I had 12GB or ram, and the server in a RAM Drive as to stop the issue from being I/O related
You are looking at the high end, either top end Xeon chips (only from the newest gen) or using commodity hardware and OC'ing it (ie core i5-2500k) unless you have something to add, we have already given you a few ideas as to what the problem i, so please don't just bump your post EDIT by Moderator: merged posts, please use the edit button instead of double posting.
Your HDD could also be too slow, either a ram drive or an SSD would solve that. But that's it, it's either your CPU or your HDD, and HDD is rarely the cause of low TPS unless you have other things using that drive constantly.