请问如何修改文件最大句柄数?
参考回答:
linux默认最大文件句柄数是1024个,在linux服务器文件并发量比较大的情况下,系统会报"too many open files"的错误。故在linux服务器高并发调优时,往往需要预先调优Linux参数,修改Linux最大文件句柄数。有两种方法:
1. ulimit -n <可以同时打开的文件数>,将当前进程的最大句柄数修改为指定的参数(注:该方法只针对当前进程有效,重新打开一个shell或者重新开启一个进程,参数还是之前的值)
首先用ulimit -a查询Linux相关的参数,如下所示:
core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 94739 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) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 94739 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
其中,open files就是最大文件句柄数,默认是1024个。
修改Linux最大文件句柄数: ulimit -n 2048, 将最大句柄数修改为 2048个。
2. 对所有进程都有效的方法,修改Linux系统参数
vi /etc/security/limits.conf 添加
* soft nofile 65536
* hard nofile 65536
将最大句柄数改为65536
修改以后保存,注销当前用户,重新登录,修改后的参数就生效了