S3 の代替として RIAK-CS をテストしています。現在、それぞれ 4GB の RAM と 2GB の SWAP を備えた 3 つのノードがあります。10GB のデータを RIAK-CS にプッシュしました。IO が高いことを除けば、すべて問題ありませんでした。
次に、次の python スクリプトを使用してそのデータを取得しようとしました。
conn = boto.connect_s3(
    aws_access_key_id = access_key,
    aws_secret_access_key = secret_key,
    host = riak_host,
    proxy = riak_host,
    proxy_port = 8080,
    calling_format = boto.s3.connection.OrdinaryCallingFormat(),
    debug = 2,
    is_secure = False,
)
bucket = conn.create_bucket('bucket_name')
for row in rows:
    key=bucket.new_key(valid_key_name)
    if key.exists():
        key.open_read()
RIAKから物事が引き出され始めました。数分後、再び巨大な IO を除いて、riak-cs プロセスがますます多くのメモリを「消費」し、最終的に 6GB の RAM+SWAP をすべて消費したためにクラッシュしたことに気付きました。
Python スクリプトを次のように変更した場合、riak-cs は ~2-300 MB のままでした。FOR ループの接続に注意してください。
for row in rows:
    conn = boto.connect_s3(
        aws_access_key_id = access_key,
        aws_secret_access_key = secret_key,
        calling_format = boto.s3.connection.OrdinaryCallingFormat(),
        debug = 2,
        is_secure = False,
    )
    bucket = conn.create_bucket('bucket_name')
    key=bucket.new_key(valid_key_name)
    if key.exists():
    key.open_read()
なぜこれが起こるのか説明はありますか?
ありがとうございました!