centos

laravel在centos上运行慢怎么办

小樊
32
2025-02-26 18:52:12
栏目: 智能运维

当 Laravel 在 CentOS 上运行缓慢时,可以通过以下方法进行优化:

开启 OpCache

OpCache 是 PHP 的一个扩展,用于加速 PHP 脚本的执行。它通过将 PHP 脚本的编译结果(即 opcode)缓存起来,从而避免每次请求都重新编译脚本,提高性能。在 php.ini 内开启 OpCache,相关参数如下:

[opcache]
opcache.enable=1 ; 启用 opcache
opcache.enable_cli=1 ; 在命令行模式下也启用 opcache
opcache.jit=tracing ; 启用 jit 跟踪模式,根据执行情况动态编译热点代码
opcache.jit_buffer_size=256m ; 为 jit 编译保留的内存大小
opcache.memory_consumption=512m ; opcache 可使用的内存大小
opcache.interned_strings_buffer=64m ; 用于存储内部字符串的缓冲区大小
opcache.max_accelerated_files=10000 ; 缓存的最大文件数量
opcache.revalidate_freq=60 ; opcache 每隔 60 秒会检查一次脚本文件是否有修改。默认值通常为 2 秒,0 则认为是每次启动都检查文件是否修改,会增加 io 操作,影响性能,这个参数只有在 opcache.validate_timestamps=1 的情况下才有效
opcache.validate_timestamps=1 ; 启用文件变更检查
opcache.fast_shutdown=1 ; 快速关闭,提高性能
opcache.save_comments=1 ; 保存注释,某些框架或应用可能依赖注释

配置 PHP-FPM

通过 htop 观察发现,内存使用率很少,说明内存并不是 Laravel 的瓶颈,考虑增加 PHP-FPM 的工作池:

emergency_restart_threshold = 30 ; 在 60s 内超过 30 个 php-fpm 进程因出现异常(如段错误)而退出,那么 php-fpm 主进程会自动重启
emergency_restart_interval = 60s ; 配合第一个选项使用
process_control_timeout = 5s ; 停止 php-fpm 的时候,如果子进程超过 5s 

优化 Composer 自动加载

运行以下命令来优化 Composer 的自动加载:

composer dump-autoload --optimize

检查和优化系统资源

其他优化建议

通过上述方法,可以显著提高 Laravel 在 CentOS 上的运行速度。如果问题仍然存在,建议进一步检查应用代码和数据库查询,以找到并解决性能瓶颈。

0
看了该问题的人还看了