系统资源不足(在shell脚本中执行许多程序)

2024-05-14 19:24:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在大学的服务器上运行一个shell脚本。在这个shell脚本中,我将执行java、c、c++、python和perl程序。因为每个程序都会执行很多次(我是一名助教,会用许多不同的输入测试学生的程序)。服务器总是给我一个错误:“系统资源不足”。我想这是因为我没有释放资源。在

我听说在shell脚本中运行一个程序一次将激活一个进程。所以我想可能有太多的进程,分配给我的系统资源已经用完了。在

有办法解决这个问题吗?在

我将shell代码的一部分设置为:

^{1}$

谢谢


Tags: 代码程序服务器脚本进程错误资源java
2条回答

因为你是自动运行学生的程序,那么可能是他们的程序写得不好,使用的RAM比由更熟练的程序员编写的类似程序所需要的要多。甚至Java和Python程序的编写也可能导致内存泄漏(想想一个堆栈,它永远不会从中弹出任何东西,只会得到更多的东西)。在

你应该测试你的设置与已知的良好实现的任务,你将评级为一个健全的检查。在

你还应该看看学生作业的源代码。尤其是如果你在他们的作业中发现了错误。在

您也可能只是有一个过载的系统,可能需要在另一台机器上运行这些测试。使用一台没有其他用户的机器是这类事情的一个好主意,因为你和你正在测试的程序之外的东西不太可能把你的测试搞砸。在

在运行测试以监视资源使用情况时,您可能还希望在另一个终端上的计算机上保持top运行。在

您似乎在运行maxconnect4,然后在开始下一次运行之前等待它完成,所以我认为您的shell脚本本身不是isuue。最大的问题是maxconnect4在做什么。它可能非常需要资源,或者它本身可以启动子进程并返回到脚本。在

我会尝试一些实验,比如手动启动maxconnect4几次,你认为资源错误吗?在

我也会使用系统工具进行调查。例如,使用ps来查看是否有许多进程正在运行。使用vmstat查看CPU和内存使用情况。在

相关问题 更多 >

    热门问题