No particular suggestions for improvement, but shouldn't the first step be to try and identify the specific bottlenecks, then once the bottlenecks are known, address them?
Linux 'sar' can be useful, as can 'top', if run while the system is exhibiting poor performance - might point the finger at IO, memory or CPU. Or they might identify rogue processes that are hogging CPU, or leaking memory. But I'm not much of an expert nowadays, never really was, so read the man pages to find out what sar and top can tell you.
Hopefully our Linux gurus may be able to add to that advice, or even dismiss it.
