Add warning message about slow volume backend
If a volume driver takes an excessively long amount of time to return volume stats info, the only indication if this is a generic "Function outlasted interval" message that doesn't really explain what is going on. Introduce a specific log message when this happens so that this situation is more clear for someone looking at cinder-volume logs. The message is set to trigger if the driver takes more than half of the stats polling interval to complete. Change-Id: Id6b27eb7b90c8a8c91fb46de69aa94b8210da18d
This commit is contained in:
parent
85975fb2b6
commit
6d85d05f78
@ -2646,7 +2646,20 @@ class VolumeManager(manager.CleanableManager,
|
|||||||
resource={'type': 'driver',
|
resource={'type': 'driver',
|
||||||
'id': self.driver.__class__.__name__})
|
'id': self.driver.__class__.__name__})
|
||||||
else:
|
else:
|
||||||
volume_stats = self.driver.get_volume_stats(refresh=True)
|
slowmsg = "The " + self.driver.__class__.__name__ + " volume " \
|
||||||
|
"driver's get_volume_stats operation ran for " \
|
||||||
|
"%(seconds).1f seconds. This may indicate a " \
|
||||||
|
"performance problem with the backend which can lead " \
|
||||||
|
"to instability."
|
||||||
|
|
||||||
|
@timeutils.time_it(
|
||||||
|
LOG, log_level=logging.WARN, message=slowmsg,
|
||||||
|
min_duration=CONF.backend_stats_polling_interval / 2)
|
||||||
|
def get_stats():
|
||||||
|
return self.driver.get_volume_stats(refresh=True)
|
||||||
|
|
||||||
|
volume_stats = get_stats()
|
||||||
|
|
||||||
if self.extra_capabilities:
|
if self.extra_capabilities:
|
||||||
volume_stats.update(self.extra_capabilities)
|
volume_stats.update(self.extra_capabilities)
|
||||||
if volume_stats:
|
if volume_stats:
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Log a warning from the volume service when a volume driver's
|
||||||
|
get_volume_stats() call takes a long time to return. This can help
|
||||||
|
deployers troubleshoot a cinder-volume service misbehaving due to a
|
||||||
|
driver/backend performance issue.
|
Loading…
x
Reference in New Issue
Block a user