laravel運行速度在某次升級之後,變得特別慢。本地開發會出現這樣的問題,遠程服務器上就沒有。
表現爲:第一次登陸後,正常速度,可閒置一會後再刷新網頁,變得奇慢無比。
解決:
打開php-fpm的慢日誌,發現問題定位到 db:connect 上,是數據庫連接佔用了過多的時間。於是,
在 config/database.php
寫了以下 PDO
(options=>…)的參數:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => 'e_',
'strict' => true,
'engine' => null,
'options' => [
PDO::ATTR_PERSISTENT => false,
PDO::ATTR_TIMEOUT => 60 * 3,
]
結果,登陸之後閒置10分鐘後再刷新網頁,無卡頓。速度回覆正常。
後記:提高虛擬機掛載硬盤的IO速度,可參考
https://blog.csdn.net/shilei_zhang/article/details/72811274