修改linux最大文件句柄数

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

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

[[email protected] ~]# 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 查看修改的状态,如:

[[email protected] ~]# ulimit -n 2048
[[email protected] ~]# 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 ,参数生效了:

[[email protected] ~]# 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

时间: 2024-11-05 17:34:33

修改linux最大文件句柄数的相关文章

linux之Too many open files问题-修改linux最大文件句柄数

linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一. 在linux中执行ulimit -a 即可查询linux相关的参数,如下所示: [[email protected] ~]# ulimit -a open files                      (-n) 1024 默认情况下,linux最大文件句柄数为1024个.当你的服务器在大并发达到极限时,就会报出"too many open files". 那么如

centos之Too many open files问题-修改linux最大文件句柄数

linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一. 在linux中执行ulimit -a 即可查询linux相关的参数,如下所示: [[email protected] ~]# ulimit -acore file size          (blocks, -c) 0data seg size           (kbytes, -d) unlimitedscheduling priority             (-e

修改linux最大文件句柄数--ulimit -a

最近服务器并发很高,昨天晚上突然好几个服务同时挂了,查找日志发现报错:"too many open files",在网上也找了些资料,最后通过修改句柄数,解决了问题. 大家知道在linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一. 在linux中执行ulimit -a 即可查询linux相关的参数,如下所示: [[email protected] ~]# ulimit -acore file size (blocks, -

查询修改linux 打开文件句柄数量

查询系统支持最大可打开文件句柄数量: #vi /proc/sys/fs/file-max 查询当前连接用户最大可打开文件句柄数量: #ulimit -a 修改当前连接用户最大可打开文件句柄数量: #ulimit -f 81920 修改linux内核设置最大可打开文件句柄数量: #vi /etc/sysctl.conf fs.file-max=81920 修改系统软硬件支持打开最大够本数量 #vi /etc/security/limit.conf * soft nproc 81920 * hard

Linux 下文件句柄数的查询学习

1. 查看 所有进程的 打开的句柄数 lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more 效果为: 2. 查看某一个进程内的 文件信息 lsof -p pid 效果为: 参考学习 https://blog.csdn.net/gumingyaotangwei/article/details/24973773 https://jingyan.baidu.com/article/c910274b840b49cd361d2d12.html 原文地址:

修改Linux系统参数以支持单机同时打开数百万文件句柄

在linux kernel 2.6.25之前通过ulimit -n(setrlimit(RLIMIT_NOFILE))设置每个进程的最大打开文件句柄数不能超过NR_OPEN (1024*1024),也就是100多w(除非重新编译内核),而在2.6.25之后,内核导出了一个sys接口可以修改这个最大值(/proc/sys/fs /nr_open). 具体的changelog: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.gi

修改linux的最大文件句柄数限制

对于一般的应用来说(象Apache.系统进程)1024完全足够使用.但是如何象squid.mysql.java等单进程处理大量请求的应用来说就有点捉襟见肘了.如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示.如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看: 1 lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more 修改linux的最大文件句柄数限制的方法: 1)

【转】Linux下查看进程打开的文件句柄数

---查看系统默认的最大文件句柄数,系统默认是1024 # ulimit -n 1024 ----查看当前进程打开了多少句柄数 # lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more 131 24204 57 24244 57 24231  ........ 其中第一列是打开的句柄数,第二列是进程ID. 可以根据ID号来查看进程名. # ps aef|grep 24204 nginx 24204 24162 99 16:15 ? 00:24:2

Linux允许打开最大文件句柄数的参数调优-"too many open files"问题

都知道Linux系统的特性,一切皆文件,所有在运行zabbix这样的服务时,其中重要的一个调优就是调整linux系统的最大文件句柄数,解决"too many open files"的问题,增大程序运行允许打开的文件数,提高性能. 一.查看系统运行打开的文件句柄数 # ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file si