First, check the SQL server, make sure that the database transaction log is truncated frequently
Next, check Eventlog, SiteLog and ScheduleHistory tables of your DotNetNuke database. They should not contain more than a few thousand entries, otherwise you should truncate it.
Last, optimize host settings: set Performance Setting to "Intensice Caching", Compression to GZip, Whitespace disabled!
Finally, on all modules, which do not contain user (or role) specific content or frequently changing content, such as HTML, Announcements, Links, set module caching to 1200 (seconds = 20 minutes).