2015-12-04 5 views
7

h2oのメモリサイズより大きなデータをロードすることを試しています。h2oのメモリサイズより大きいデータをロードする

言及blog H 2 O:A note on Bigger Data and GC: We do a user-mode swap-to-disk when the Java heap gets too full, i.e., you’re using more Big Data than physical DRAM. We won’t die with a GC death-spiral, but we will degrade to out-of-core speeds. We’ll go as fast as the disk will allow. I’ve personally tested loading a 12Gb dataset into a 2Gb (32bit) JVM; it took about 5 minutes to load the data, and another 5 minutes to run a Logistic Regression.

をここではh2o 3.6.0.8に接続するRコードである:

h2o.init(max_mem_size = '60m') # alloting 60mb for h2o, R is running on 8GB RAM machine 

私はH 2 O中に169メガバイトのCSVファイルをロードしよう

java version "1.8.0_65" 
Java(TM) SE Runtime Environment (build 1.8.0_65-b17) 
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode) 

.Successfully connected to http://127.0.0.1:54321/ 

R is connected to the H2O cluster: 
    H2O cluster uptime:   2 seconds 561 milliseconds 
    H2O cluster version:  3.6.0.8 
    H2O cluster name:   H2O_started_from_R_RILITS-HWLTP_tkn816 
    H2O cluster total nodes: 1 
    H2O cluster total memory: 0.06 GB 
    H2O cluster total cores: 4 
    H2O cluster allowed cores: 2 
    H2O cluster healthy:  TRUE 

Note: As started, H2O is limited to the CRAN default of 2 CPUs. 
     Shut down and restart H2O as shown below to use all your CPUs. 
      > h2o.shutdown() 
      > h2o.init(nthreads = -1) 

IP Address: 127.0.0.1 
Port  : 54321 
Session ID: _sid_b2e0af0f0c62cd64a8fcdee65b244d75 
Key Count : 3 

を与えます。エラーを投げ

dat.hex <- h2o.importFile('dat.csv') 

、メモリerrorのうちの指標である

Error in .h2o.__checkConnectionHealth() : 
    H2O connection has been severed. Cannot connect to instance at http://127.0.0.1:54321/ 
Failed to connect to 127.0.0.1 port 54321: Connection refused 

質問:H 2 Oは、(ブログの引用としてディスクメカニズムへのスワップは、上記言う)のデータをロードすると、そのメモリ容量よりも大きく設定約束した場合、これはデータをロードするための正しい方法は何ですか?

答えて

5

パフォーマンスが非常に悪かったため、しばらく前にスワップディスクを無効にしました。出血エッジ(最新のものではない)には、 " - クリーナ"( "メモリクリーナー"用)を有効にするフラグがあります。
クラスタには非常に小さなメモリがあります。 H2O cluster total memory: 0.06 GB これは60MBです! JVMを起動するだけでも十分であり、H2Oはほとんど実行されません。 H2Oが適切に現れれば、スワップ・ツー・ディスクを気にする必要はないと私は驚いています。スワッピングは、データをスワップすることだけに限られます。スワップ・テストを実行しようとしている場合は、JVMを1または2ギガ・ラムまで上げて、それ以上の合計データ・セットをロードします。

クリフ

+0

ありがとうございました。私はH2OのRAM使用を意図的に制限する 'swap-to-disk'機能をテストしようとしていました。私はその最先端のリリースとより多くのRAMを行うでしょう。 – talegari

+0

@ Cliff、あなたが知っている人の中には、サムスン960 ProのようなPCIE3-NMVe-M.2接続のソリッドステートディスクデバイスのはるかに高速(桁違い速い)のスワップディスクを使用しようとしましたか?私の運は私のシステムでは大きすぎるデータセットを見つけ続けていることです...私はH2Oとその1つのためのデータマイニングリグを特別に構築することができます。 。 –

関連する問題