Merge "[Pure Storage] Enhance reported performance characteristics"
This commit is contained in:
commit
28789f0dd0
@ -625,7 +625,10 @@ PERF_INFO = {
|
|||||||
'write_bytes_per_sec': 2827943,
|
'write_bytes_per_sec': 2827943,
|
||||||
'time': '2015-12-17T21:50:55Z',
|
'time': '2015-12-17T21:50:55Z',
|
||||||
'usec_per_read_op': 192,
|
'usec_per_read_op': 192,
|
||||||
'queue_depth': 4,
|
'queue_depth': 4, # Deprecated - to be removed in 2026.1 cycle
|
||||||
|
'queue_usec_per_mirrored_write_op': 1,
|
||||||
|
'queue_usec_per_read_op': 2,
|
||||||
|
'queue_usec_per_write_op': 3,
|
||||||
}
|
}
|
||||||
PERF_INFO_RAW = [PERF_INFO]
|
PERF_INFO_RAW = [PERF_INFO]
|
||||||
|
|
||||||
@ -5136,6 +5139,11 @@ class PureVolumeUpdateStatsTestCase(PureBaseSharedDriverTestCase):
|
|||||||
'usec_per_read_op': PERF_INFO['usec_per_read_op'],
|
'usec_per_read_op': PERF_INFO['usec_per_read_op'],
|
||||||
'usec_per_write_op': PERF_INFO['usec_per_write_op'],
|
'usec_per_write_op': PERF_INFO['usec_per_write_op'],
|
||||||
'queue_depth': PERF_INFO['queue_depth'],
|
'queue_depth': PERF_INFO['queue_depth'],
|
||||||
|
'queue_usec_per_mirrored_write_op': PERF_INFO[
|
||||||
|
'queue_usec_per_mirrored_write_op'
|
||||||
|
],
|
||||||
|
'queue_usec_per_read_op': PERF_INFO['queue_usec_per_read_op'],
|
||||||
|
'queue_usec_per_write_op': PERF_INFO['queue_usec_per_write_op'],
|
||||||
'replication_capability': 'sync',
|
'replication_capability': 'sync',
|
||||||
'replication_enabled': False,
|
'replication_enabled': False,
|
||||||
'replication_type': [],
|
'replication_type': [],
|
||||||
|
@ -21,6 +21,7 @@ import functools
|
|||||||
import ipaddress
|
import ipaddress
|
||||||
import math
|
import math
|
||||||
import re
|
import re
|
||||||
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
import distro
|
import distro
|
||||||
@ -1071,7 +1072,11 @@ class PureBaseVolumeDriver(san.SanDriver):
|
|||||||
"""Set self._stats with relevant information."""
|
"""Set self._stats with relevant information."""
|
||||||
current_array = self._get_current_array()
|
current_array = self._get_current_array()
|
||||||
space_info = list(current_array.get_arrays_space().items)[0]
|
space_info = list(current_array.get_arrays_space().items)[0]
|
||||||
perf_info = list(current_array.get_arrays_performance().items)[0]
|
perf_info = list(current_array.get_arrays_performance(
|
||||||
|
end_time=int(time.time()) * 1000,
|
||||||
|
start_time=(int(time.time()) * 1000) - 30000,
|
||||||
|
resolution=30000
|
||||||
|
).items)[0]
|
||||||
hosts = list(current_array.get_hosts().items)
|
hosts = list(current_array.get_hosts().items)
|
||||||
volumes = list(current_array.get_volumes().items)
|
volumes = list(current_array.get_volumes().items)
|
||||||
snaps = list(current_array.get_volume_snapshots().items)
|
snaps = list(current_array.get_volume_snapshots().items)
|
||||||
@ -1135,7 +1140,14 @@ class PureBaseVolumeDriver(san.SanDriver):
|
|||||||
# Latency
|
# Latency
|
||||||
data['usec_per_read_op'] = perf_info.usec_per_read_op
|
data['usec_per_read_op'] = perf_info.usec_per_read_op
|
||||||
data['usec_per_write_op'] = perf_info.usec_per_write_op
|
data['usec_per_write_op'] = perf_info.usec_per_write_op
|
||||||
|
|
||||||
|
# TODO: Queue depth - deprecated - remove in 2026.1 cycle
|
||||||
data['queue_depth'] = getattr(perf_info, 'queue_depth', 0)
|
data['queue_depth'] = getattr(perf_info, 'queue_depth', 0)
|
||||||
|
# Detailed I/O queuieing information
|
||||||
|
data['queue_usec_per_mirrored_write_op'] = (
|
||||||
|
perf_info.queue_usec_per_mirrored_write_op)
|
||||||
|
data['queue_usec_per_read_op'] = perf_info.queue_usec_per_read_op
|
||||||
|
data['queue_usec_per_write_op'] = perf_info.queue_usec_per_write_op
|
||||||
|
|
||||||
# Replication
|
# Replication
|
||||||
data["replication_capability"] = self._get_replication_capability()
|
data["replication_capability"] = self._get_replication_capability()
|
||||||
|
@ -361,6 +361,9 @@ A large number of metrics are reported by the volume driver which can be useful
|
|||||||
in implementing more control over volume placement in multi-backend
|
in implementing more control over volume placement in multi-backend
|
||||||
environments using the driver filter and weighter methods.
|
environments using the driver filter and weighter methods.
|
||||||
|
|
||||||
|
Performance metrics are provided based on an average over the previous
|
||||||
|
30 seconds.
|
||||||
|
|
||||||
Metrics reported include, but are not limited to:
|
Metrics reported include, but are not limited to:
|
||||||
|
|
||||||
.. code-block:: text
|
.. code-block:: text
|
||||||
@ -378,7 +381,9 @@ Metrics reported include, but are not limited to:
|
|||||||
output_per_sec
|
output_per_sec
|
||||||
usec_per_read_op
|
usec_per_read_op
|
||||||
usec_per_read_op
|
usec_per_read_op
|
||||||
queue_depth
|
queue_usec_per_mirrored_write_op
|
||||||
|
queue_usec_per_read_op
|
||||||
|
queue_usec_per_write_op
|
||||||
replication_type
|
replication_type
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Pure Storage: Added additional IO queueing performance characteristics
|
||||||
|
``queue_usec_per_mirrored_write_op``, ``queue_usec_per_read_op`` and
|
||||||
|
``queue_usec_per_write_op``, to array statistics used by the scheduler.
|
||||||
|
- |
|
||||||
|
Pure Storage: Changed performance metrics to report average over the previous
|
||||||
|
30 seconds, rather than using point-in-time information.
|
||||||
|
deprecations:
|
||||||
|
- |
|
||||||
|
Pure Storage: Deprecation of ``queue_depth`` performance characteristic
|
||||||
|
return by array statistics. This will be fully removed in the 2026.1 release.
|
Loading…
x
Reference in New Issue
Block a user