Home  >  Article  >  Backend Development  >  nginx reverse proxy optimization (file descriptor)

nginx reverse proxy optimization (file descriptor)

WBOY
WBOYOriginal
2016-08-08 09:24:211089browse

lsof tool

A file descriptor is a simple integer that identifies each file and socket opened by a process. The first file opened is 0, the second is 1, and so on. Linux operating systems usually impose a limit on the number of files that each process can open, and Linux usually has a system-level limit of 1024.
As concurrency increases, the default 1024 file descriptors of the original system will definitely not be enough. The longer the time, the system may report the following error:

open files limits...

View the files occupied by the nginx process Descriptor, you can execute the command:

<code>lsof <span>| grep nginx</span></code>

Partial result

<code>nginx     <span>6845</span>    nobody    <span>6</span>u     <span>IPv4</span><span>179045</span>      0t<span>0</span><span>TCP</span> *<span>:http</span> (<span>LISTEN</span>)
nginx     <span>6845</span>    nobody    <span>7</span>u     <span>IPv4</span><span>179046</span>      0t<span>0</span><span>TCP</span> *<span>:ddi-tcp-</span><span>1</span> (<span>LISTEN</span>)
nginx     <span>6845</span>    nobody    <span>8</span>u     unix <span>0xffff88005eda0c80</span>      0t<span>0</span><span>179050</span> socket
nginx     <span>6845</span>    nobody    <span>9</span>u      <span>REG</span><span>0</span>,<span>9</span><span>0</span><span>3660</span> anon_inode
nginx     <span>6845</span>    nobody   <span>10</span>u      <span>REG</span><span>0</span>,<span>9</span><span>0</span><span>3660</span> anon_inode</code>

*Note: The second line is the process number of nginx

<code><span># 统计nginx进程打开了多少个文件数可以用下边的命令</span>lsof <span>|grep nginx|wc –l</span></code>

Method 1:

The second column of the above partial result is the process number of nginx

<code><span>cd</span> /prec/<span>6845</span></code>


You can see the files generated by this process, and then look at the limits file

<code>more limits</code>


The eighth line, Max open files is 51200, (default is 1024), this is because

I added a line in the top box of nginx.conf:

<code>worker_rlimit_nofile 51200;</code>

Method 2:

Execution:

<code>ulimit <span>-a</span></code>


Execute:

<code>ulimit <span>-SHn</span><span>65535</span></code>

That’s it

Method three:

<code>[root<span>@localhost</span><span>6845</span>]# sysctl -a | grep <span>file</span>-<span>max</span>
fs.<span>file</span>-<span>max</span> = <span>201604</span>
[root<span>@localhost</span><span>6845</span>]#</code>

Execute:

<code>[root<span>@localhost</span><span>6845</span>]# sysctl -w fs.<span>file</span>-<span>max</span>=<span>65535</span>
fs.<span>file</span>-<span>max</span> = <span>65535</span>
[root<span>@localhost</span><span>6845</span>]# sysctl -a | grep <span>file</span>-<span>max</span>
fs.<span>file</span>-<span>max</span> = <span>65535</span></code>

To take effect permanently Edit:

<code>vim /etc/sysctl<span>.conf</span></code>

file, add the following line:

<code>fs.<span>file</span>-<span>max</span>=<span>65535</span></code>

Then execute the following command to make it effective:

<code>sysctl <span>-p</span></code>

The above introduces nginx reverse proxy optimization (file descriptor), including aspects of the content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn