Bash 在centos 7中使用pid进行内存限制预处理
我希望在脚本中使用pid将内存限制在一个进程中,我希望看看我可以使用什么,比如cpulimit或其他一些软件,Linux中进程的内存限制通常如下所示:Bash 在centos 7中使用pid进行内存限制预处理,bash,centos,Bash,Centos,我希望在脚本中使用pid将内存限制在一个进程中,我希望看看我可以使用什么,比如cpulimit或其他一些软件,Linux中进程的内存限制通常如下所示: $ ulimit -v [memory limit kilobytes] $ ./[program who's memory you want to limit] $ ulimit -v unlimited 您可以通过setrlimit系统调用()为当前进程设置内存限制 运行要限制谁的内存的进程。创建时,子对象将继承父对象的限制 中提琴!您现在
$ ulimit -v [memory limit kilobytes]
$ ./[program who's memory you want to limit]
$ ulimit -v unlimited
setrlimit
系统调用()为当前进程设置内存限制$ ulimit -v [memory limit kilobytes]
$ ./[program who's memory you want to limit]
$ ulimit -v unlimited
一个很好的工具就是Firejail。使用Firejail,我们可以生成内存限制为512字节的子进程,如下所示:
firejail --rlimit-as=number [command]
但是,与ulimit不同,firejail默认情况下不随CentOS一起安装
我知道这并不是你想要的。我告诉您如何启动一个内存受限的进程,而严格来说,您只询问如何通过PID修改运行进程可用的内存
与CPU和文件访问限制不同,任何Linux发行版上的内存限制如果在进程创建时执行,而不是在运行时执行,则要简单得多。这是由于内核的设计,特别是我前面提到的setrlimit
syscall。所以尽管这是可能的
但是如果您完全决定动态更改现有进程的内存限制,可以使用。您所要做的就是创建一个具有特定内存限制的cgroup,并将您的进程放在该cgroup中。你应该这样做:
mkdir /sys/fs/cgroup/memory/groupname
echo 1000 > /sys/fs/cgroup/memory/groupname/memory.limit_in_bytes
echo pid > /sys/fs/cgroup/memory/groupname/cgroup.procs
这种方法更接近您所要求的,但是第一种方法要简单得多,如果它对您的问题可行的话,我强烈推荐它。祝你好运 Linux中进程的内存限制通常如下所示:
$ ulimit -v [memory limit kilobytes]
$ ./[program who's memory you want to limit]
$ ulimit -v unlimited
setrlimit
系统调用()为当前进程设置内存限制$ ulimit -v [memory limit kilobytes]
$ ./[program who's memory you want to limit]
$ ulimit -v unlimited
一个很好的工具就是Firejail。使用Firejail,我们可以生成内存限制为512字节的子进程,如下所示:
firejail --rlimit-as=number [command]
但是,与ulimit不同,firejail默认情况下不随CentOS一起安装
我知道这并不是你想要的。我告诉您如何启动一个内存受限的进程,而严格来说,您只询问如何通过PID修改运行进程可用的内存
与CPU和文件访问限制不同,任何Linux发行版上的内存限制如果在进程创建时执行,而不是在运行时执行,则要简单得多。这是由于内核的设计,特别是我前面提到的setrlimit
syscall。所以尽管这是可能的
但是如果您完全决定动态更改现有进程的内存限制,可以使用。您所要做的就是创建一个具有特定内存限制的cgroup,并将您的进程放在该cgroup中。你应该这样做:
mkdir /sys/fs/cgroup/memory/groupname
echo 1000 > /sys/fs/cgroup/memory/groupname/memory.limit_in_bytes
echo pid > /sys/fs/cgroup/memory/groupname/cgroup.procs
这种方法更接近您所要求的,但是第一种方法要简单得多,如果它对您的问题可行的话,我强烈推荐它。祝你好运 可以尝试使用cgroup,ref:您是在询问编写代码还是操作系统级配置?后者在这里是离题的,最好是在。您可以尝试使用cgroups,ref:您是在询问编写代码还是操作系统级配置?后者在这里是离题的,在这里更受欢迎。