我们有一个应用程序引擎应用程序,它将许多相对较大的文件写入谷歌云商店。这些文件是动态创建的CSV,因此我们使用Python的StringIO。StringIO作为缓冲区和csv。writer
作为写入该缓冲区的接口。
通常,我们的流程如下所示:
# imports as needed
# (gcs is the Google Cloud Store client)
buffer = StringIO.StringIO()
writer = csv.writer(buffer)
# ...
# write some rows
# ...
data = file_buffer.getdata()
filename = 'someFilename.csv'
try:
with gcs.open(filename, content_type='text/csv', mode='w') as file_stream:
file_stream.write(data)
file_stream.close()
except Exception, e:
# handle exception
finally:
file_buffer.close()
据我们所知,csv。writer
不需要自己关闭。相反,只需要关闭上面的缓冲区
和文件流
。
我们在appengine的任务队列调用的延迟的
中运行上述过程。最终,在调用了几次任务后,我们会出现以下错误:
在为总共11个请求提供服务后,超过了128 MB的软专用内存限制,达到142 MB
显然,我们的应用程序内存泄漏。然而,如果上面的代码是正确的(我们承认可能不是这样),那么我们唯一的另一个想法是,通过服务我们的请求(如错误消息所示),一些大量的内存被保存。
因此,我们想知道在执行延迟的
过程中,appengine是否保留了一些实体。我们还应该注意,尽管有这些错误消息,我们的CSV最终还是成功地编写了。
所描述的症状不一定表示应用程序内存泄漏。可能的替代解释包括:
相关Q
问题内容: 我们有一个App Engine应用程序,可将许多较大文件写入Google Cloud Store。这些文件是动态创建的CSV文件,因此我们将Python用作缓冲区和写入该缓冲区的接口。 通常,我们的过程如下所示: 据我们了解,它们本身不需要关闭。而是,仅上述内容和需要被关闭。 我们在由App Engine的任务队列调用的中运行上述过程。最终,在几次调用我们的任务后,我们得到以下错误:
我看到了这个Python问题:应用引擎延迟:跟踪内存泄漏 ...同样,我也遇到了这个可怕的错误: 在为总共384个请求提供服务后,超过了128 MB的软专用内存限制 ... 处理此请求后,发现处理此请求的进程占用了太多内存,因此被终止。这可能会导致应用程序的下一个请求使用新进程。如果经常看到此消息,则应用程序中可能存在内存泄漏。 根据另一个问题,可能是“实例类”太小,无法运行这个应用程序,但是在增
问题内容: 我看到了这个Python问题:推迟了AppEngine:跟踪内存泄漏 …同样,我遇到了这个可怕的错误: 总共为384个请求提供服务后,超出了128 MB的软私有内存限制 … 处理此请求后,发现处理此请求的进程使用了过多的内存并被终止。这很可能导致新流程用于您的应用程序的下一个请求。如果您经常看到此消息,则可能是应用程序内存泄漏。 根据另一个问题,可能是“实例类”太小而无法运行此应用
我有以下代码试图在一个大表上循环(~100k行;~30GB) 但是,我不断遇到以下错误: 处理此请求时,发现处理此请求的进程占用了太多内存,因此终止。这可能会导致应用程序的下一个请求使用新进程。如果经常看到此消息,则应用程序中可能存在内存泄漏。 ...有时候...... 在处理总共9个请求后,超过了128 MB的软私有内存限制,达到154 MB 我改变了我的代码,所以我总是在任何给定的时间只提取1
我试图在我们非常小且简单的Spring Boot应用程序中跟踪并确定内存泄漏的根本原因。 它使用以下内容:-Spring Boot 2.2.4-azure servicebus jms Spring Boot starter 2.2.1-MSSQL 功能:该应用程序只发送Azure ServiceBus队列,存储数据并将数据发送到其他目的地。这是一个小应用程序,所以它很容易启动64兆的内存,尽管我
问题内容: 这是我几个月来一直试图寻找的问题。我有一个运行的Java应用程序,它处理xml提要并将结果存储在数据库中。存在间歇性的资源问题,很难追踪。 背景: 在生产包装盒上(问题最明显的地方),我对包装盒的访问不是特别好,并且无法使Jprofiler运行。那个盒子是一个运行centos5.2,tomcat6和java 1.6.0.11的64位四核8GB计算机。它以这些java-opts开头 技术