我想更好地监控 scrapy 蜘蛛在运行时的内存使用情况(上下文:我在 Heroku 上运行它,看看如何重组抓取以更多地保持在我正在使用的测功机的范围内) .
我已打开
MEMUSAGE_*
设置。但为了更密切的监控,我想知道......
有什么方法可以让蜘蛛在运行时输出当前的内存使用情况吗?我正在考虑可以在蜘蛛代码中间的
print
语句中使用一些东西
当蜘蛛运行时,我如何才能看到它使用了多少内存?我想我在
top -o cpu
的输出中看到它是 python 3.12
,但我不确定它是蜘蛛,因为它的内存使用量似乎不像在 Heroku 上运行的同一个蜘蛛那样快速累积
扩展获取内存使用情况的代码并在代码中调用它:
import resource
def get_virtual_size() -> int:
size: int = resource.getrusage(self.resource.RUSAGE_SELF).ru_maxrss
if sys.platform != "darwin":
# on macOS ru_maxrss is in bytes, on Linux it is in KB
size *= 1024
return size