I'm running a server which is usually stable, but every
once in a while it hangs.
There can be many reasons for that. One thing I'm curious about - try
looking at the reallocated sector count, and current pending sector count
for your drives with smartctl.