2
私は大きなlmdbを持っています。約800Kのイメージです。 エントリを1つずつ読むだけです。 私のコードは非常に簡単で、次のようになります。python LMDBの大きなDB(メモリ制限エラー)
with env.begin() as txn:
cursor = txn.cursor()
for key, value in cursor:
print(key)
しかし、それはメモリ不足について70000エントリ(〜10ギガバイト)を読んだ後。 なぜ私は考えていない。 私は以下のようにしようとしましたが、うまくいきませんでした。
for r in range(0,env.stat()['entries']):
if r%10000==0:
if r!=0:
txn.commit()
cur.close()
txn=env.begin()
cur = txn.cursor()
print("Change Change Change "+ str(r))
sys.stdout.flush()
if r==0:
cur.first()
else:
cur.set_range(key)
cur.next()
key, value = cur.item()
どのような提案ですか?
を。これは、エラーログです: slurmstepd:*** JOB:ジョブ1008515は slurmstepdを殺され、メモリの制限(> 65536000 65537464)を超え1008515 ON mmm269 CANCELED AT 2016-05-18T15:09:41 *** slurmstepd:ある時点でステップのメモリ制限を超過しました。 slurmstepd:ジョブメモリの制限を超えました このthime私は64GBのRAMを割り当てましたが、もう一度それが発生しました。 私のDBの合計サイズは596 GBです。 – arash