我在内存受限的环境中工作,并使用带有 tarfile 库 ( http://docs.python.org/2/library/tarfile.html ) 的 Python 脚本来持续备份日志文件。
随着日志文件数量的增加(~74 000),我注意到系统在运行时有效地终止了这个备份进程。我注意到它消耗了大量的内存(在被操作系统杀死之前约为 192mb)。
我可以制作日志文件的 gzip tar 存档 ($ tar -czf),而不会出现问题或内存使用量过高。
代码:
import tarfile
t = tarfile.open('asdf.tar.gz', 'w:gz')
t.add('asdf')
t.close()
目录“asdf”由 74407 个文件名长度为 73 的文件组成。当你有大量文件时,不建议使用 Python 的 tarfile 吗?
我正在运行 Ubuntu 12.04.3 LTS 和 Python 2.7.3(tarfile 版本似乎是“$Revision: 85213 $”)。