Neo Anderson's Blog

Linux基础命令-Ulimit

字数统计: 508阅读时长: 2 min
2015/01/16
loading

有时候,当程序编写异常、内核设定异常等,会出现注入 :Too many open files, 一类的,超过系统设置单个进程可以打开的最大文件描述符的异常; 那就可以结合本章的命令,查看和临时修改。

基础命令详情说明

  • ulimit shell 资源设定or获取
    • -a 显示当前配置
    • -c <core文件上限>  设定core文件的最大值,单位为区块。
    • -d <数据节区大小>  程序数据节区的最大值,单位为KB。
    • -f <文件大小>  shell所能建立的最大文件,单位为区块。
    • -H  设定资源的硬性限制,也就是管理员所设下的限制。
    • -m <内存大小>  指定可使用内存的上限,单位为KB。
    • -n <文件数目>  指定同一时间最多可开启的文件数。
    • -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。
    • -s <堆叠大小>  指定堆叠的上限,单位为KB。
    • -S  设定资源的弹性限制。
    • -t <CPU时间>  指定CPU使用时间的上限,单位为秒。
    • -u <程序数目>  用户最多可开启的程序数目。
    • -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> ulimit -a 
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

实际使用场景

  • 系统程序报 "too many open files"异常(暂时无法修改程序时),优先查看现有的系统软、硬件最大文件描述符数量限制
1
2
3
4
# 软查询
ulimit -n
# 系统硬件支持上线查询
ulimit -Hn
  • 临时加大设置
1
2
# 例如,将限制提高到 4096。您可以尝试更高的数值,如 8192 或 16384
ulimit -n 4096
CATALOG
  1. 1. 基础命令详情说明
  2. 2. 实际使用场景