我正在测试RIAK-CS作为S3的替代方案。我目前有3个节点,每个节点有4 4GB的RAM和2 4GB的交换空间。我向RIAK-CS推送了10 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进程正在“消耗”越来越多的内存,并最终崩溃,因为它占用了全部6 6GB的RAM+SWAP。
如果我像下面这样修改python脚本,riak-cs仍然只有2-300MB。注意connect in 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()你能解释为什么会发生这种情况吗?
谢谢!
发布于 2013-10-03 20:45:19
https://stackoverflow.com/questions/15918711
复制相似问题