linux如何限制指定进程的内存使用量?
大家好!
我使用的系统是open suse 11.2, 在做程序的编译和链接时,发现当开始链接时,系统反应变得很慢,其它进程就像被卡住了似的。使用top查看,发现2G内存几乎被用光了,只剩下45M,虚拟内存也被用的2G,我已经将swap分区扩展到4G了。我猜测可能是因为物理内存被用光造成系统反应变慢的。
linux下有没有什么办法限制指定进程的内存使用量?
谢谢各位!!
楼上帖的博客里写的还算详细
楼主可以google一下啊
up
一楼的办法应该是可以达到的吧,我正在试,不过还是有些麻烦。我只是想限制ld进程的内存使用量,不想限制整个用户的内存。如果新建一个用户来运行ld,因为有权限和home路径的问题,有些麻烦。希望能有一个方法来限制当前用户的物理内存使用量。
我发现使用PAM不起作用。我新建了一个用户,并在/etc/security/limit.conf中设置该用户rss为500M,但是最后运行ld,发现它还是用了1.3g物理内存。
build hard rss 500000
我以为是因为没有重启系统造成没有应用,后来重启系统,依然无法限制用户的物理内存。
有人知道没?
setrlimit、getrlimit
需要root权限
setrlimit
详细参见man或者 UNIX环境高级编程
谢谢!!
我查了一下,setrlimit是一个函数调用,并且只能由应用程序调用来控制自身进程的资源使用量。我的目的是控制系统中其它进程的资源使用量。所以这个函数不适合。
既然这样的话
我想linux没有提供修改别的进程资源限制的函数
每个进程会继承父进程的资源限制
如果你能让你要控制的进程成为你创建的父进程的子孙
那么setrlimit 还是可以的
不然,只能自己写内核模块
修改指定
相关问答:
我用RPM报安装了一个老版本的JRE,后来想装新版本的,
不过,我把/usr/java目录直接给删了,
后再安装的时候,总是提示版本冲突,
而且我用RPM包卸载时也找不到文件了。
我对LINUX不熟悉,希望高手帮忙。
http: ......
由于我才刚刚接触socket编程,自己写了一个简单程序,但就是在运行的时候出现段错误,无法解决,现在我把源代码贴出来,请各位大虾指正一下!谢谢!
#include<stdio.h>
#include<stdlib.h>
#include& ......
在自己的电脑上安装了ubuntu 就是想玩一下3D桌面,于是下载了
compizconfig-settings-manager
emerald
simple-ccsm
fusion
这些东西,安装完之后,我在电脑里点击了emerald ......
引用内容vsking 2009-12-25 22:56:52
现在是win2008和iis8的时代了,不要还停留在iis5时代,win2008被评为十佳操作系统之首不是偶然的,你要是..
我的问题是:
最近想买个服务器,看了dell上的系统定制选择,一些 ......
在LINUX裏安裝 CURL 時,出現如下報錯
checking for SSL support in libcurl... no
checking for curl_easy_perform in -lcurl... no
configure: error: There is something ......