博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
修改linux最大文件句柄数
阅读量:6197 次
发布时间:2019-06-21

本文共 2136 字,大约阅读时间需要 7 分钟。

大家知道在linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一。

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

[root@mongodb11 ~]# ulimit -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256324
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 256324
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

默认情况下,linux最大文件句柄数为1024个。当你的服务器在大并发达到极限时,就会报出“too many open files”。

那么如何修改linux最大文件句柄数呢?其实很简单:

1、ulimit -n 2048

  这命令就可以修改linux最大文件句柄数,修改以后使用ulimit -a 查看修改的状态,如:

[root@mongodb11 ~]# ulimit -n 2048

[root@mongodb11 ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256324
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 2048
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 256324
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

但是,这种方法只针对当前进程有效。重新打开一个shell或者开启一个进程,你就会发现参数还是ulimit -n xx修改之前的数字。那么有没有一劳永逸的方法呢?

当然有!那就是修改系统参数。

2、修改linux系统参数。vi /etc/security/limits.conf 添加

*  soft  nofile  65536

*  hard  nofile  65536

修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了:

[root@localhost ~]# ulimit -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256600
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 256600
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 

文章转载请注明出处:

 

你可能感兴趣的文章
[转] C#代码检查工具:stylecop
查看>>
3月9日(用 DBHelper 工具连接 mysql 数据库 实现登录验证)
查看>>
第一节:.Net版基于WebSocket的聊天室样例
查看>>
select、poll、epoll之间的区别总结
查看>>
使用docker搭建android源码编译环境
查看>>
MFC学习指南大纲
查看>>
【Flutter学习】基本组件之容器组件Container
查看>>
leetcode 137 Single Number II
查看>>
maven的基本原理和使用
查看>>
thinkphp 3.1.3 redis 只能读取 无法写入的问题
查看>>
创建字符串的方法
查看>>
基于 Web 的 Go 语言 IDE - Wide 1.3.0 发布!
查看>>
SQL-with as基本用法(源码DEMO)
查看>>
深度学习入门和学习书籍
查看>>
由struct 和class 想到的浅度复制和深度复制 c#
查看>>
云计算时代的运维职位展望
查看>>
JQuery实现ajax批量上传图片
查看>>
2012蓝桥杯【初赛试题】干支纪年
查看>>
关于重连测试的一点研究
查看>>
[NOI2014]购票
查看>>