问题描述
仅从SFTP位置下载5k文件并读取文件并将数据加载到数据库的Python脚本 执行步骤如下所示 SFTP连接 获取要处理的文件列表 一个接一个地迭代 一种。下载一个文件 b。读取档案 C。将数据加载到数据库 d。删除档案 (对所有文件重复步骤3)
在代码级别,我看不到任何内存泄漏。但是我的容器退出并出现内存错误。 如果我在本地计算机上运行并检查容器统计信息,则会看到它要求70mb的空间来处理单个文件(以存储临时数据等)。当处理文件2时,它大约要再请求70mb,而不会释放先前的非活动内存。
我阅读了一些有关Python GC的内容,看起来,与许多其他语言不同,Python GC不会将内存返回给操作系统,而是会返回到其内部内存分配器。关于如何克服这个问题的任何想法
def batch_load(self):
logging.info("SFTP to DB")
logging.info("SFTP Operations")
files = self.sftp_src_strategy.list_contents()
for file in files:
exec_date = file.split('.')[0][-8:]
execution_date = f'{str(exec_date[:4])}-{str(exec_date[4:6])}-{str(exec_date[6:8])}'
header_row,data = self.sftp_src_strategy.download_data(execution_date,exec_date,file)
logging.info("Sftp Download Success + Data extracted from file")
logging.info("DB Operations")
self.db_des_strategy.load_data(execution_date,header_row,data)
logging.info("Data moved to db from SFTP file successfully")
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)