ulimit和setrlimit轻松修改task进程资源上限值
来源:互联网 发布:申请淘宝介入 编辑:程序博客网 时间:2024/04/29 01:27
ulimit和setrlimit轻松修改task进程资源上限值 Resouce limit in linux system在linux系统中,Resouce limit指在一个进程的执行过程中,它所能得到的资源的限制,比如进程的core file的最大值,虚拟内存的最大值等。Resouce limit的大小可以直接影响进程的执行状况。其有两个最重要的概念:soft limit 和 hard limit。struct rlimit {rlim_t rlim_cur; /* Soft limit */rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */};soft limit是指内核所能支持的资源上限。比如对于RLIMIT_NOFILE(一个进程能打开的最大文件数,内核默认是1024),soft limit最大也只能达到1024。对于RLIMIT_CORE(core文件的大小,内核不做限制),soft limit最大能是unlimited。hard limit在资源中只是作为soft limit的上限。当你设置hard limit后,你以后设置的soft limit只能小于hard limit。要说明的是,hard limit只针对非特权进程,也就是进程的有效用户ID(effective user ID)不是0的进程。具有特权级别的进程(具有属性CAP_SYS_RESOURCE),soft limit则只有内核上限。我们可以来看一下下面两条命令的输出。sishen@sishen:~$ ulimit -c -n -score file size (blocks, -c) 0open files (-n) 1024stack size (kbytes, -s) 8192sishen@sishen:~$ ulimit -c -n -s -Hcore file size (blocks, -c) unlimitedopen files (-n) 1024stack size (kbytes, -s) unlimited-H表示显示的是hard limit。从结果上可以看出soft limit和hard limit的区别。unlimited表示no limit, 即内核的最大值。对于resouce limit的读取修改,有两种方法。使用shell内建命令ulimit 使用getrlimit和setrlimit API ulimit是改变shell的resouce limit,并达到改变shell启动的进程的resouce limit效果(子进程继承)。usage:ulimit [-SHacdefilmnpqrstuvx [limit]]当不指定limit的时候,该命令显示当前值。这里要注意的是,当你要修改limit的时候,如果不指定-S或者-H,默认是同时设置soft limit和hard limit。也就是之后设置时只能减不能增。所以,建议使用ulimit设置limit参数是加上-S。getrlimit和setrlimit的使用也很简单,manpage里有很清楚的描述。int getrlimit(int resource, struct rlimit *rlim);int setrlimit(int resource, const struct rlimit *rlim);需要注意的是你在setrlimit,需要检查是否成功来判断新值有没有超过hard limit。如下例:if (getrlimit(RLIMIT_CORE, &rlim)==0) {rlim_new.rlim_cur = rlim_new.rlim_max = RLIM_INFINITY;if (setrlimit(RLIMIT_CORE, &rlim_new)!=0) {/* failed. try raising just to the old max */rlim_new.rlim_cur = rlim_new.rlim_max =rlim.rlim_max;(void) setrlimit(RLIMIT_CORE, &rlim_new);}}
- ulimit和setrlimit轻松修改task进程资源上限值
- ulimit和setrlimit轻松修改task进程资源上限值
- ulimit和setrlimit轻松修改task进程资源上限值
- ulimit和setrlimit轻松修改task进程资源上限值
- ulimit和setrlimit轻松修改task进程资源上限值
- 【转载】ulimit和setrlimit轻松修改task进程资源上限值
- 使用setrlimit修改进程打开的句柄数上限
- getrlimit和setrlimit 获得linux下面的进程可用资源
- setrlimit()&getrlimit()设置和获取Linux下进程可用资源
- getrlimit和setrlimit 获得linux下面的进程可用资源
- linux下进程的进程最大数、最大线程数、进程打开的文件数和ulimit命令修改硬件资源限制
- 修改linux资源限制---ulimit
- 修改linux资源限制---ulimit
- getrlimit和setrlimit函数 设置资源权限
- 修改ulimit值
- 修改ulimit值
- ulimit的修改(主要修改可以打开的文件数和进程数)
- CentOS修改ulimit(最大进程数和最大文件打开数)
- 127次掌声打断的浙江大学教授郑强的经典语录
- VC位图文件的保存与转换
- 移动便携只能设备:Android(Google)+Arm还是MeeGo(诺基亚)+x86(英特尔)还是Mac os 苹果
- Linux安装软件有关的命令(dpkg 安装deb包)
- POJ A Mini Locomotive(01背包)
- ulimit和setrlimit轻松修改task进程资源上限值
- 常用正则表达式
- C#文件操作
- 关于数组和List之间相互转换的方法
- 需找黑客师傅
- Selenium Basic Commands
- remedy安装
- 关于虚析构函数
- SVN版本控制工具的安装和配置