我正在尝试为Freebase创建一个本地SPARQL端点,以便运行一些本地实验。在使用Virtuoso 7时,我经常看到服务器被OOM杀手杀死。我已按照here所述的所有必要步骤进行操作。我还对RDF Performance Tuning中提到的virtuoso.ini
文件进行了必要的更改。
我的系统配置是:
我也有足够的硬盘。
关于数据转储,我将freebase数据转储(23GB gzipped,大约250 GB未压缩)拆分为10个较小的gzip压缩文件,每个文件包含200,000,000个三元组。
以下是我对virtuoso.ini
NumberOfBuffers = 1360000
MaxDirtyBuffers = 1000000
MaxCheckpointRemap = 340000 # (1/4th of NumberOfBuffers)
除此之外,我还设置了2中提及的vm.swapiness = 10
。
我错过了一些明显的东西吗?
P.S .:
我也试过了virtuoso-opensource-6.1
。但它看起来太慢了。
我有一个有趣的观察结果是,在批量加载过程中,virtuoso-6.1内存消耗上升得太慢,但可能是因为一般索引本身太慢了。
我的另一个观察结果是,virtuoso-6.1在开始时占据几乎可以忽略不计的内存(500MB的顺序),而virtuoso-7从大约6500 MB开始并且快速增长。
在这方面的任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
您使用的缓冲区数量有点太高。不要忘记操作系统和其他进程也会占用一些内存。
您使用的是哪个确切版本? (发展或稳定的分支?)
您使用磁盘条带化吗?
我也将freebase加载到Virtuoso 7,但我使用的是较小的文件。大约260个gzipped文件,每个10密耳三倍=大约100M。每次加载文件后都会执行提交。
可能会更容易