Do show full processlist, and then you could see if there are some long running queries, if yes you need to optimize indexes (see explain and add index on the fields JOINs are using).
You need to increase query cache size, it’s ridiculously low (and limit is ridiculously high)…
query_cache_limit = 128K query_cache_size = 128M
or even try to make it
query_cache_limit = 384K query_cache_size = 512M
There’s no mutex/contention issues, if you had it then CPU would be underutilized.
If there are no long running queries and setting qcache won’t help, that’d probably mean that you need to look around for normal server, could be that these vcpus are slow, but most likely indexes are not there and cache is too low.
