GraphDB不会使用所有可用内存

时间:2017-11-02 17:35:37

标签: sparql rdf graphdb

我在GraphDB上运行“大”SAPRQL INSERT WHERE,它似乎没有使用所有可用的物理RAM。

我使用的是64GB,4核CentOS 6.9服务器

-bash-4.1$ free -m
             total       used       free     shared    buffers     cached
Mem:         64428      21897      42530          0        107       2877
-/+ buffers/cache:      18912      45515
Swap:         8095          0       8095

我像这样开始使用GraphDB 8.3.0:

graphdb -Xms50g -Xmx50g -d

这是一个非推理回购,如果这有任何区别

这是sysinfo页面所说的内容

申请信息:

OS: Linux 2.6.32-696.6.3.el6.x86_64
Java: Oracle Corporation 1.8.0_144
Memory used: 5554 MB
Max memory: 50977 MB

JVM参数

-Xms1g
-Djava.awt.headless=true
-Dfile.encoding=UTF-8
-Djava.net.preferIPv4Stack=true
-XX:+UseParallelGC
-XX:-OmitStackTraceInFastThrow
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/usr/local/graphdb/heapdump.hprof
-XX:OnOutOfMemoryError=kill -9 %p
-Dgraphdb.dist=/usr/local/graphdb
-Xms50g
-Xmx50g

最高输出:

top - 13:32:23 up 22:37,  1 user,  load average: 1.00, 0.96, 0.76
Tasks: 153 total,   1 running, 152 sleeping,   0 stopped,   0 zombie
Cpu(s): 25.1%us,  0.2%sy,  0.0%ni, 74.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  65974292k total, 22390544k used, 43583748k free,   109900k buffers
Swap:  8290300k total,        0k used,  8290300k free,  2915740k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 4071 sprqlusr  20   0 56.2g  17g  22m S 101.0 28.4  16:53.29 /usr/local/java/bin/java -Xms1g -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -XX:+UseParallelGC -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpO

这是内存使用页面的截图

1 个答案:

答案 0 :(得分:2)

默认情况下,GraphDB将为其全局页面缓存分配50%的可用堆,该结构负责缓存所有磁盘页面并最小化I / O时间。该值在conf / graphdb.properties中由一个以graphdb.page.cache.size开头的行控制。在您的方案中,全局缓存默认设置为25GB。

根据经验,如果所有索引都已打开,您可以计算出具有10亿个RDF语句的存储库将占用大约100GB的磁盘空间。从堆内存使用情况图中,您的数据集看起来不够大,无法填充缓存大小。

对于使用快速SSD磁盘的设置,分配更多缓存大小超过总存储库大小的15-30%几乎没有什么区别。由于GC周期越长,设置更大的堆大小甚至可能会损害repo的性能。我强烈建议您将最大堆大小限制为小于32GB,以便从-XX:+UseCompressedOops中受益,这应该几乎相当于没有指针压缩的50GB堆大小。此行为与管理big heaps sizes的其他Java应用程序一致。