参考回答:
linux默认最大文件句柄数是1024个,在linux服务器文件并发量比较大的情况下,系统会报"too many open files"的错误。故在linux服务器高并发调优时,往往需要预先调优Linux参数,修改Linux最大文件句柄数。
有两种方法:
1. ulimit -n <可以同时打开的文件数>,将当前进程的最大句柄数修改为指定的参数(注:该方法只针对当前进程有效,重新打开一个shell或者重新开启一个进程,参数还是之前的值)
首先用ulimit -a查询Linux相关的参数,如下所示:
core file size (blocks, -c) 0data seg size(kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimitedpending signals (-i) 94739max locked memory (kbytes, -l) 64max memory size (kbytes, -m) unlimitedopen files(-n) 1024pipe size (512 bytes, -p) 8POSIX message queues (bytes, -q) 819200real-time priority (-r) 0stack size (kbytes, -s) 8192cpu time (seconds, -t) unlimitedmax user processes (-u) 94739virtual memory (kbytes, -v) unlimitedfile 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
修改以后保存,注销当前用户,重新登录,修改后的参数就生效了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)