How to determine the root cause of a performance spike during a heavy load on DB2?
This could be one of the autonomic maintenance processes, e.g. automatic collection of table statistics, although the 37 minute interval looks a bit suspect.

You can start with looking at db2diag.log at around the time of the spike -- most auto maintenance tasks would be logged there.

For a quick look at what thread might be busy, run 

db2pd -edus interval=&lt;seconds&gt; -repeat


around the time of the spike, choosing the interval appropriate for the spike width.

Another useful tool is the system stored procedure MONREPORT.DBSUMMARY(&lt;seconds&gt;), which will print the summary of various wait times over the specified period -- run it before, during, and after the spike to compare the numbers.