gpt4 book ai didi

memory-management - Aerospike 硬盘/内存使用情况

转载 作者:行者123 更新时间:2023-12-04 07:46:10 26 4
gpt4 key购买 nike

我正在探索将 Aerospike 作为键值数据库,并将数据存储在磁盘上以确保安全。请确认,我理解正确:


  1. 如果在命名空间配置中我设置:
    • 存储引擎设备
    • 内存大小4G
    • 文件/opt/aerospike/data/namespace.dat
    • 文件大小16G
    • 内存中的数据false

-> 所有数据将只在磁盘上,“memory-size”仅用于索引(少量使用),所有数据将存储在多个 16GB 文件中(将自动创建) ,最重要的是 - 每个 read 查询都会触发从磁盘读取数据?


  1. 如果在命名空间配置中我设置:
    • 存储引擎设备
    • 内存大小4G
    • 文件/opt/aerospike/data/namespace.dat
    • 文件大小16G
    • 内存中的数据

-> 所有数据都将在磁盘上,部分在内存中,“内存大小”将充当缓存并包含 4GB 最常用的数据,所有数据将存储在多个 16GB 文件中(这将自动创建),最重要的是 - 每个 read 查询都会触发检查内存中的数据,如果丢失 -> 从磁盘读取并添加到内存?哪些数据将存储在内存中 - 最常使用的还是最近创建的?


  1. 如果在命名空间配置中我设置:
    • 存储引擎内存
    • 内存大小4G
    • 内存中的数据

-> 所有数据将仅在内存中,我的数据限制为 4GB,不能再多了?

最佳答案

Aerospike 不会像第一代 NoSQL 数据库那样将数据移入和移出磁盘,这些数据库具有“缓存优先”架构。 Aerospike 的 hybrid memory architecture是这样的 primary index (元数据)总是在内存中。根据命名空间配置,数据完全存储在磁盘或内存中。您为每个命名空间定义存储。如果它在内存中,则所有数据和元数据都完全在内存中。如果命名空间将其数据存储在几个设备(/dev/sdb、/dev/sdc)上,则主索引(元数据)完全在内存中并且数据完全在这些 SSD 上。

(1)是硬盘上的数据,配置正确。如果您使用的是 SSD,您可能希望使用 device 而不是 file。您的问题中有一点不正确,即 Aerospike 将首先检查 post-write-queue在阅读。

Aerospike 确实 block writes围绕HDD和SSD的高读/低写性能进行优化。 block 的大小由 write-block-size 决定配置参数(HDD 应为 1MB)。这些记录首先被加载到一个等效大小的流式写入缓冲区中。在缓冲区被刷新到磁盘上的一个 block 后,Aerospike 不会立即删除这个内存中的副本;它仍然是写后队列 (FIFO) 的一部分。默认情况下,其中 256 个 block 在每个设备或每个文件的队列中(您可以将多个 file 行定义为存储设备)。如果您的使用模式是读取紧随写入之后,您将获得内存访问而不是磁盘访问。如果你的cache_read_pct指标不是个位数,并且您有 DRAM 备用,您可能会受益于提高 post-write-queue 值(每个设备最多 2048 个 block )。

(2) 是内存中的命名空间,持久保存到磁盘。对于 (1) 和 (2),您可以使用 file(用于基于文件系统的存储)或 device(用于原始设备)。 (2) 的主索引(元数据)和存储(数据)都在内存中。所有读取和写入都来自内存,并且辅助直写进入持久性设备。

filesize保留文件系统上持久层的大小(如果您选择使用 file 而不是 device)。您可以有多个 file 行,每个行的大小将从开始到给定的数字 filesizememory-size是命名空间使用的最大内存量。这不是预先保留的。 Aerospike 的内存使用量会随着时间的推移而增加和减少,命名空间的最大值为其 memory-size

看看What's New in 3.11 ,特别是涉及内存性能改进的部分。调音partition-tree-sprigspartition-tree-locks可能会提高内存中命名空间的性能。

(3) 是一个纯粹的内存命名空间,通常用作缓存。 4G 限制会影响诸如 stop-writes-pct 之类的事情, high-water-memory-pct因为它们被定义为该限制的百分比(请参阅 evictions, expirations, stop-writes)。

还有一个 (4) 计数器特例,称为索引数据。见 storage engine configuration recipes .

关于memory-management - Aerospike 硬盘/内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46445104/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com