共计 1344 个字符,预计需要花费 4 分钟才能阅读完成。
1. 什么是 ulimit?
ulimit 次要是用来限度过程对资源的应用状况的,它反对各种类型的限度,罕用的有:
内核文件的大小限度
过程数据块的大小限度
Shell 过程创立文件大小限度
可加锁内存大小限度
常驻内存集的大小限度
关上文件句柄数限度
调配堆栈的最大大小限度
CPU 占用工夫限度用户最大可用的过程数限度
Shell 过程所能应用的最大虚拟内存限度
2. 用法
ulimit 应用的根本格局为:ulimit [options] [limit]
具体的 options 参数含意如下表所示:
选项 含意
-a 显示以后零碎所有的 limit 资源信息。
-H 设置硬资源限度,一旦设置不能减少。
-S 设置软资源限度,设置后能够减少,然而不能超过硬资源设置。
-c 最大的 core 文件的大小,以 blocks 为单位。
-f 过程能够创立文件的最大值,以 blocks 为单位.
-d 过程最大的数据段的大小,以 Kbytes 为单位。
-m 最大内存大小,以 Kbytes 为单位。
-n 查看过程能够关上的最大文件描述符的数量。
-s 线程栈大小,以 Kbytes 为单位。
-p 管道缓冲区的大小,以 Kbytes 为单位。
-u 用户最大可用的过程数。
-v 过程最大可用的虚拟内存,以 Kbytes 为单位。
-t 最大 CPU 占用工夫,以秒为单位。
-l 最大可加锁内存大小,以 Kbytes 为单位。
例如:
查看过程能够关上的最大文件描述符的数量
3. 批改用户过程可关上文件数限度
3.1 调优
(1)最大过程数
设置各 linux 用户的最大过程数,上面我把某 linux 用户的最大过程数设为 10000 个:
ulimit -u 10000
(2)可关上的文件数
对于须要做许多 socket 连贯并使它们处于关上状态的 Java 应用程序而言,
最好通过应用 ulimit -n xx 批改每个过程可关上的文件数,缺省值是 1024。ulimit -n 4096
(3)其余倡议设置成无限度(unlimited)的一些重要设置是:
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 工夫:ulimit -t unlimited
虚拟内存:ulimit -v unlimited
3.2 永恒地设置
(1)解除 Linux 零碎的最大过程数和最大文件关上数限度:
vi /etc/security/limits.conf
# 增加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
阐明:* 代表针对所有用户,noproc 是代表最大过程数,nofile 是代表最大文件关上数
(2)让 SSH 承受 Login 程式的登入,不便在 ssh 客户端查看 ulimit -a 资源限度:
a、vi /etc/ssh/sshd_config
把 UserLogin 的值改为 yes,并把 # 正文去掉
b、重启 sshd 服务:/etc/init.d/sshd restart
(3)批改所有 linux 用户的环境变量文件:
vi /etc/profile
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited