"Too many open files" in Google API "guzzle" guzzlehttp ConnectException.php

人氣點閱:7160
發表人
"Too many open files" in Google API "guzzle" guzzlehttp ConnectException.php 2023-03-05 00:50
/ / /

Possible Symptoms



代碼:


# You use compser to install Google Cloud API but you will see a lot of CLOSE_WAIT pending when doing "lsof" connect to "1e100.net"

# and then, these CLOSE_WAIT + (ESTABLISHED) will be exceed 1024

# Very likely you will see Too many open files.


$ lsof | grep -i '1e100.net'

php TCP YOUR_HOSTNAME:36144->nuq04s42-in-x0a.1e100.net:https (CLOSE_WAIT)
php TCP YOUR_HOSTNAME:36152->nuq04s42-in-x0a.1e100.net:https (CLOSE_WAIT)
php TCP YOUR_HOSTNAME:36156->nuq04s42-in-x0a.1e100.net:https (CLOSE_WAIT)
php TCP YOUR_HOSTNAME:36160->sfo03s24-in-x0a.1e100.net:https (CLOSE_WAIT)
php TCP YOUR_HOSTNAME:36160->sfo03s24-in-x0a.1e100.net:https (CLOSE_WAIT)



PHP Warning:  include(/YOUR-WORKING-FOLDER/vendor/guzzlehttp/guzzle/src/Exception/ConnectException.php): Failed to open stream: Too many open files in /YOUR-WORKING-FOLDER/vendor/composer/ClassLoader.php on line 571
PHP Warning:  include(): Failed opening '/YOUR-WORKING-FOLDER/vendor/composer/../guzzlehttp/guzzle/src/Exception/ConnectException.php' for inclusion (include_path='.:/usr/share/php') in /YOUR-WORKING-FOLDER/vendor/composer/ClassLoader.php on line 571
PHP Fatal error:  Uncaught Error: Class "GuzzleHttp\Exception\ConnectException" not found in /YOUR-WORKING-FOLDER/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:210


$ cat /proc/YOUR_SCRIPT_PID/limit | grep -i 'max open files'
✅ Max open files              1024               1024              files   





Workaround / Solution



Just increase the ulimit.

代碼:

$ vi /etc/security/limits.conf

# -------------------------------------
# ADD the following lines, increase the value from 1024 to "16384" or more
# -------------------------------------
*         hard    nofile      16384
*         soft    nofile      16384
root      hard    nofile      16384
root      soft    nofile      16384

$ reboot

$ cat /proc/YOUR_SCRIPT_PID/limit | grep -i 'max open files'
✅  Max open files            16384               16384              files   





etc-security-limits-conf (max open files).jpg
etc-security-limits-conf (max open files).jpg



________________

美術插畫設計案子報價系統 v0.1 Beta
爪哇禾雀