测量存储性能
Vertica 可用于测量站点上任何存储位置的磁盘 I/O 性能。可使用返回的测量值设置性能,从而自动进行排名。根据您的存储需求,也可以使用性能确定作为站点存储策略一部分的关键数据所需的存储位置。存储性能测量仅适用于数据存储位置,不适用于临时存储位置。
测量存储位置性能会计算在磁盘中读写 1 MB 数据所需的时间,计算公式如下:
IO time = time to read/write 1MB + time to seek = 1/throughput + 1/Latency
-
吞吐量为顺序读写的平均吞吐量(以每秒兆字节表示)。
-
延迟适用于随机读取(仅在查找中,单位为每秒查找次数)。
因此,存储位置较快的 I/O 时间要比存储位置较慢的 I/O 时间短。
注意
测量存储位置性能需要大量的磁盘 I/O,这是资源密集型操作。当正在运行的其他操作很少时,可考虑开始此操作。Vertica 提供两种测量存储位置性能的方法,具体视数据库是否正在运行而定。您可以执行以下操作之一:
-
在正在运行的数据库上测量性能。
-
设置群集之前测量性能。
这两种方法都将返回存储位置的吞吐量和延迟。记录或捕获吞吐量和延迟信息,以便您可以使用它来设置位置性能(请参阅设置存储性能)。
在正在运行的 Vertica 数据库上测量性能
使用 MEASURE_LOCATION_PERFORMANCE() 函数可在数据库正在运行时测量存储位置的性能。此函数具有以下要求:
-
存储路径必须已存在于数据库中。
-
存储位置中需要有 RAM*2 的可用磁盘空间来测量其性能。例如,如果 RAM 为 16 GB,则需 32 GB 的可用磁盘空间。如果磁盘空间不足,函数将返回一个错误。
使用系统表 DISK_STORAGE 可获取每个数据库节点上的磁盘存储的相关信息。
以下示例显示了如何在 v_vmartdb_node0004
上测量存储位置的性能:
=> SELECT MEASURE_LOCATION_PERFORMANCE('/secondVerticaStorageLocation/','v_vmartdb_node0004');
WARNING: measure_location_performance can take a long time. Please check logs for progress
measure_location_performance
--------------------------------------------------
Throughput : 122 MB/sec. Latency : 140 seeks/sec
在设置群集之前测量性能
您可以在设置群集之前测量性能。当要验证磁盘在正常参数范围内是否正常运行时,此方法非常有用。要执行此测量,必须事先安装 Vertica。
要测量磁盘性能,请使用以下命令:
opt/vertica/bin/vertica -m <path to disk mount>
例如:
opt/vertica/bin/vertica -m /secondVerticaStorageLocation/node0004_data