为什么我的内存和交换分区用python中的此多处理代码填充?

时间:2019-05-17 07:32:42

标签: python multithreading multiprocessing python-multiprocessing terminate

我正在尝试运行一些Selenium代码,由于网络请求失败,该代码过了一会儿就会出错。因此,我尝试运行3个不同的进程,这些进程在10分钟后重新启动。但是几个小时后,它告诉我没有记忆了。因此,我开始研究htop中的用法,当我将时间间隔降低到大约10秒时,内存消耗更快。我试图看看我能做些什么来确保不会发生这种情况。我有一个脚本,我在每个进程中都在运行,并且也想终止它,释放它的所有资源,然后重新启动它。

    procs = []
    while(True):
        for i in range(numProcs):
            procs.append(Process(target = run, args = (lock, )))
            if procs[i].is_alive() == False:
                procs[i].start()
                print(procs[i].pid)
        time.sleep(60*10)
        for i in range(numProcs):
            procs[i].terminate()
            print("terminating process")
        procs = []

我已经捆绑删除列表中的各个进程,这是第三个for循环。知道那是行不通的。

当我杀死管理进程的主脚本时,我相信会释放内存。我的交换分区仍然满了。

重启机器是我唯一能解决的问题。

0 个答案:

没有答案