You need to find out what is being done on the box.
1.) You can start with taking a
thread dump, this will tell you what is being executed within the JVM. Jconsole can be used to take thread dumps. You need to see if any of the threads are doing any processing.
2.) Need to look at GC activity. What is your heap size. This can be done by enabling GC logs. Interestingly the heap size is constant during peak & off peak.
3.) Do you have any off peak batch jobs, etc.
4.) Any scheduled maintenance like backups that are done on the box during off peak hours?