Skip to content

Commit

Permalink
resource-preparation-opt (#2162)
Browse files Browse the repository at this point in the history
* resource-preparation-opt

* Update 1.resource-preparations.md
  • Loading branch information
abby-cyber authored Sep 23, 2022
1 parent 9602d18 commit a155607
Showing 1 changed file with 9 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -228,20 +228,24 @@ storaged 进程的数量不会影响图空间副本的数量。

| 资源 |单位 | 计算公式 |说明|
|:--- |:---|:--- |:---|
| 硬盘空间 |Bytes| `点和边的总数` * `属性的平均字节大小` * 6 * 120% |由于边存在存储放大现象,所以需要`点和边的总数` * `属性的平均字节大小` * 6 的空间,详情请参见[切边与存储放大](../1.introduction/3.nebula-graph-architecture/4.storage-service.md)。|
| 硬盘空间 |Bytes| `点和边的总数` * `属性的平均字节大小` * 7.5 * 120% |由于边存在存储放大现象,所以需要`点和边的总数` * `属性的平均字节大小` * 7.5 的空间,详情请参见[切边与存储放大](../1.introduction/3.nebula-graph-architecture/4.storage-service.md)。|
| 内存 |Bytes| [`点和边的总数` * 16 + `RocksDB 实例数量` * (`write_buffer_size` * `max_write_buffer_number` + `块缓存大小`)] * 120% |`点和边的总数` * 16 是 [BloomFilter](https://zh.wikipedia.org/wiki/%E5%B8%83%E9%9A%86%E8%BF%87%E6%BB%A4%E5%99%A8) 需要占用的内存空间,`write_buffer_size``max_write_buffer_number`是 RocksDB 内存相关参数,详情请参见 [MemTable](https://github.com/facebook/rocksdb/wiki/MemTable)。块缓存大小请参见 [Memory usage in RocksDB](https://github.com/facebook/rocksdb/wiki/Memory-usage-in-RocksDB#block-cache)。|
| 分区数量 |-| `集群硬盘数量` * `disk_partition_num_multiplier` |`disk_partition_num_multiplier`是一个用于衡量硬盘性能的整数,取值范围 2~20。建议在计算 SSD 硬盘的分区数量时使用 20 做参数值,HDD 硬盘使用 2。|

- 问题 1:为什么磁盘空间和内存都要乘以 120%?
- 问题 1:为什么硬盘空间的预估公式中需要乘以 7.5?

答:因为根据测试值,相比原始数据文件(csv),单副本所占用的空间约为之前的 2.5 倍;另外索引会另外占用硬盘空间,每个被索引的点或边占用 16 字节的内存,索引的占用硬盘空间可按经验估算为:被索引的点或边总数 * 50 字节。

- 问题 2:为什么磁盘空间和内存都要乘以 120%?

答:额外的 20% 用于缓冲。

- 问题 2:如何获取 RocksDB 实例数量?
- 问题 3:如何获取 RocksDB 实例数量?

答:`etc`目录内查看配置文件`nebula-storaged.conf``--data_path`选项中的每个目录对应一个 RocksDB 实例,目录总数即是 RocksDB 实例数量。
答:每个图空间对应一个 RocksDB 实例,并且`--data_path`选项(`etc`目录下的`nebula-storaged.conf`文件中)中的每个目录对应一个 RocksDB 实例。即,RocksDB 实例数量 = 图空间总数 * 目录总数

!!! Note

用户可以在配置文件`nebula-storaged.conf`中添加`--enable_partitioned_index_filter=true`来降低 bloom 过滤器占用的内存大小,但是在某些随机寻道(random-seek)的情况下,可能会降低读取性能。


0 comments on commit a155607

Please sign in to comment.