-
Notifications
You must be signed in to change notification settings - Fork 525
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
hugegraph-server和loader的内存占用问题,以及性能问题 #116
Comments
10.22的issue提交似乎出了些问题,我不知道自己是否提交成功,所以连续提了几个相同的问题。。现在在尝试看看我的comment是否能成功 |
@mengquanrun 我们昨天也遇到了这个issue重复提交问题,没关系的。Github Incident: https://blog.github.com/2018-10-21-october21-incident-report/ |
@mengquanrun SIGBUS可能是内存不够导致的,希望再提供如下信息:发生错误的时候server单独占用的内存是多少?server JVM分配的最大内存是多少? @Linary 帮忙复现及分析一下这个问题。 |
@javeme 应该不是内存不够导致的,发生错误时系统还有14G内存可用,server单独占用内存应该在20G多一些,loader占用内存在10G多一些,server JVM的最大内存我没有自行设置,应该是默认的配置,我现在无法快速再次复现,因为传输时间太长,昨天传输了6个小时大概,最后报错,之后还导致了磁盘挂载出错,最后重启了服务器才解决,不过这个问题应该是我的磁盘写入方式有问题 |
@mengquanrun 看了详细的错误信息,看起来是触发了JVM的这个BUG导致的:https://bugs.openjdk.java.net/browse/JDK-8191484 ,是否在运行过程中Overwrite了什么文件呢? |
@javeme 抱歉我不是很懂java,那我该怎么办可以避免这个bug呢? |
@mengquanrun 建议再传一次,希望能找到明确的复现过程,那样比较好进一步分析。 后期导入速度变慢可能的原因很多,下面是常见的几种:
请确认:
|
@javeme 好的,非常感谢,我再传一次试试看~明天上午才能给出复现结果了~ |
该问题已得到解决,应该是单块磁盘长时间读写,会导致后期数据传输变慢,并且最后哦无力负担,磁盘挂掉。 |
@mengquanrun 磁盘挂掉具体是什么表现呢?有报错信息的话麻烦提供一下。 另外,你的使用场景是loader和HugeGraphServer在同一台服务器上,且导入的原始数据和存放图数据的RocksDB数据目录都是同一块盘,是吗? 使用loader导入数据的两点建议:
|
@zhoney磁盘挂掉会返回io-exception,其他的信息就没有了。 |
如果数据量稳定在当前规模,或者增长速度很慢的话,是可以使用RocksDB的。(数据没有备份的情况下,要考虑存储的高可用,防止数据丢失)
是的。loader是通过调用hugegraph-client通过http跟HugeGraphServer交互的。在不同的机器上时需要配置-h和-p参数 |
@zhoney 好的,感谢 |
rocksdb的compaction问题,可以通过调整下writestall触发阈值来延后。只要磁盘空间够的话,应该可以缓解laod过程卡住问题 可参考 https://www.jianshu.com/p/a2892a161a7b Tuning RocksDB - Write Stalls |
Due to the lack of activity, the current issue is marked as stale and will be closed after 20 days, any update will remove the stale label |
Expected behavior 期望表现
内存占用低一些,性能更好一些
希望我有优化的空间,并且想请问贵团队在处理大型数据建图时,会采用什么策略呢?
Actual behavior 实际表现
内存占用居高不下
loader传输数据时,后期非常缓慢
并且最终报错
Edges has been imported:555144377
A fatal error has been detected by the Java Runtime Environment:
[thread 140403401385728 also had an error]
SIGBUS (0x7) at pc=0x00007fb22fdf64e2, pid=2670, tid=0x00007fb1f6bed700
JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode linux-amd64 compressed oops)
Problematic frame:
C [libzip.so+0x124e2] newEntry+0x62
Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
[ timer expired, abort... ]
这是什么缘故呢?
Steps to reproduce the problem 复现步骤
数据总量150G,两种label的边分别为78G和64G,近7亿条边,顶点3G,共6千万顶点
使用loader传输时,server和loader长时间共占用30G内存,且当edge imported达到5亿4千万时,传输速度会非常慢
loader命令 bin/hugegraph-loader -g hugegraph -f ethereum/struct.json -s ethereum/schema.groovy -h 192.168.1.2 -p 7878
Status of loaded data 数据状态
Vertex/Edge summary 数据量
Vertex/Edge example 数据示例
边数据:
{“source_address”:"xxxxxxxxx","target_address":"xxxxxxxxxx","name":"xxxxxxxxxxxxxxxx","money":xxx}
Specifications of environment 环境信息
The text was updated successfully, but these errors were encountered: