0

我正在测试 RIAK-CS 作为 S3 的替代方案。我目前有 3 个节点,每个节点具有 4GB RAM 和 2GB SWAP。我将 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 回答