我正在尝试上传一个8 8GB的文件到weka,以便使用Apriori算法。服务器配置如下:-它的8处理器服务器,每个物理地址空间中有4个核心=40位,虚拟地址空间=48位。它是一个64位的处理器。
物理内存=26 and,交换=27 and
JVM =64位。我们已经使用XmX选项为JVM堆分配了32 We。我们担心的是,加载这么大的文件需要很长的时间(大约8小时),java占用了107%的CPU和91%的内存,并且没有显示内存不足异常,weka显示正在读取文件。
请告诉我如何处理大文件,这里到底发生了什么?
里加兹,阿尼克特
发布于 2012-03-31 11:01:57
我不能和Weka说话,我不知道你的数据集,也不知道其中有多少元素。元素的数量很重要,就像在64bJVM中一样,指针很大,而且它们加在一起。
但不要创建大于物理RAM的JVM。交换根本不是Java的一个选项。交换JVM是一个死JVM。交换适用于很少使用的空闲进程。
还要注意,XMX值和物理堆大小并不相同,物理大小始终大于Xmx大小。
您应该预先分配您的JVM堆(Xms ),并尝试各种值,直到消耗了大部分物理==。这将限制完整的GC和内存碎片。如果您分配的内存空间占总内存空间的比例如此之大,那么在新系统上执行此操作也会有所帮助(有点帮助)。
但是无论您做什么,都不要让Java交换。交换和垃圾收集器不能混合。
https://stackoverflow.com/questions/9952585
复制相似问题