问题标签 [setrlimit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
278 浏览

resources - C++ 中的资源管理器类

我目前正在实现一个服务器程序,它分叉一个进程来处理客户端的请求。分叉的进程必须在 cpu、内存、磁盘和其他系统属性方面得到很好的控制。我注意到实现资源管理器类的最简单方法是环绕 C rlimit。但是,rlimit似乎太基础了。我被告知现代软件技术例如cgroups并且LXC也可以做好工作。在我的应用程序中,分叉的进程必须通过本地共享内存或远程网络套接字(应用程序在机器集群上运行)相互通信。在这种情况下,是cgroups还是LXC负担得起?我注意到一个容器是完全隔离的,不能相互通信。任何意见将不胜感激!

0 投票
1 回答
871 浏览

resources - setrlimit 不适用于限制最大内存量

我正在学习使用setrlimitand的 linux 资源控制getrlimit。这个想法是限制可用于给定进程的最大内存量:

上面的代码将内存限制为 100 字节(软和硬)。但是,malloc仍然返回没有错误。代码有什么问题吗?我得到的输出是:

0 投票
2 回答
2782 浏览

r - 有没有办法限制正在运行的 R 进程的数量

我使用doMC使用包的那个multicore。它发生了(几次),当我(在控制台中)调试时,它侧身并被fork-bombed

R 有 setrlimit() 系统调用吗?在 pyhton 中,我会使用resource.RLIMIT_NPROC

理想情况下,我想将运行的 R 进程数限制为一个数字

编辑:操作系统是 linux CentOS 6

0 投票
1 回答
1132 浏览

c - 为子进程设置时间限制

我正在创建一个 shell 并在创建自己的ulimit函数时遇到问题:我想限制一个进程的时间,并使用setrlimit它。但似乎当我打电话时execvp,时间限制被抹去了。

在此示例代码中,当我让 时while(1),子进程收到 aSIGXCPU并在 3 秒后被杀死。但是当我这样做时execvp(...),它永远不会被杀死。

如果我是对的并且我设置的时间限制setrlimit被删除了,那该怎么办呢?

感谢帮助。

0 投票
1 回答
265 浏览

python - 限制 Python Bottle 网络服务器的 CPU 使用率

我使用 Python + Bottle作为网络服务器。

由于我将生产服务器用于许多其他网站,例如,我不希望 Python + Bottle 占用 70% 的 CPU。

如何限制 Python Bottle 网络服务器的 CPU 使用率?

我正在考虑使用resource.setrlimit,但这是一个好方法吗?

例如,我们应该使用哪种语法resource.setrlimit将限制设置为 CPU 的 20%?

0 投票
2 回答
2163 浏览

c++ - 在 Windows 上以编程方式设置堆栈大小

WinAPI 是否可以像在 Linux 上一样在运行时为当前线程设置堆栈大小setrlimit?我的意思是增加当前线程的保留堆栈大小,如果它对于当前要求来说太小了。这是一个库,可以由其他编程语言的线程调用,因此在编译时设置堆栈大小不是一个选项。

如果没有,关于将堆栈指针更改为动态分配的内存块的装配蹦床之类的解决方案有什么想法吗?

常见问题解答:代理线程是一个万无一失的解决方案(除非调用者线程的堆栈非常小)。但是,线程切换似乎是性能杀手。我需要大量的堆栈用于递归或_alloca. 这也是为了性能,因为堆分配很慢,特别是如果多个线程从堆中并行分配(它们被相同的libc/CRT互斥锁阻塞,因此代码变为串行)。

0 投票
1 回答
1017 浏览

linux - 限制核心文件大小

我正在尝试截断我的应用程序的核心文件大小。我尝试使用setrlimit()函数但没有运气。

观察:
我设置rlim_cur = 270which is 270 * 1024 = 276480 bytes,如果核心文件小于276480 bytes只有那么核心文件正在生成。276480 bytes不会生成超过 size 的核心文件。当我设置rlim_cur = RLIM_INFINITY所有核心文件时,都会生成。基本上我无法将文件大小截断为所需大小。请建议。

提前致谢。

0 投票
0 回答
181 浏览

python - 当 setrlimit 已经设置为 0 时分叉?

我正在准备一个脚本来评估来自其他人的一些代码,因此,我需要尽可能地限制执行环境。

该脚本是在 python3.4 下使用 psutil 和 subprocess 开发的,要运行的目标文件是编译后的 c++ 代码,其中包含我应该避免的一切(非常大的内存分配、高 cpu 使用率、fork 创建等)。

作为文档,我已经阅读了这个页面这个存储库以及这个教程,但是,当我从 python 调用这个过程时,它似乎忽略了任何施加的限制。

执行我的脚本的指令:

为什么要睡1?因为根据这个问题,可以无限制地调用一个进程,因此,我让睡眠来延迟它,并给 python 时间来限制所有进程。

preExecFunction 在做什么?基本上是通过调用python中资源的setrlimit函数来限制环境(我给出的第一个链接中的文档)

CPP代码段:

CPP代码的输出

给予的任何帮助将不胜感激。谢谢!

编辑:我以 root 用户身份运行 python 脚本,否则我无法运行 psutil 库。

0 投票
0 回答
253 浏览

linux - 我使用 RLIMIT_RSS 来限制我的程序的 RES,但它不起作用

当我想使用 struct rlimit 来限制我的程序的内存,但 RLIMIT_RSS 不起作用。我将我的 RSS 限制设置为 100 MiB。但是当我的测试程序使用大约 700 MiB 时,它仍然继续;

这是我的代码。

限制清单是这个。

这是我的测试代码。

这是我的测试程序的 proc 状态文件。

您可以看到 VmRSS 大约有 700 MiB,但它并没有被杀死。

我在网上找了很久。但是没有用。请帮助或尝试提供一些想法如何实现这一目标。

提前致谢。

0 投票
1 回答
1085 浏览

go - 使用 rlimit 限制子进程的内存使用而不影响当前进程

我想使用 rlimit 限制子进程的内存使用。目前我们的代码如下:

但是,有时 Golang 运行时会在cmd.Start(). 似乎在cmd.Start()当前进程中会分配一些内存,如果当前内存使用率高于child_process_rlimit,则会引发错误。

我想知道有没有什么办法可以限制子进程的内存使用而不影响当前进程?