“`” 参考回答:

linux默认最大文件句柄数是1024个,在linux服务器文件并发量比较大的情况下,系统会报""too many open files""的错误。故在linux服务器高并发调优时,往往需要预先调优Linux参数,修改Linux最大文件句柄数。

有两种方法:

\1. ulimit -n <可以同时打开的文件数>,将当前进程的最大句柄数修改为指定的参数(注:该方法只针对当前进程有效,重新打开一个shell或者重新开启一个进程,参数还是之前的值)

首先用ulimit -a查询Linux相关的参数,如下所示:

<pre><code>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
</code></pre>

其中,open files就是最大文件句柄数,默认是1024个。

修改Linux最大文件句柄数: ulimit -n 2048, 将最大句柄数修改为 2048个。

 

\2. 对所有进程都有效的方法,修改Linux系统参数

vi /etc/security/limits.conf 添加

<ul>
<li>soft  nofile  65536</li>
<li>hard  nofile  65536</li>
</ul>

将最大句柄数改为65536

修改以后保存,注销当前用户,重新登录,修改后的参数就生效了

<pre><code> "“`

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.