0

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()

なぜこれが起こるのか説明はありますか?

ありがとうございました!

4

1 に答える 1

0

これは、バージョン 1.4 で修正された問題に関連している可能性があります。

于 2013-10-03T12:45:18.590 に答える