nebula 2.0.0-rc1数据批量导入问题

提问参考模版:

  • nebula 版本:2.0rc1
  • 部署方式(分布式 / 单机 / Docker / DBaaS):docker swarm

我有3台机器,使用exchange2.0导入数据,
发现导入的时候最后只有一台机器稍微繁忙点,磁盘和cpu使用稍微高点,其他两台都不高,
请帮忙看下这是什么原因导致的,如何提高利用率

如图cpu,96核机器

机器一load average: 26.27, 25.63, 28.32
机器二load average: 5.80, 4.47, 5.96
机器三load average: 12.94, 11.65, 13.40

磁盘读写

机器一
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00     9.40    0.80   26.00    77.60  9897.60   744.42     0.86   32.27   12.00   32.89   3.88  10.40
sda               0.00    15.40   27.60   11.80   119.20   582.40    35.61     0.14    3.57    3.94    2.71   0.51   2.00
sdg               0.00     6.00    1.60   24.60   102.40  8083.20   624.85     1.08   41.16    9.50   43.22   3.24   8.48
sdc               0.00     8.60    0.80   30.00    89.60 11355.20   743.17     1.05   34.13    7.00   34.85   2.88   8.88
sdd               0.00     6.20    8.00   24.80  3764.00 11304.00   918.78     1.13   34.59   21.30   38.87   4.37  14.32
sdi               0.00     6.20    1.00   41.80    94.40 19571.20   918.95     1.33   31.12   12.00   31.58   2.75  11.76
sde               0.00     5.60   15.40   25.00  7160.80 11327.20   915.25     1.30   32.24   14.96   42.88   3.62  14.64
sdf               0.00    12.60    1.60   55.00   193.60 26116.80   929.70     2.88   50.93   26.50   51.64   3.45  19.52
sdj               0.00     6.00    1.80   21.60   148.00  9707.20   842.32     1.01   43.11    9.33   45.93   3.69   8.64
sdk               0.00     6.00    0.80   24.40   104.00 11305.60   905.52     1.43   56.70   43.00   57.15   4.54  11.44
sdh               0.00     5.00    3.40   25.00  1334.40 11307.20   890.25     1.36   47.83   13.88   52.45   4.14  11.76
sdl               0.00     7.60    1.00   31.20   128.00 14610.40   915.43     1.45   44.99   20.00   45.79   3.73  12.00
机器二
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00    46.90    1.50   39.30   182.00   334.40    25.31     0.30    7.24    8.80    7.18   5.87  23.96
sda               0.00    13.60    0.00    7.30     0.00    92.40    25.32     0.04    5.70    0.00    5.70   5.59   4.08
sdc               0.00     0.50    4.10    0.20  1312.00     2.80   611.53     0.08   18.05   18.34   12.00   6.14   2.64
sde               0.00     0.60    3.10    1.70  1315.20     9.20   551.83     0.06   11.50   17.16    1.18   5.17   2.48
sdf               0.00     1.00    2.20    7.10   768.00  2487.20   700.04     0.32   34.32   24.18   37.46   2.32   2.16
sdd               0.00     1.10    4.80    0.20  1792.80     5.20   719.20     0.06   12.08   12.17   10.00   5.76   2.88
sdg               0.00     1.00    3.10    0.20  1230.00     4.80   748.36     0.05   14.55   14.84   10.00   6.67   2.20
sdj               0.00     0.60    4.70    1.70  1848.40     9.20   580.50     0.11   17.75   23.74    1.18   4.56   2.92
sdi               0.00     2.10   25.70   19.20 10268.80  9088.40   862.24     0.56   12.55   11.30   14.23   2.75  12.36
sdh               0.00     2.20    2.70    3.80  1188.80  1015.20   678.15     0.13   20.43   16.30   23.37   3.82   2.48
sdl               0.00     0.50    1.70    0.20   519.60     2.80   549.89     0.02   11.79   12.00   10.00   6.95   1.32
sdm               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
机器三
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdd               0.00     5.20   17.70   22.50  8525.60 10610.40   952.04     0.97   24.10   16.29   30.24   3.82  15.36
sda               0.00    10.00   19.60   13.20    78.40   107.20    11.32     0.10    3.11    0.98    6.27   0.62   2.04
sdb               0.00    14.50    3.10   37.40  1162.00 17050.40   899.38     1.62   40.03   19.61   41.72   4.26  17.24
sdj               0.00     4.70    9.40   22.60  3893.20 10506.80   900.00     0.86   27.00   18.04   30.73   4.03  12.88
sde               0.00     7.00    0.50   29.30    46.00 13908.40   936.54     1.08   36.15   31.20   36.23   4.00  11.92
sdf               0.00     7.20    0.60   41.10    76.80 19648.40   946.05     1.38   33.16   12.00   33.47   3.04  12.68
sdg               0.00     4.70    0.80   19.80    96.40  8953.60   878.64     0.65   31.75   25.50   32.00   4.33   8.92
sdk               0.00     5.60   13.60   26.10  6113.20 12156.40   920.38     1.52   38.60   12.68   52.11   3.82  15.16
sdh               0.00     4.90    1.10   19.00   135.20  7329.60   742.77     0.50   24.80   12.00   25.54   3.74   7.52
sdc               0.00     4.30    3.20   19.00  1194.00  8945.60   913.48     0.84   28.49   21.38   29.68   4.50  10.00
sdl               0.00     7.80    1.90   33.10   543.60 13846.40   822.29     0.91   25.95   38.74   25.22   3.69  12.92
sdi               0.00     4.00    0.90   18.10   109.20  8326.80   888.00     0.87   44.42   26.22   45.33   6.36  12.08

这是机器分片情况

+---------------+-----------+-----------+--------------+---------------------------+-----------------------------+
| Host          | Port      | Status    | Leader count | Leader distribution       | Partition distribution      |
+---------------+-----------+-----------+--------------+---------------------------+-----------------------------+
| "机器一"  | 9779      | "ONLINE"  | 69           | "test:66, nba:3" | "test:100, nba:3"  |
+---------------+-----------+-----------+--------------+---------------------------+-----------------------------+
| "机器二"  | 9779      | "ONLINE"  | 0            | "No valid partition"      | "test:100, nba:4"  |
+---------------+-----------+-----------+--------------+---------------------------+-----------------------------+
| "机器三" | 9779      | "ONLINE"  | 0            | "No valid partition"      | "test:100, nba:3"  |
+---------------+-----------+-----------+--------------+---------------------------+-----------------------------+
| "Total"       | __EMPTY__ | __EMPTY__ | 69           | "test:66, nba:3" | "test:300, nba:10" |
+---------------+-----------+-----------+--------------+---------------------------+-----------------------------+

看你的space的leader分布,test这个space有33个part没有leader,66个集中在机器一上,nba这个space也是一样。你可以贴下三个storage的info日志吗?

1 个赞

我balance了一下,写入比较平衡了,
但是每台机器的io上不去,可以调什么参数,使用的是spark exchange2.0

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.72    0.00    0.99    1.80    0.00   92.50

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sdb               0.00    15.10    1.40   34.20    18.00 15662.40   880.92     1.69   47.43    8.86   49.01   4.63  16.48
sda               0.00     8.50   72.30    2.70  1463.20    44.80    40.21     0.51    6.86    6.84    7.56   1.04   7.80
sdc               0.00     9.20    2.80   43.50  1079.20 20719.60   941.63     2.16   46.60   14.86   48.64   3.84  17.80
sde               0.00     8.60    3.10   45.50  1052.80 20584.80   890.44     8.84  181.97   43.61  191.39   5.05  24.56
sdf               0.00     7.50    2.70   30.40  1064.00 14782.00   957.46     1.14   31.64   39.85   30.91   4.80  15.88
sdd               0.00     7.70    2.80   33.70  1070.80 16417.60   958.27     1.78   48.56   17.71   51.12   5.85  21.36
sdg               0.00     7.40    3.00   42.30  1041.60 20608.00   955.83     3.08   68.09   29.73   70.81   4.17  18.88
sdj               0.00     7.20    2.60   42.10  1066.00 20573.20   968.20     4.16   93.00   50.15   95.65   4.00  17.88
sdi               0.00     9.80    2.50   52.70  1063.60 23838.80   902.26     5.01   90.77   58.56   92.30   3.83  21.12
sdh               0.00     9.20    2.60   46.00  1035.60 22268.00   959.00     3.38   69.59   20.31   72.37   4.01  19.48
sdl               0.00     6.30    2.30   23.90  1038.40 11494.40   956.70     0.96   36.76   30.43   37.37   4.29  11.24
sdm               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

使用Nebula-Exchange导入的话,提升导入性能可以调整下面几个参数:

  1. Spark内部的 executor数量,executor内cores数量、分配给executor的内存
  2. tag 或者 edge 内的partition数量

executor数量我提高了50%,但是效果不明显,磁盘的io没有明显上升,是不是有什么参数限制了

你是什么模式提交的spark任务,可以通过spark的webUI或yarn的webUI监控看下任务运行时真正用到的cores和内存

任务已经结束了,我是通过cluster模式提交的,我看了实际使用的核数从120->180,但是io效率,入库时间基本没变。

如果partition数目少,只提升executor数量和core数量的话也只是空闲着。
你看下设置的tag中partition数目是多少,可以将partition数目设置成 executor数目* 一个executor中的core数目*2

executor 30->45
memory 6g
cpu 4
batch: 2000
partition: 2000
这是我的配置,executor数量我提高到45,导入没有明显变化

你的数据量多大,按照executor和cpu的数量,你的partition可以设置为200

10亿+

10亿+,我partition数量忘记改了,之前导入过比这大的数据集,但是还是没法解决我增加executor数量的疑问

先看几个指标数据:

  1. spark集群规模:几台机器,每台机器的核数、内存
  2. 提交spark任务时给定的master, 给定的executor数量–num-executors,给定的每个executor中分配的核数 --executor-cores
  3. 任务执行时,实际分配至spark任务的资源:cores数量

增加executor数量会增加Spark执行任务的task数,也就是并发度会提升。 但前提是partition数目大于总的task数目。

提升io的话,要看下服务端的情况了。NebulaGraph数据写入时会先写到内存,再flush到磁盘。

spark这块是没有疑问的,对应的partition数目也是比core的数量大,所以我在想是不是nebulagraph这块限制了,磁盘io才使用15%~20%

这需要请教下我们服务端的同学 @critical27

好的,麻烦了

rate-limit这个有影响吗,这个参数对应是什么意义?

storage对应多个盘,是不是要放开某些限制,我看这写入速率对应单块盘的

这个参数是为了防止写入速度过快做的一个限制。

但是我看log日志并没有触发这个日志,应该跟这个没有关系
“write vertex failed because write speed is too fast”