Laravel占用过多的php-fpm解决方式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/amazingdyd/article/details/79640475

近日发现所做的网站有一个php-fpm进程超多,经常卡死。。。细究原因。。发现报的这个错误:

[21-Mar-2018 14:46:57]  [pool www] pid 5897
script_filename = /home/htdocs/wkds/public/index.php
[0x00002b317d03e800] getRealPath() /home/htdocs/wkds/vendor/symfony/finder/Iterator/DateRangeFilterIterator.php:47
[0x00007fff7f72a910] accept() unknown:0
[0x00007fff7f72ae70] next() unknown:0
[0x00007fff7f72b3e0] next() unknown:0
[0x00002b317d03e478] gc() /home/htdocs/wkds/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php:105
[0x00002b317d03e0c8] gc() /home/htdocs/wkds/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:152
[0x00002b317d03de58] collectGarbage() /home/htdocs/wkds/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:70
[0x00007fff7f72c870] handle() unknown:0
[0x00002b317d03dad8] call_user_func_array() /home/htdocs/wkds/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:136
[0x00007fff7f72d1c0] Illuminate\Pipeline\{closure}() unknown:0
[0x00002b317d03d640] call_user_func() /home/htdocs/wkds/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:32
[0x00002b317d03d350] Illuminate\Routing\{closure}() /home/htdocs/wkds/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37
[0x00007fff7f72e060] handle() unknown:0
[0x00002b317d03d0d0] call_user_func_array() /home/htdocs/wkds/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:136
[0x00007fff7f72e9b0] Illuminate\Pipeline\{closure}() unknown:0
[0x00002b317d03cc38] call_user_func() /home/htdocs/wkds/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:32
[0x00002b317d03c928] Illuminate\Routing\{closure}() /home/htdocs/wkds/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:59
[0x00007fff7f72f850] handle() unknown:0
[0x00002b317d03c768] call_user_func_array() /home/htdocs/wkds/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:136
[0x00007fff7f7301a0] Illuminate\Pipeline\{closure}() unknown:0

大概意思就是寻找session文件耗费的时间太长导致报错。。(.env文件里session的存储方式设置的是file)

于是,打开config/session.php发现session的存续时长设置的太长了,再加上网站访问人数太多,发生了这个错误。。

    'lifetime' => 600,

    'expire_on_close' => false,

这里把expire_on_close设置为true,意味着用户关闭浏览器时自动删除session,或者把存续时间lifetime设置的短一点。

接下来,我们进入storage\freamework\sessions文件夹,把里面那个一条一条session记录的文件删除,就可以了(切记不能删除sessions文件夹,只能删除里面的文件,否则会造成写错误)。

猜你喜欢

转载自blog.csdn.net/amazingdyd/article/details/79640475