Skip to content

Commit

Permalink
rocksdb-stats (#72)
Browse files Browse the repository at this point in the history
* rocksdb-stats

* update

* update

* update3

* fix dan
  • Loading branch information
Amber1990Zhang committed Aug 24, 2020
1 parent dc5c71a commit df8f1cb
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 9 deletions.
2 changes: 1 addition & 1 deletion docs/manual-CN/1.overview/0.introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## 什么是 Nebula Graph

**Nebula Graph** 是一个开源 (Apache 2.0),高性能的分布式图数据库,是世界上唯一一个支持百亿节点,万亿条边,并提供毫秒延迟的图数据库解决方案。
**Nebula Graph** 是一个开源 (Apache 2.0),高性能的分布式图数据库,是一个支持百亿节点,万亿条边,并提供毫秒延迟的图数据库解决方案。

**Nebula Graph** 的目标是提供高并发低延时的读写及计算。 **Nebula Graph** 是一个开源项目,我们期待与社区一起共同推进行业发展。

Expand Down
5 changes: 3 additions & 2 deletions docs/manual-CN/1.overview/1.concepts/2.nGQL-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,11 @@
- 简单类型: **vid****double****int****bool****string****timestamp**
<!-- **float**,**path**, **year**, **month** (year/month), **date**, **datetime** -->
- **vid** : 64 位有符号整数,用来表示点 ID
- 简单类型列表,如: **integer[]**, **double[]**, **string[]**

<!-- - 简单类型列表,如: **integer[]**, **double[]**, **string[]**
- **Map**: 键值对列表。键类型必须为 **字符**,值类型必须与给定 map
- **Object** (未来版本支持): 键值对列表。键类型必须为**字符**,值可以是任意简单类型
- **Tuple List**: *只适用于返回值*。由元数据和数据(多行)组成 。元数据包含列名和类型。
- **Tuple List**: *只适用于返回值*。由元数据和数据(多行)组成 。元数据包含列名和类型。 -->

### 类型转换

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,9 @@ wal_bytes_per_sync
delayed_write_rate
avoid_flush_during_shutdown
max_open_files
enable_write_thread_adaptive_yield
max_subcompactions -- level0 到 level1 的 compact 启用多线程。默认为 1,动态修改重启后生效
max_background_jobs -- 使用多线程进行 compact。默认为 1,动态修改重启后生效
stats_persist_period_sec
stats_history_buffer_size
strict_bytes_per_sync
```

以上参数都可通过 `UPDATE CONFIGS` 语法进行动态修改,也可以写在本地配置文件中。具体作用和修改是否需要重启请参考 RocksDB 手册。
Expand All @@ -104,9 +104,9 @@ max_bytes_for_level_multiplier
disable_auto_compactions -- 停止写入数据时候的自动 compact,默认 false。动态修改立刻生效。
```

> 以上参数都可通过 UPDATE CONFIGS 语法进行动态修改,也可以写在本地配置文件中。具体作用和修改是否需要重启请参考RocksDB手册。
以上参数都可通过 UPDATE CONFIGS 语法进行动态修改,也可以写在本地配置文件中。具体作用和修改是否需要重启请参考RocksDB手册。

以上参数可通过命令行如下设置:
以上参数可通过命令行如下设置

```ngql
nebula> UPDATE CONFIGS storage:rocksdb_column_family_options = \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# RocksDB 统计功能

**Nebula Graph** 使用 RocksDB 作为其底层存储。本文档将教你如何收集和展示 **Nebula Graph** 的 RocksDB 统计信息。

## 启用 RocksDB 统计功能

RocksDB 统计功能默认为禁用状态。如果要启用 RocksDB 统计功能,你需要:

- 在配置文件 `storaged.conf`,将 `--enable_rocksdb_statistics` 参数修改为 `true`。配置文件默认目录为 `/home/user/nebula/build/install/etc`
- 重新启动服务以使修改生效。

启用此功能后,统计信息将定期转储到每个数据库服务的日志文件中。

## 获取 RocksDB 统计信息

你可以使用存储服务中的内置 Web 接口获取统计信息。使用 Web 服务获取 RocksDB 统计信息一共有三种方法:

1. 获取全部统计信息;
2. 获取指定条目的信息;
3. 获取 JSON 格式的统计信息。

## 示例

使用以下命令获取所有 RocksDB 统计信息:

```bash
curl -L "http://${storage_ip}:${port}/rocksdb_stats"
```

例如:

```bash
curl -L "http://172.28.2.1:12000/rocksdb_stats"

rocksdb.blobdb.blob.file.bytes.read=0
rocksdb.blobdb.blob.file.bytes.written=0
rocksdb.blobdb.blob.file.bytes.synced=0
...
```

使用以下命令获取部分 RocksDB 统计信息:

```bash
curl -L "http://${storage_ip}:${port}/rocksdb_stats?stats=${stats_name}"
```

例如:

```bash
curl -L "http://172.28.2.1:12000/rocksdb_stats?stats=rocksdb.bytes.read,rocksdb.block.cache.add"

rocksdb.block.cache.add=14
rocksdb.bytes.read=1632
```

使用以下命令获取部分 Json 格式的 RocksDB 统计信息:

```bash
curl -L "http://${storage_ip}:${port}/rocksdb_stats?stats=${stats_name}.&returnjson"
```

例如:

```bash
curl -L "http://172.28.2.1:12000/rocksdb_stats?stats=rocksdb.bytes.read,rocksdb.block.cache.add&returnjson"

[{"value":14,"name":rocksdb.block.cache.add},{"value":1632,"name":"rocksdb.bytes.read"}]
```
2 changes: 1 addition & 1 deletion docs/manual-CN/5.appendix/vid-partition.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ VID mod partition_number = partition ID + 1
- `partition_number``VID` 所处图空间的的分区数量,即 [CREATE SPACE](../2.query-language/4.statement-syntax/1.data-definition-statements/create-space-syntax.md) 语句中 `partition_num` 的值。
- `partition ID` 即该 `VID` 所在分区的 ID。

例如,如果有 100 个分区,那 `VID` 为 1、11、101、1001 的点将存储在同一个分区上。
例如,如果有 100 个分区,那 `VID` 为 1、101、1001 的点将存储在同一个分区上。

此外,`partition ID` 和机器之间的对应关系是随机的。因此不可以假设任何两个分区分布在同一台机器上。
1 change: 1 addition & 0 deletions docs/manual-CN/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@
* [meta 层运行统计 (metrics)](3.build-develop-and-administration/7.monitor/2.meta-metrics.md)
* [storage 运行统计 (metrics)](3.build-develop-and-administration/7.monitor/3.storage-metrics.md)
* [graph 层运行统计 (metrics)](3.build-develop-and-administration/7.monitor/4.graph-metrics.md)
* [RocksDB 统计数据](3.build-develop-and-administration/7.monitor/5.rocksdb-statistics.md)
* 源码开发和 API
* [Key Value 接口](3.build-develop-and-administration/6.develop-and-interface/kv-interfaces.md)
* [Nebula Graph 客户端](1.overview/2.quick-start/3.supported-clients.md)
Expand Down
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,8 @@ nav:
- Meta Metrics: manual-CN/3.build-develop-and-administration/7.monitor/2.meta-metrics.md
- Storage Metrics: manual-CN/3.build-develop-and-administration/7.monitor/3.storage-metrics.md
- Graph Metrics: manual-CN/3.build-develop-and-administration/7.monitor/4.graph-metrics.md
- RocksDB Statistics: manual-CN/3.build-develop-and-administration/7.monitor/5.rocksdb-statistics.md


- 源码开发和 API:
- Key Value API: manual-CN/3.build-develop-and-administration/6.develop-and-interface/kv-interfaces.md
Expand Down

0 comments on commit df8f1cb

Please sign in to comment.