最近由于在mac上配置了php_debug后,经常遇到Too many open files..

当发生这个错误后,重启一下php-fpm就能临时解决,但是过一段时间又会出现这个问题。

首先理解一下出现这个错误的原因

too many open files(打开的文件过多)是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。

引起的原因就是进程在某个时刻打开了超过系统限制的文件数量以及通讯链接数,通过命令ulimit -a可以查看当前系统设置的最大句柄数是多少:

Last login: Fri Jun 28 11:21:18 on ttys001
You have mail.
ulimit -awenqidongdeMBP:~ wenqidong$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 256
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1418
virtual memory          (kbytes, -v) unlimited
wenqidongdeMBP:~ wenqidong$ 

这里可以看到 open files是 256 ;

现在找出php-fpm的进程

ps -ef | grep php-fpm

显示有4个进程ID

wenqidongdeMBP:log wenqidong$ ps -ef | grep php-fpm
  501 35602     1   0  5:47下午 ??         0:00.72 php-fpm
  501 35603 35602   0  5:47下午 ??         0:04.63 php-fpm
  501 35604 35602   0  5:47下午 ??         0:05.81 php-fpm
  501 35618 35602   0  5:47下午 ??         0:05.47 php-fpm
  501 37485 37420   0 11:43上午 ttys001    0:00.00 grep php-fpm

接着再看一下每个进程ID打开文件的情况

使用命令lsof -p 进程id可以查看单个进程所有打开的文件详情,使用命令lsof -p 进程id | wc -l可以统计进程打开了多少文件:

wenqidongdeMBP:log wenqidong$ lsof -p 35604 | wc -l
     292
wenqidongdeMBP:log wenqidong$ lsof -p 35603 | wc -l
     290
wenqidongdeMBP:log wenqidong$ lsof -p 35602 | wc -l
      46
wenqidongdeMBP:log wenqidong$ lsof -p 35618 | wc -l
     291

可以看到四个进程,其中有3个已经超过设定值 256了 。看一下第一个进程主要是打开发哪些文件:

wenqidongdeMBP:log wenqidong$ lsof -p 35604
COMMAND   PID      USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
php-fpm 35604 wenqidong  cwd       DIR                1,5      288 4319917140 /Users/wenqidong/log
php-fpm 35604 wenqidong  txt       REG                1,5 12324224 4317891463 /usr/local/Cellar/php@7.1/7.1.23/sbin/php-fpm
php-fpm 35604 wenqidong  txt       REG                1,5  1871160 4324689703 /usr/local/Cellar/openssl/1.0.2r/lib/libcrypto.1.0.0.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   377416 4324689719 /usr/local/Cellar/openssl/1.0.2r/lib/libssl.1.0.0.dylib
php-fpm 35604 wenqidong  txt       REG                1,5    86408 4317895710 /usr/local/Cellar/libzip/1.5.1/lib/libzip.5.0.dylib
php-fpm 35604 wenqidong  txt       REG                1,5    21344 4317860737 /usr/local/Cellar/libmemcached/1.0.18_2/lib/libmemcachedutil.2.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   466696 4317867063 /usr/local/Cellar/aspell/0.60.6.1_1/lib/libaspell.15.dylib
php-fpm 35604 wenqidong  txt       REG                1,5     8320 4317867062 /usr/local/Cellar/aspell/0.60.6.1_1/lib/libpspell.15.dylib
php-fpm 35604 wenqidong  txt       REG                1,5    21024 4328486783 /Library/Preferences/Logging/.plist-cache.4T8M7S65
php-fpm 35604 wenqidong  txt       REG                1,5   247244 4319476119 /usr/local/Cellar/libpq/11.1/lib/libpq.5.11.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   365056 4317869946 /usr/local/Cellar/freetds/1.00.104/lib/libsybdb.5.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   186368 4317889344 /usr/local/Cellar/mcrypt/2.6.8/lib/libmcrypt.4.4.8.dylib
php-fpm 35604 wenqidong  txt       REG                1,5    35772 4317867478 /usr/local/Cellar/libtool/2.4.6_1/lib/libltdl.7.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   252820 4317889787 /usr/local/Cellar/openldap/2.4.46/lib/libldap-2.4.2.10.9.dylib
php-fpm 35604 wenqidong  txt       REG                1,5    52272 4317889793 /usr/local/Cellar/openldap/2.4.46/lib/liblber-2.4.2.10.9.dylib
php-fpm 35604 wenqidong  txt       REG                1,5  1052984 4317874398 /usr/local/Cellar/libiconv/1.15/lib/libiconv.2.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   418480 4317874180 /usr/local/Cellar/gmp/6.1.2_2/lib/libgmp.10.dylib
php-fpm 35604 wenqidong  txt       REG                1,5    50172 4316294820 /usr/local/Cellar/gettext/0.19.8.1/lib/libintl.8.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   177300 4327727898 /usr/local/Cellar/libpng/1.6.37/lib/libpng16.16.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   211376 4317874275 /usr/local/Cellar/jpeg/9c/lib/libjpeg.9.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   391080 4327730306 /usr/local/Cellar/webp/1.0.2/lib/libwebp.7.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   605540 4327728087 /usr/local/Cellar/freetype/2.10.0/lib/libfreetype.6.dylib
php-fpm 35604 wenqidong  txt       REG                1,5  2534440 4316030936 /usr/local/Cellar/icu4c/62.1/lib/libicui18n.62.1.dylib
php-fpm 35604 wenqidong  txt       REG                1,5  1552904 4316030955 /usr/local/Cellar/icu4c/62.1/lib/libicuuc.62.1.dylib
php-fpm 35604 wenqidong  txt       REG                1,5 26841184 4316030962 /usr/local/Cellar/icu4c/62.1/lib/libicudata.62.1.dylib
php-fpm 35604 wenqidong  txt       REG                1,5    60840 4316030951 /usr/local/Cellar/icu4c/62.1/lib/libicuio.62.1.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   373876 4317867695 /usr/local/Cellar/unixodbc/2.3.7/lib/libodbc.2.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   282788 4320679594 /usr/local/lib/php/pecl/20160303/xdebug.so
php-fpm 35604 wenqidong  txt       REG                1,5   318992 4317891470 /usr/local/Cellar/php@7.1/7.1.23/lib/php/20160303/opcache.so
php-fpm 35604 wenqidong  txt       REG                1,5  1558496 4324460045 /usr/local/lib/php/pecl/20160303/swoole.so
php-fpm 35604 wenqidong  txt       REG                1,5   558048 4319499935 /usr/local/Cellar/brotli/1.0.7/lib/libbrotlienc.1.0.7.dylib
php-fpm 35604 wenqidong  txt       REG                1,5    80932 4317896198 /usr/local/Cellar/zlib/1.2.11/lib/libz.1.2.11.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   135712 4319499932 /usr/local/Cellar/brotli/1.0.7/lib/libbrotlicommon.1.0.7.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   105296 4317957996 /usr/local/lib/php/pecl/20160303/memcached.so
php-fpm 35604 wenqidong  txt       REG                1,5   174320 4317860735 /usr/local/Cellar/libmemcached/1.0.18_2/lib/libmemcached.11.dylib
php-fpm 35604 wenqidong  txt       REG                1,5   444412 4317963414 /usr/local/lib/php/pecl/20160303/redis.so
php-fpm 35604 wenqidong  txt       REG                1,5   973824 4325410994 /usr/lib/dyld
php-fpm 35604 wenqidong    0u      CHR                3,2  0t16121        311 /dev/null
php-fpm 35604 wenqidong    1u      CHR                3,2  0t16121        311 /dev/null
php-fpm 35604 wenqidong    2u      CHR                3,2  0t16121        311 /dev/null
php-fpm 35604 wenqidong    3u      REG                1,5        0 4329100708 /private/tmp/.ZendSem.dcK8t4
php-fpm 35604 wenqidong    5w      REG                1,5    81054 4329084751 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php
php-fpm 35604 wenqidong    6u     IPv4 0xc4c9d0d2760506b1      0t0        TCP localhost:cslistener (LISTEN)
php-fpm 35604 wenqidong    7w      REG                1,5   349924 4329100717 /Users/wenqidong/log/xdebug/trace.3130015676.35604.xt
php-fpm 35604 wenqidong    8w      REG                1,5    62076 4329100730 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.009a55
php-fpm 35604 wenqidong    9w      REG                1,5   253848 4329100732 /Users/wenqidong/log/xdebug/trace.3130015676.35604.027687.xt
php-fpm 35604 wenqidong   10w      REG                1,5   121711 4329100745 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.031571
php-fpm 35604 wenqidong   11w      REG                1,5      828 4329100722 /Users/wenqidong/log/xdebug/trace.1573365040.35604.xt
php-fpm 35604 wenqidong   12   NPOLICY                                        
php-fpm 35604 wenqidong   13u     unix 0xc4c9d0d27255d569      0t0            ->0xc4c9d0d27255c5c9
php-fpm 35604 wenqidong   14w      REG                1,5   577126 4329100746 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0dfb13.xt
php-fpm 35604 wenqidong   15w      REG                1,5    79743 4329100762 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0c055a
php-fpm 35604 wenqidong   16w      REG                1,5   344300 4329100763 /Users/wenqidong/log/xdebug/trace.3130015676.35604.080774.xt
php-fpm 35604 wenqidong   17w      REG                1,5    81125 4329100781 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.015da7
php-fpm 35604 wenqidong   18w      REG                1,5      828 4329100753 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0c058a.xt
php-fpm 35604 wenqidong   19w      REG                1,5   349940 4329100782 /Users/wenqidong/log/xdebug/trace.3130015676.35604.09bd38.xt
php-fpm 35604 wenqidong   20w      REG                1,5   121578 4329100797 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0b76ed
php-fpm 35604 wenqidong   21w      REG                1,5      828 4329100772 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0a4b13.xt
php-fpm 35604 wenqidong   22w      REG                1,5   577126 4329100798 /Users/wenqidong/log/xdebug/trace.3130015676.35604.075790.xt
php-fpm 35604 wenqidong   23w      REG                1,5   100853 4329100817 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0532f6
php-fpm 35604 wenqidong   24w      REG                1,5      828 4329100783 /Users/wenqidong/log/xdebug/trace.1573365040.35604.09d5a3.xt
php-fpm 35604 wenqidong   25w      REG                1,5   460091 4329100818 /Users/wenqidong/log/xdebug/trace.3130015676.35604.046009.xt
php-fpm 35604 wenqidong   26w      REG                1,5   112764 4329100898 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.021fb3
php-fpm 35604 wenqidong   27w      REG                1,5      828 4329100803 /Users/wenqidong/log/xdebug/trace.1573365040.35604.08c199.xt
php-fpm 35604 wenqidong   28w      REG                1,5   528724 4329100899 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0090e9.xt
php-fpm 35604 wenqidong   29w      REG                1,5   101627 4329100959 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.00361d
php-fpm 35604 wenqidong   30w      REG                1,5      828 4329100819 /Users/wenqidong/log/xdebug/trace.1573365040.35604.036be2.xt
php-fpm 35604 wenqidong   31w      REG                1,5   464438 4329100960 /Users/wenqidong/log/xdebug/trace.3130015676.35604.017861.xt
php-fpm 35604 wenqidong   32w      REG                1,5   101754 4329100991 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.00ad44
php-fpm 35604 wenqidong   33w      REG                1,5      828 4329100900 /Users/wenqidong/log/xdebug/trace.1573365040.35604.05a9e6.xt
php-fpm 35604 wenqidong   34w      REG                1,5   464438 4329100992 /Users/wenqidong/log/xdebug/trace.3130015676.35604.03f2e4.xt
php-fpm 35604 wenqidong   35w      REG                1,5   101620 4329101017 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.02752c
php-fpm 35604 wenqidong   36w      REG                1,5      828 4329100961 /Users/wenqidong/log/xdebug/trace.1573365040.35604.022ab6.xt
php-fpm 35604 wenqidong   37w      REG                1,5   464438 4329101018 /Users/wenqidong/log/xdebug/trace.3130015676.35604.00f433.xt
php-fpm 35604 wenqidong   38w      REG                1,5    79754 4329101025 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.062e1e
php-fpm 35604 wenqidong   39w      REG                1,5      828 4329100993 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0b73dc.xt
php-fpm 35604 wenqidong   40w      REG                1,5   344300 4329101026 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0c601d.xt
php-fpm 35604 wenqidong   41w      REG                1,5    89439 4329101047 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0c7a45
php-fpm 35604 wenqidong   42w      REG                1,5      828 4329101019 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0b7772.xt
php-fpm 35604 wenqidong   43w      REG                1,5   394710 4329101048 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0a433b.xt
php-fpm 35604 wenqidong   44w      REG                1,5   126704 4329101069 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0a76d9
php-fpm 35604 wenqidong   45w      REG                1,5      828 4329101035 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0c08d9.xt
php-fpm 35604 wenqidong   46w      REG                1,5   610170 4329101070 /Users/wenqidong/log/xdebug/trace.3130015676.35604.08c949.xt
php-fpm 35604 wenqidong   47w      REG                1,5    88675 4329101078 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.084535
php-fpm 35604 wenqidong   48w      REG                1,5      828 4329101050 /Users/wenqidong/log/xdebug/trace.1573365040.35604.028edb.xt
php-fpm 35604 wenqidong   49w      REG                1,5   395268 4329101080 /Users/wenqidong/log/xdebug/trace.3130015676.35604.01feb5.xt
php-fpm 35604 wenqidong   50w      REG                1,5   126658 4329101102 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0ca6fc
php-fpm 35604 wenqidong   51w      REG                1,5      828 4329101071 /Users/wenqidong/log/xdebug/trace.1573365040.35604.062b53.xt
php-fpm 35604 wenqidong   52w      REG                1,5   610170 4329101103 /Users/wenqidong/log/xdebug/trace.3130015676.35604.090c42.xt
php-fpm 35604 wenqidong   53w      REG                1,5   101622 4329101117 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.046668
php-fpm 35604 wenqidong   54w      REG                1,5      828 4329101082 /Users/wenqidong/log/xdebug/trace.1573365040.35604.014fee.xt
php-fpm 35604 wenqidong   55w      REG                1,5   464438 4329101118 /Users/wenqidong/log/xdebug/trace.3130015676.35604.04fd90.xt
php-fpm 35604 wenqidong   56w      REG                1,5   121580 4329101135 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0482c9
php-fpm 35604 wenqidong   57w      REG                1,5      828 4329101104 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0af4df.xt
php-fpm 35604 wenqidong   58w      REG                1,5   577126 4329101136 /Users/wenqidong/log/xdebug/trace.3130015676.35604.047997.xt
php-fpm 35604 wenqidong   59w      REG                1,5   105233 4329101169 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.037139
php-fpm 35604 wenqidong   60w      REG                1,5      828 4329101119 /Users/wenqidong/log/xdebug/trace.1573365040.35604.075286.xt
php-fpm 35604 wenqidong   61w      REG                1,5   489953 4329101170 /Users/wenqidong/log/xdebug/trace.3130015676.35604.089e08.xt
php-fpm 35604 wenqidong   62w      REG                1,5   115971 4329102383 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.060355
php-fpm 35604 wenqidong   63w      REG                1,5      828 4329101141 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0e29c7.xt
php-fpm 35604 wenqidong   64w      REG                1,5   532042 4329102384 /Users/wenqidong/log/xdebug/trace.3130015676.35604.093e51.xt
php-fpm 35604 wenqidong   65w      REG                1,5    87819 4329102422 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.034565
php-fpm 35604 wenqidong   66w      REG                1,5      828 4329101171 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0566e4.xt
php-fpm 35604 wenqidong   67w      REG                1,5   381977 4329102423 /Users/wenqidong/log/xdebug/trace.3130015676.35604.057662.xt
php-fpm 35604 wenqidong   68w      REG                1,5   121861 4329102543 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0c8f7a
php-fpm 35604 wenqidong   69w      REG                1,5      828 4329102388 /Users/wenqidong/log/xdebug/trace.1573365040.35604.018053.xt
php-fpm 35604 wenqidong   70w      REG                1,5   578466 4329102544 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0bf3cf.xt
php-fpm 35604 wenqidong   71w      REG                1,5   115921 4329102592 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.081a66
php-fpm 35604 wenqidong   72w      REG                1,5      828 4329102424 /Users/wenqidong/log/xdebug/trace.1573365040.35604.01e63c.xt
php-fpm 35604 wenqidong   73w      REG                1,5   532042 4329102593 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0799fa.xt
php-fpm 35604 wenqidong   74w      REG                1,5   146613 4329102609 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0c4c16
php-fpm 35604 wenqidong   75w      REG                1,5      828 4329102547 /Users/wenqidong/log/xdebug/trace.1573365040.35604.05ab7b.xt
php-fpm 35604 wenqidong   76w      REG                1,5   731448 4329102610 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0c4464.xt
php-fpm 35604 wenqidong   77w      REG                1,5    80954 4329102628 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.05e212
php-fpm 35604 wenqidong   78w      REG                1,5      828 4329102597 /Users/wenqidong/log/xdebug/trace.1573365040.35604.081c43.xt
php-fpm 35604 wenqidong   79w      REG                1,5   349924 4329102629 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0a185b.xt
php-fpm 35604 wenqidong   80w      REG                1,5   121899 4329102680 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0bc68c
php-fpm 35604 wenqidong   81w      REG                1,5      828 4329102611 /Users/wenqidong/log/xdebug/trace.1573365040.35604.03f757.xt
php-fpm 35604 wenqidong   82w      REG                1,5   578466 4329102681 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0aaff5.xt
php-fpm 35604 wenqidong   83w      REG                1,5   100892 4329107762 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.08c2b1
php-fpm 35604 wenqidong   84w      REG                1,5      828 4329102631 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0b4035.xt
php-fpm 35604 wenqidong   85w      REG                1,5   460091 4329107763 /Users/wenqidong/log/xdebug/trace.3130015676.35604.04f909.xt
php-fpm 35604 wenqidong   86w      REG                1,5   100896 4329107786 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.075a4b
php-fpm 35604 wenqidong   87w      REG                1,5      828 4329102684 /Users/wenqidong/log/xdebug/trace.1573365040.35604.01fcdf.xt
php-fpm 35604 wenqidong   88w      REG                1,5   460091 4329107787 /Users/wenqidong/log/xdebug/trace.3130015676.35604.074ebf.xt
php-fpm 35604 wenqidong   89w      REG                1,5   132439 4329107943 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.07d1cc
php-fpm 35604 wenqidong   90w      REG                1,5      828 4329107764 /Users/wenqidong/log/xdebug/trace.1573365040.35604.03b6db.xt
php-fpm 35604 wenqidong   91w      REG                1,5   643289 4329107944 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0c46f4.xt
php-fpm 35604 wenqidong   92w      REG                1,5   100996 4329108165 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.05fe26
php-fpm 35604 wenqidong   93w      REG                1,5      828 4329107788 /Users/wenqidong/log/xdebug/trace.1573365040.35604.00b0ea.xt
php-fpm 35604 wenqidong   94w      REG                1,5   460091 4329108166 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0b44a1.xt
php-fpm 35604 wenqidong   95w      REG                1,5   100906 4329108188 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.03ba9b
php-fpm 35604 wenqidong   96w      REG                1,5      828 4329107951 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0ef85e.xt
php-fpm 35604 wenqidong   97w      REG                1,5   460091 4329108189 /Users/wenqidong/log/xdebug/trace.3130015676.35604.047b4a.xt
php-fpm 35604 wenqidong   98w      REG                1,5   100844 4329108312 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0a18af
php-fpm 35604 wenqidong   99w      REG                1,5      828 4329108167 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0f3266.xt
php-fpm 35604 wenqidong  100w      REG                1,5   460091 4329108313 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0c04ba.xt
php-fpm 35604 wenqidong  101w      REG                1,5   100866 4329108329 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0838fc
php-fpm 35604 wenqidong  102w      REG                1,5      828 4329108190 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0dce4a.xt
php-fpm 35604 wenqidong  103w      REG                1,5   460091 4329108330 /Users/wenqidong/log/xdebug/trace.3130015676.35604.09395c.xt
php-fpm 35604 wenqidong  104w      REG                1,5   100873 4329108344 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.098027
php-fpm 35604 wenqidong  105w      REG                1,5      828 4329108314 /Users/wenqidong/log/xdebug/trace.1573365040.35604.008a9f.xt
php-fpm 35604 wenqidong  106w      REG                1,5   460091 4329108345 /Users/wenqidong/log/xdebug/trace.3130015676.35604.044c57.xt
php-fpm 35604 wenqidong  107w      REG                1,5   100910 4329108357 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0add5d
php-fpm 35604 wenqidong  108w      REG                1,5      828 4329108331 /Users/wenqidong/log/xdebug/trace.1573365040.35604.04a11f.xt
php-fpm 35604 wenqidong  109w      REG                1,5   460091 4329108358 /Users/wenqidong/log/xdebug/trace.3130015676.35604.07461b.xt
php-fpm 35604 wenqidong  110w      REG                1,5   100854 4329108374 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.09fcef
php-fpm 35604 wenqidong  111w      REG                1,5      828 4329108346 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0e07c6.xt
php-fpm 35604 wenqidong  112w      REG                1,5   460091 4329108375 /Users/wenqidong/log/xdebug/trace.3130015676.35604.070656.xt
php-fpm 35604 wenqidong  113w      REG                1,5   100932 4329108387 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.084410
php-fpm 35604 wenqidong  114w      REG                1,5      828 4329108359 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0ed412.xt
php-fpm 35604 wenqidong  115w      REG                1,5   460091 4329108388 /Users/wenqidong/log/xdebug/trace.3130015676.35604.039722.xt
php-fpm 35604 wenqidong  116w      REG                1,5   100874 4329108399 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0196ba
php-fpm 35604 wenqidong  117w      REG                1,5      828 4329108376 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0bc5a2.xt
php-fpm 35604 wenqidong  118w      REG                1,5   460091 4329108400 /Users/wenqidong/log/xdebug/trace.3130015676.35604.095928.xt
php-fpm 35604 wenqidong  119w      REG                1,5   100859 4329108412 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.036434
php-fpm 35604 wenqidong  120w      REG                1,5      828 4329108389 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0d5d1f.xt
php-fpm 35604 wenqidong  121w      REG                1,5   460091 4329108413 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0335e5.xt
php-fpm 35604 wenqidong  122w      REG                1,5   100862 4329108488 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0e1c9c
php-fpm 35604 wenqidong  123w      REG                1,5      828 4329108401 /Users/wenqidong/log/xdebug/trace.1573365040.35604.013602.xt
php-fpm 35604 wenqidong  124w      REG                1,5   460091 4329108489 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0ea9f5.xt
php-fpm 35604 wenqidong  125w      REG                1,5   100840 4329108522 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0f237a
php-fpm 35604 wenqidong  126w      REG                1,5      828 4329108415 /Users/wenqidong/log/xdebug/trace.1573365040.35604.084333.xt
php-fpm 35604 wenqidong  127w      REG                1,5   460091 4329108523 /Users/wenqidong/log/xdebug/trace.3130015676.35604.064d85.xt
php-fpm 35604 wenqidong  128w      REG                1,5   100905 4329108534 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.07ad4d
php-fpm 35604 wenqidong  129w      REG                1,5      828 4329108490 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0ef618.xt
php-fpm 35604 wenqidong  130w      REG                1,5   460091 4329108535 /Users/wenqidong/log/xdebug/trace.3130015676.35604.02324a.xt
php-fpm 35604 wenqidong  131w      REG                1,5   100872 4329108546 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.040be8
php-fpm 35604 wenqidong  132w      REG                1,5      828 4329108524 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0f3d8d.xt
php-fpm 35604 wenqidong  133w      REG                1,5   460091 4329108547 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0258a2.xt
php-fpm 35604 wenqidong  134w      REG                1,5   100874 4329108561 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.02acb7
php-fpm 35604 wenqidong  135w      REG                1,5      828 4329108536 /Users/wenqidong/log/xdebug/trace.1573365040.35604.08f6e1.xt
php-fpm 35604 wenqidong  136w      REG                1,5   460091 4329108562 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0b667d.xt
php-fpm 35604 wenqidong  137w      REG                1,5   100916 4329108578 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.03d7f8
php-fpm 35604 wenqidong  138w      REG                1,5      828 4329108548 
.....
/Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.01070d
php-fpm 35604 wenqidong  241w      REG                1,5      828 4329140988 /Users/wenqidong/log/xdebug/trace.1573365040.35604.063ce5.xt
php-fpm 35604 wenqidong  242w      REG                1,5   460091 4329141378 /Users/wenqidong/log/xdebug/trace.3130015676.35604.0db669.xt
php-fpm 35604 wenqidong  243w      REG                1,5   100871 4329141391 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.026a15
php-fpm 35604 wenqidong  244w      REG                1,5      828 4329141367 /Users/wenqidong/log/xdebug/trace.1573365040.35604.0078ea.xt
php-fpm 35604 wenqidong  245w      REG                1,5   460091 4329141392 /Users/wenqidong/log/xdebug/trace.3130015676.35604.061d30.xt
php-fpm 35604 wenqidong  246w      REG                1,5   100872 4329141403 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0d0301
php-fpm 35604 wenqidong  247w      REG                1,5      828 4329141379 /Users/wenqidong/log/xdebug/trace.1573365040.35604.076667.xt
php-fpm 35604 wenqidong  248w      REG                1,5   460091 4329141404 /Users/wenqidong/log/xdebug/trace.3130015676.35604.006948.xt
php-fpm 35604 wenqidong  249w      REG                1,5   100852 4329141414 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.0999e2
php-fpm 35604 wenqidong  250w      REG                1,5      828 4329141393 /Users/wenqidong/log/xdebug/trace.1573365040.35604.00dd52.xt
php-fpm 35604 wenqidong  251w      REG                1,5   460091 4329141415 /Users/wenqidong/log/xdebug/trace.3130015676.35604.044df6.xt
php-fpm 35604 wenqidong  252w      REG                1,5    59348 4329141422 /Users/wenqidong/log/xdebug/profiler/cachegrind.out._Users_wenqidong_cdinfo_showdoc_server_index_php.02a653
php-fpm 35604 wenqidong  253w      REG                1,5      828 4329141405 /Users/wenqidong/log/xdebug/trace.1573365040.35604.06adfb.xt
php-fpm 35604 wenqidong  254w      REG                1,5   248908 4329141423 /Users/wenqidong/log/xdebug/trace.3130015676.35604.03e523.xt
wenqidongdeMBP:log wenqidong$ 

可以看出 大部分的文件都是 xdebug/trade.相关的,看来这个问题确实跟最近启动的调试功能有关。

如果文件数过多使用lsof -p 进程id命令无法完全查看的话,可以使用lsof -p 进程id > openfiles.log将执行结果内容输出到日志文件中查看。

解决方法

  1. 增大允许打开的文件数——命令方式
ulimit -n 2048

这样就可以把当前用户的最大允许打开文件数量设置为2048了,但这种设置方法在重启后会还原为默认值。 这个命令执行后,还需要重启一下php-fpm才会生效。

ulimit -n命令非root用户只能设置到4096。

想要设置到8192需要sudo权限或者root用户。

  1. 增大允许打开的文件数——修改系统配置文件
vim /etc/security/limits.conf  
#在最后加入  
* soft nofile 4096  
* hard nofile 4096  

或者只加入

 * - nofile 8192

最前的 * 表示所有用户,可根据需要设置某一用户,例如

roy soft nofile 8192  
roy hard nofile 8192 

注意"nofile"项有两个可能的限制措施。

就是项下的hard和soft。

要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用"-"字符设定, 则hard和soft设定会同时被设定。

  1. 检查程序问题
1)打开的这些文件是不是都是必要的?
2)定位到打开这些文件的代码
3)是否程序操作了文件写入,但是没有进行正常关闭
4)是否程序进行了通讯,但是没有正常关闭(也就是没有超时结束的机制)

如果程序中存在这些问题的话,无论系统句柄数设置的多么大,随着时间的推移,也一定会占用完。