一 简介
功能:控制shell程序的资源(ulimit为shell内建指令,可用来控制shell执行程序的资源)
语法:ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆栈大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]
参数:
-a | 显示目前资源限制的设定 |
-c | 设定core文件的最大值,单位为区块 |
-d | 程序数据节区的最大值,单位为KB |
-f | shell所能建立的最大文件,单位为区块 |
-H | 设定资源的硬性限制,也就是管理员所设下的限制 |
-m | 指定可使用内存的上限,单位为KB |
-n | 指定同一时间最多可打开的文件数(默认1024) |
-p | 指定管道缓冲区的大小,单位512字节 |
-s | 指定堆叠的上限,单位为KB |
-S | 设定资源的弹性限制 |
-t | 指定CPU使用时间的上限,单位为秒 |
-u | 用户最多可启动的进程数目 |
-v | 指定可使用的虚拟内存上限,单位为KB |
二 系统调优
可用ulimit -a 显示目前资源限制的设定
1 暂时修改,重启无效(直接在命令行输入)
#修改用户最大进程数
[root@localhost ~]# ulimit -u 100000
#修改每个进程可以打开的文件数目 [root@localhost ~]# ulimit -n 65535
#下为建议设置成无限制(unlimited)的一些重要设置
ulimit -d unlimited ulimit -m unlimited ulimit -s unlimited ulimit -t unlimited ulimit -v unlimited
2 永久修改(通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件)
设置 Linux 系统的最大进程数和最大文件打开数
[root@localhost ~]# egrep -v "^$|^#" /etc/security/limits.conf * soft noproc 11000 # *代表针对所有用户 * hard noproc 11000 # noproc代表最大进程数 * soft nofile 65535 # nofile代表最大文件打开数 * hard nofile 65535
修改所有 linux 用户的环境变量文件
[root@localhost ~]# vim /etc/profile ulimit -u 10000 ulimit -n 65535 ulimit -d unlimited ulimit -m unlimited ulimit -s unlimited ulimit -t unlimited ulimit -v unlimited