Google Stackdriver Profling: How to understand this profile

Viewed 168

Wall Time CPU Time I have attached two Google Stackdriver Profilers for our backend server. The backend api simply trying to read from Memcache first, if it doesn't exist or has timeout error, then retrieve the data from Big Table.

Based on the wall time and CPU time profiles, I'd like to know

  1. Why the libjvm_so process consumes that much (45.8%) of CPU time, is it because the server allocates lots of memory that cause garbage collection using a lot of CPU?
  2. The wall time profile shows 97% of thread time is waiting for a resource, I guess it's waiting for Memcache/big table server to return the data, is it true? Does this mean the server doesn't need that much CPU? (currently 16 CPUs, with an average load of 35%)
  3. Any other insights? Where can be improved etc?
0 Answers
Related