← Back to team overview

openstack team mailing list archive

Re: Caching strategies in Nova ...


On 03/23/2012 01:26 PM, Mark Washenberger wrote:

"Johannes Erdfelt"<johannes@xxxxxxxxxxx>  said:

MySQL isn't exactly slow and Nova doesn't have particularly large
tables. It looks like the slowness is coming from the network and how
many queries are being made.

Avoiding joins would mean even more queries, which looks like it would
slow it down even further.

This is exactly what I saw in my profiling. More complex queries did
still seem to take longer than less complex ones, but it was a second
order effect compared to the overall volume of queries.

I'm not sure that network was the culprit though, since my ping
roundtrip time was small relative to the wall time I measured for each
nova.db.api call.

How much data would the queries return, and how long between queries? One "networking" thing that might come into play would be slow start after idle - if the query returns are > INITCWND (either 3 or 10 segments depending on which kernel) and they are separated by at least one RTO (or is it RTT?) then they will hit slow start each time. Now, the extent to which that matters is a function of how large the return is, and it is only adding RTTs so it wouldn't be minutes, but it could add up a bit I suppose.

rick jones