我正在测试RIAK-CS作为S3替代方案。 我目前有3个节点,每个节点有4GB RAM和2GB SWAP。我向RIAK-CS推送了10GB的数据。除了高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()
为什么会发生这种情况的任何解释?
谢谢!
答案 0 :(得分:0)