如何为Python设置最大堆大小

如何为Python设置最大堆大小,python,scikit-learn,heap-memory,Python,Scikit Learn,Heap Memory,我想为我的python代码设置最大堆大小。 在我的服务器环境中,一个长时间运行且堆大小巨大的进程会自动终止。我已经知道如果堆大小大于40G,进程将被终止。如果在20G~30G左右,也可以。因此,我需要将最大堆大小保持在20G以内 为了认识到这一点,我在stackoverflow()中发现了类似的问题,并尝试了一下 这是我的代码头 import resource rsrc = resource.RLIMIT_DATA resource.setrlimit(rsrc, (7340032, 20971

我想为我的python代码设置最大堆大小。 在我的服务器环境中,一个长时间运行且堆大小巨大的进程会自动终止。我已经知道如果堆大小大于40G,进程将被终止。如果在20G~30G左右,也可以。因此,我需要将最大堆大小保持在20G以内

为了认识到这一点,我在stackoverflow()中发现了类似的问题,并尝试了一下

这是我的代码头

import resource
rsrc = resource.RLIMIT_DATA
resource.setrlimit(rsrc, (7340032, 20971520))
但如果我用top命令检查进程状态,我的代码就超过了这个限制。它需要大约45克内存

我设定限制的方式有什么问题

我的python代码使用scikit学习库执行PCA分析。 我确认numpy数组大小约为6G,带有nbytes属性


谢谢

如果您的程序试图使用超过其限制的资源,会发生什么情况?降低其限制不会降低其要求。您是否使用提升的权限运行应用程序?