在linux下网络服务经常会遇到的一个问题就打开过多的端口或者创建大量的连接会失败,这是因为系统对每个进程能够打开的资源是有限制的。

打开过多的端口或者创建大量的连接,都会打开大量文件描述符,linux系统默认对每个进程打开的文件描述符限制为1024,大于这个值就会打开失败。

ulimit命令就可以修改这个限制,另外ulimit的还有一个用途,就是修改程序崩溃的时候生成core文件的限制。

这个命令是修改每个进程的限制,我们有时只想修改自己程序的限制,那么linux系统提供了两个系统调用修改这个限制,可以在程序中调用动态修改。

#include <sys/resource.h>int getrlimit(int resource, struct rlimit *rlim);
int setrlimit(int resource, const struct rlimit *rlim);

在终端输入ulimit -h查看其他选项:

ulimit: 用法: ulimit [-SHabcdefilmnpqrstuvxT] [limit]

修改选项大小的命令格式为:ulimit+要修改的选项+要修改选项的大小

查看选项限制的命令格式为:ulimit+要查看的选项

修改文件描述符限制:

ulimit -Sn 2048

查看文件描述符限制:

ulimit -Sn

选项-H的意义是内核总的硬性限制,是所有用户软件不能超过的总数限制,选项-S的意义是用户软件的限制,是单个用户进程的限制。

如果不加选项就同时修改-H和-S的值,所以一般都加上选项-S。

linux命令之修改系统允许进程打开文件描述符限制-ulimit相关推荐

  1. Linux最大打开文件描述符数

    1.    系统最大打开文件描述符数:/proc/sys/fs/file-max a.    查看 $ cat /proc/sys/fs/file-max 186405 2. 设置 a.    临时性 ...

  2. Linux系统学习笔记:文件描述符标志

    文件描述符标志的概念 文件描述符标志(目前就只有一个close-on-exec): 它仅仅是一个标志,当进程fork一个子进程的时候,在子进程中调用了exec函数时就用到了这个标志.意义是执行exec ...

  3. Linux笔记(70)——文件描述符之ulimit命令

    当进程打开现有文件或创建新文件时,会受到文件描述符的限制. Linux系统中经常出现错误too many open files ,说明你打开的文件数量超过文件描述符的限制. 查看文件描述符大小: [r ...

  4. 【Linux系统编程学习】 文件描述符

    此为牛客网Linux C++课程1.19课程笔记. 1. 文件描述符表 如图,我们知道每个进程都有其虚拟地址空间(0~4G),其中3 ~ 4G部分为内核区.进程的进程控制块保存就在内核区,而PCB中维 ...

  5. linux 描述符 打开 个数,Linux下增大可打开文件描述符的最大数的方法

    在安装Oracle Grid Infrastructure检查约束时遇到一个错误,大体是说当前可打开的文件描述符的最大数为1024,而要求是65536. 于是在gird用户下执行ulimit -a,显 ...

  6. linux进程文件描述符 vnode,从flock引发的一个bug谈起(1) 进程的文件描述符

    引子 前两天我们QA发现了一个比较有意思的bug,我细细分析一下,发现多个进程卡死在一个·配置文件上.简单的说,我们为了防止多个进程同时写同一个配置文件,将文件格式破坏,我们用了flock,对于写打开 ...

  7. 将您重定向的次数过多什么意思_【linux二三轶事】重定向是啥?文件描述符是啥?...

    [前言] 写这篇文章的原因,是因为我在工作中遇到重定向和fd的时候,被这厮折磨的够呛.现在终于战胜了他们,当然要奏一首凯歌,率土同庆啦! 在开启正文之前,我们必须要先明白几个关键点,这对于理解后面的文 ...

  8. linux打开图形化命令,在Linux命令行中以图形化窗口打开文件夹

    快速Android开发系列网络篇之Retrofit Retrofit是一个不错的网络请求库,用官方自己的介绍就是: A type-safe REST client for Android and Ja ...

  9. linux修改文件描述符,linux最大允许的文件描述符open files数nofile修改

    open file resource limit 是linux中process可以打开的文件句柄数量.增加这个数值需要调整两个配置: 第一步, 修改系统最大允许的文件描述符 查看当前的设置: $ ca ...

最新文章

  1. (24):(行为型模式) Visitor 访问者模式
  2. 去除字符串中的html标记及标记中的内容
  3. Python入门100题 | 第078题
  4. c++怎么输入带有空格的字符串_杭电OJ 字符串处理类部分题解
  5. 外媒:华为或将在2月24日发布麒麟820 支持5G网络
  6. 10-10-030-简介-Kafka之数据存储
  7. 中input标签赋值_Java程序员:Spring MVC JSP表单标签示例
  8. java三大框架增删改查_Java_Web三大框架之Hibernate增删改查
  9. Rust学习笔记——模式和匹配
  10. IBM新创AI病毒:想打谁就打谁,看脸发作绝不误伤,隐蔽性极强
  11. 对CMMI标准的简单理解
  12. oracle脑裂复现,Oracle rac集群环境中的特殊问题
  13. 【数学】几何在线画图
  14. 怎么让图片铺满手机屏幕_手机版Photoshop怎么把图片铺满屏幕?
  15. 联想Win10安装Ubuntu双系统教程
  16. CSS属性分类扫描-表格属性
  17. Android 直接拨号和调用拨号盘
  18. 2017美团网易360部分笔试题
  19. Linux: meld软件使用
  20. python 加速度_「加速度公式」加速度公式1 - seo实验室

热门文章

  1. python的实现和测试是啥意思_Python接口自动化测试之pytest与unittest区别
  2. vba单元格批量赋值_Excel●VBA●如何把批注中的信息批量提取到单元格?
  3. 【数学和算法】插值方法
  4. 从脸部识别到火星机器人,正在改变世界的计算机视觉
  5. Programming Computer Vision with Python (学习笔记四)
  6. HTML 5 样式指南和代码约定
  7. 拍照时不会摆Pose怎么办?
  8. 还原JavaScript的真实历史~
  9. MIT自然语言处理第五讲:最大熵和对数线性模型
  10. Vim 实用技术,第 3 部分: 定制 Vim