有关ulimit命令

ulimit与当前shell对话打开的文件数目相关,

>ulimit -n :可以查询最大的数目。如1024

如果打开的文件数太多,会报错误:too many open files 。

临时修改此值:ulimit -n 2048

但是一般用户没有权限设置较大的值。

在root用户下可以设置的最大值是:1048576(ulimit  -n 1048576)


在linux下要注意,如果打开的文件数目达到上限(通常是打开后没有关闭,如socket),

那就是出大问题了。此时是不能打开shell的。用ssh远程去reboot是不可能的。如果强制人工重启。




### ulimit命令详解 `ulimit` 是一个用于控制 shell 启动进程所使用的资源限制的内置命令。它允许管理员或用户设定和查询各种系统资源的最大限制,从而优化系统的性能并防止某些恶意操作。 #### 使用语法 `ulimit [-H|-S] [选项] [限制值]` 其中 `-H` 表示硬限制(hard limit),而 `-S` 则表示软限制(soft limit)。如果未指定这两个标志,默认情况下会同时修改两者的值[^2]。 #### 参数说明 以下是常见的 `ulimit` 参数及其功能: | 参数 | 描述 | |------------|----------------------------------------------------------------------------------------| | `-a` | 显示所有当前资源限制的信息 | | `-c` | 设定 core 文件的最大尺寸(单位 KB),unlimited 表示不限制 | | `-d` | 设定数据段的最大大小(单位 KB),unlimited 表示不限制 | | `-f` | 设定文件的最大尺寸(单位 blocks) | | `-l` | 设定内存锁住的最大尺寸(单位 KB) | | `-m` | 设定物理内存的最大使用量(单位 KB),unlimited 表示不限制 | | `-n` | 设定单个进程中可打开文件描述符的数量 | | `-p` | 设定管道缓冲区的最大数量 | | `-q` | 设定 POSIX 信号队列中的最大消息字节数 | | `-r` | 设定实时时间优先级调度的最大范围 | | `-s` | 设定堆栈的最大尺寸(单位 KB),unlimited 表示不限制 | | `-t` | 设定 CPU 时间的最大秒数 | | `-u` | 设定用户可以创建的最大线程/进程数 | | `-v` | 设定虚拟内存的最大使用量(单位 KB) | #### 示例代码 以下是一些常用的 `ulimit` 命令实例: 1. **查看所有的资源限制** ```bash ulimit -a ``` 2. **设置核心转储文件大小为无限** ```bash ulimit -c unlimited ``` 3. **限制虚拟内存大小为 2GB** ```bash ulimit -v 2097152 ``` 4. **增加每个进程能打开的文件句柄数目到 65535** ```bash ulimit -n 65535 ``` 5. **移除对数据段长度的任何限制** ```bash ulimit -d unlimited ``` 这些例子展示了如何利用 `ulimit` 来调整不同类型的资源配额,以满足特定需求或者诊断问题[^3]。 #### 注意事项 当尝试更改某些敏感参数时可能需要超级用户权限。另外需要注意的是,在生产环境中随意改变默认值可能会带来意想不到的风险,因此建议充分测试后再应用改动[^1]。 ```bash # 修改前先确认现有配置 ulimit -a # 如果要永久生效,则需编辑 /etc/security/limits.conf 或者其他初始化脚本 echo "* soft nofile 65535" >> /etc/security/limits.conf echo "* hard nofile 65535" >> /etc/security/limits.conf ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值