Performance-related considerations arguably belong to the Art department of software engineering. The JVM itself is a wild beast and complex technology stacks such as J2EE bring even more intertwined stuff to the table. Recently I came across a very interesting book sorting out quite a few important questions in a coherent and mostly vendor-independent way.
Pro Java EE 5 Performance Management and Optimization strives to address the whole J2EE application lifecycle but the real substance is concentrated in part II. A conceptually simple performance tuning methodology (Chapter 6), a nice discussion of both Sun and IBM approaches to garbage collection (Chapter 7) and testing of cluster configurations (Chapter 8) deserve a few hours of reading.
For hard-core R&D folks it might be instructive to skim also the explanation of the four support levels (Chapter 11). This mostly managerial topic demonstrates the way bugs are supposed to travel from a production deployment into our bug-tracking system.