从GCS存储桶读取时内存泄漏

时间:2016-10-12 04:08:14

标签: google-app-engine google-cloud-storage google-compute-engine google-api-client managed-vm

import cloudstorage as gcs
import logging

DEFAULT_BUFFER_SIZE = 1024 * 1024

default_retry_params = gcs.RetryParams(
    initial_delay=0.2,
    max_delay=5.0,
    backoff_factor=2,
    max_retry_period=15)

gcs.set_default_retry_params(default_retry_params)

class GCSClient(object):
    def __init__(self):
        logging.info('Created a GCS client')
        self._gcs = gcs

@staticmethod
def create_gcs_client():
    return GCSClient()

def readlines(self, filename, buffer_size=DEFAULT_BUFFER_SIZE):
    with self._gcs.open(filename, mode='r', read_buffer_size=buffer_size) as gcs_file:
        for line in gcs_file:
            yield line

我在GAE上的托管虚拟机上运行此操作,当我登录托管虚拟机并查看内存使用情况时,我发现它不断增加。该应用程序基本上使用此客户端读取数据并解析它以计算一些统计信息。读取的数据量大约为100个文件,每个10Mb,但我按块大小读取它。

这是库的正确用法吗?

0 个答案:

没有答案