解决Too many open files问题

转载:https://blog.csdn.net/zhuwinmin/article/details/72730288

当用linux做高并发服务器时,会遇到"Too many open files"的错误。

Linux是有文件句柄限制的(open files),而且Linux默认不是很高,一般都是1024,做高并发生产服务器用其实很容易就达到这个数量。

在linux中执行ulimit -a 即可查询linux相关的参数,如下所示:

ulimit -a


用ulimit命令是可以修改这些配置的

 

命令的格式:ulimit [-SHacdefilmnpqrstuvx] [limit]

中间的参数对应这要修改的项目。

默认最大打开文件数(open files)最大数为1024,修改:

ulimit -n 102400

最大值为655350

命令参数:

  1. -H 设置硬件资源限制.

  2. -S 设置软件资源限制.

  3. -a 显示当前所有的资源限制.

  4. -c size:设置core文件的最大值.单位:blocks

  5. -d size:设置数据段的最大值.单位:kbytes

  6. -f size:设置创建文件的最大值.单位:blocks

  7. -l size:设置在内存中锁定进程的最大值.单位:kbytes

  8. -m size:设置可以使用的常驻内存的最大值.单位:kbytes

  9. -n size:设置内核可以同时打开的文件描述符的最大值.单位:n

  10. -p size:设置管道缓冲区的最大值.单位:kbytes

  11. -s size:设置堆栈的最大值.单位:kbytes

  12. -t size:设置CPU使用时间的最大上限.单位:seconds

  13. -v size:设置虚拟内存的最大值.单位:kbytes

  14. unlimited 是一个特殊值,用于表示不限制


ulimit命令的特点:

 

1.只对当前tty(终端有效),若要每次都生效的话,可以把ulimit参数放到对应用户的.bash_profile里面;
2.ulimit命令本身就有分软硬设置,加-H就是硬,加-S就是软;
硬限制是可以在任何时候任何进程中设置  但硬限制只能由超级用户提起
软限制是内核实际执行的限制,任何进程都可以将软限制设置为任意小于等于对进程限制的硬限制的值
3.默认显示的是软限制,如果运行ulimit命令修改的时候没有加上的话,就是两个参数一起改变生效;

永久设置


针对所有用户的设置,在/etc/security/limits.conf文件,其是可以对系统用户、组进行cpu、文件数等限制的,通过它可以针对某个用户或全部进行限制。但不能超越系统的限制;
格式:
#<domain>   <type> <item> <value>
*           soft   nproc        102400


domain:表示范围,
a user name       #表示某个用户
a group name  #表示某个组
the wildcard *    #表示所有用户
the wildcard %    #筛选过滤用户


type:表示类型
soft表示可以超出,但只是警告
hard表示绝对不能超出


item:
- core - limits the core file size (KB)
- data - max data size (KB)
- fsize - maximum filesize (KB)
- memlock - max locked-in-memory address space (KB)
- nofile - max number of open file descriptors
- rss - max resident set size (KB)
- stack - max stack size (KB)
- cpu - max CPU time (MIN)
- nproc - max number of processes
- as - address space limit (KB)
- maxlogins - max number of logins for this user
- maxsyslogins - max number of logins on the system
- priority - the priority to run user process with
- locks - max number of file locks the user can hold
- sigpending - max number of pending signals
- msgqueue - max memory used by POSIX message queues (bytes)
- nice - max nice priority allowed to raise to values: [-20, 19]
- rtprio - max realtime priority


value:
unlimited表示不限制

这里将open files设置为4096采用如下命令:

ulimit -n 4096



如果想对所有用户设置,也可以放在/etc/profile文件里面,下面是该文件里面的默认参数:
ulimit -S -c 0 > /dev/null 2>&1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463668.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RedHat Linux 5.5系统下配置yum包详细过程

1、挂载光盘 mount -t iso9660 /dev/dvd /mnt/cdrom2、建立文件夹 安装如下路径&#xff0c;建立对应的文件夹&#xff0c;其中pub文件夹需要创建4个。3、复制以下内容到指定文件夹 需要注意的是&#xff0c;如果按照第1步将光盘挂在到/mnt/cdrom 下面…

hadoop fs 基本命令

今天由于工作需要&#xff0c;需要使用到hadoop fs的一些命令&#xff0c;就简单的总结了下&#xff1a; 1&#xff0c;hadoop fs –fs [local | <file system URI>]&#xff1a;声明hadoop使用的文件系统&#xff0c;如果不声明的话&#xff0c;使用当前配置文件配置的…

树莓派的这十年

来源 | 新智元编辑 | 袁榭 好困刚刚过完10岁生日的树莓派&#xff0c;早已褪去了当年廉价电脑教具的外衣&#xff0c;一跃成为全球业界首屈一指的微型电脑品牌。为啥叫「Raspberry Pi」&#xff1f;从某种意义上讲&#xff0c;「树莓」这个命名方式其实很单纯&#xff0c;因为大…

存储过程入门与提高

什么是存储过程呢&#xff1f; 定义&#xff1a; 将常用的或很复杂的工作&#xff0c;预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。 讲到这里,可能有人要问&#xff1a;这…

C++ 11 nullptr关键字

C 11 nullptr关键字 转载&#xff1a;https://www.cnblogs.com/DswCnblog/p/5629073.html 熟悉C的童鞋都知道&#xff0c;为了避免“野指针”&#xff08;即指针在首次使用之前没有进行初始化&#xff09;的出现&#xff0c;我们声明一个指针后最好马上对其进行初始化操作。如…

Vue-watch选项

Vue ----watch 选项 用于 监听数据变化&#xff1a; 1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <meta name"viewport" content"widthdevice-width, initial-scale1.0"…

对SqlServer2008中的日志进行截断的方法

--第一步、执行以下语句&#xff1a; USE 数据库名 GO --第二步、备份数据库日志到c:\1.bak中 BACKUP LOG 数据库名 to diskc:\1.bak GO --第三步、查询此数据库的逻辑文件名 DECLARE Log_FileName VARCHAR(256) SELECT Log_FileNamename FROM sys.database_files WHERE FILE_I…

layui 在springboot2.x 时,页面展示不了layui的问题

[[]]是thymeleaf的内联表达式&#xff0c;在script上加 th:inline"none" 即可 报错信息 转载于:https://www.cnblogs.com/SeaWxx/p/10287505.html

ArcGIS Flex API 中的 Flex 技术(一)--事件

作者&#xff1a;Flyingis 本文严禁用于商业目的&#xff0c;如需转载请注明作者及原文链接&#xff0c;其他疑问请联系&#xff1a;dev.vip#gmail.com 在ArcGIS Flex API中探索Flex使用是一种不错的学习方法&#xff0c;可以相互辅助理解ArcGIS Flex API和Flex&#…

C++11 bind注意事项(传引用参数的时候)

默认情况下&#xff0c;bind的那些不是占位符的参数被拷贝到bind返回的可调用对象中。 当需要把对象传到bind中的参数中时&#xff0c;需要使用ref或者cref。 例如&#xff1a;

四元數與旋轉

为什么80%的码农都做不了架构师&#xff1f;>>> 在討論「四元數」之前&#xff0c;我們來想想對三維直角座標而言&#xff0c;在物體旋轉會有何影響&#xff0c;可以擴充三維直角座標系統的旋轉為三角度系統&#xff08;Three-angle system&#xff09;&#xff0c…

玩一下数组

来源&#xff1a;嵌入式大杂烩数组是最基本的数据结构&#xff0c;关于数组的面试题也屡见不鲜&#xff0c;本文罗列了一些常见的面试题&#xff0c;仅供参考。目前有以下18道题目。数组求和求数组的最大值和最小值求数组的最大值和次大值求数组中出现次数超过一半的元素求数组…

https部署

准备证书及秘钥 方式一、springboot项目可直接在yml中配置 1、需要将证书转换成jks或p12格式&#xff0c;如 多个crt证书转为pem: cat xxx.crt xxx2.crt xxx3.xrt xxx4.crt > server.pempem证书转为jks&#xff1a; //PEM--->PFXopenssl pkcs12 -export -out test.pfx -…

STP学习笔记本

生成树协议&#xff1a;&#xff08;1&#xff09;作用&#xff1a;防止环路、冗余备份&#xff08;2&#xff09;如果网络存在环路&#xff0c;会给网络带来什么影响&#xff1f;答&#xff1a;广播风暴重复帧现象MAC地址表震荡&#xff08;3&#xff09;STP解决方法&#xff…

每日集成Tip: CruiseControl.Net 提示DLL文见找不到的解决方法

项目中引用了第三方类库&#xff0c;当帮项目上传到服务器时&#xff0c;提示找不到路径&#xff0c;经过CruiseControl.Net发现&#xff0c;他找的是我我本地的目录 因此&#xff0c;当引入第三方类库时&#xff0c;按如下步骤 (1). 在源码的目录下见一个新的目录(ThirdParty)…

将GDB中的输出定向到文件

将所有栈信息保存到文件11中 在gdb中: set logging file 11 set logging on thread apply all bt set logging off 结束之后&#xff0c;在相关目录下查看11文件

不生孩子能怎么办?

你会选择不婚或者丁克的生活吗&#xff1f;你是否也想过未来养老的问题呢&#xff1f;如果想过&#xff0c;你对此又有什么规划呢&#xff1f;欢迎留言讨论&#xff01;本文原创公众号&#xff1a;不会笑青年&#xff0c;授权转载请联系微信(laughyouth369)&#xff0c;授权后&…

CORS跨域请求

CORS跨域请求 CORS即Cross Origin Resource Sharing 跨域资源共享&#xff0c; 那么跨域请求还分为两种&#xff0c;一种叫简单请求&#xff0c;一种是复杂请求~~ 简单请求 HTTP方法是下列方法之一 HEAD&#xff0c; GET&#xff0c;POST HTTP头信息不超出以下几种字段 Accept&…

原博客文章(Apache初配2008/4/8)

2008/4/8Apache初配 最近在做个小网站,做好了大部分的页面,要发布,开始的时候选择了IIS发布,后来由于一些问题,还有我们网络工程师的推荐,决定用Apache,于是研究了以下,把自己的初配和感受记录下来,也是为了和我一样的初配Apache的朋友一点帮助!Apache对Asp.net的程序是不支持的…

__attribute__((always_inline))

__attribute__((always_inline))的意思是强制内联&#xff0c;所有加了__attribute__((always_inline))的函数再被调用时不会被编译成函数调用而是直接扩展到调用函数体内&#xff0c;例子如下&#xff1a; define inline __attribute((always_inline))的意思就是用 inline 代…