利用 Opcache 优化 php 框架的性能瓶颈

场景:

QPS不高,但CPU和内存消耗特别高,CPU消耗甚至达到100%

排除因素:

1、MySQL等数据库不存在慢查询

2、有Redis等缓存机制

3、接口代码不存在复杂逻辑、多层循环计算

猜测:

TP等PHP框架每次运行时需要加载大量框架文件,框架文件在编译过程中会造成服务器CPU消耗很大,导致接口性能下降

解决方案:

利用 Opcache 缓存编译好的文件,减少每次编译框架代码的次数

Opcache介绍:

Opcache通过将解析的PHP脚本预编译的字节码(Operate Code)存放在共享内存中来避免每次加载和解析PHP脚本的开销,解析器可以直接从共享内存读取已经缓存的字节码(Operate Code),从而大大提高PHP的执行效率。

当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(Operate Code,opcode)。

Opcode cache 的目的是避免重复编译,减少CPU和内存开销。

如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcode cache的性能提升是非常有限的。
 

Opcache原理:

PHP 从获取请求到发出响应的过程:

接受 request 请求(nginx,apache等)-> Zend引擎读取.php文件 -> 扫描其词典和表达式 -> 解析PHP文件 -> 创建要执行的计算机代码(称为Opcode) => 执行Opcode -> response 返回

改进方案:

如果源代码没有变化,那么Opcode也不会变化,因此可以把Opcode缓存下来,以后直接访问缓存的Opcode,如下图虚线部分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 要在PHP 7.3上安装opcache,请按照以下步骤操作: 1. 打开终端并运行以下命令以安装opcache: ``` sudo apt-get update sudo apt-get install php7.3-opcache ``` 2. 重启Apache或Nginx服务器: 对于Apache服务器,请运行以下命令: ``` sudo service apache2 restart ``` 对于Nginx服务器,请运行以下命令: ``` sudo service nginx restart ``` 3. 确认opcache已启用。您可以通过运行以下命令来检查: ``` php -i | grep opcache ``` 如果opcache已启用,则应该看到一些opcache相关的输出。 4. 配置opcache(可选)。opcache有一些配置选项可用于优化性能。您可以编辑php.ini文件并修改以下选项: ``` opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=10000 ``` 请注意,这些选项的默认值可能会因PHP版本和发行版而异。 5. 重启Apache或Nginx服务器以应用配置更改。 ### 回答2: 要安装PHP 7.3版本的opcache,您可以按照以下步骤进行操作: 1. 首先,确保您已经正确安装了PHP 7.3版本。您可以在终端上运行以下命令来检查版本: ``` php -v ``` 2. 接下来,您需要安装opcache扩展。在终端上执行以下命令来安装opcache扩展: ``` sudo apt-get install php7.3-opcache ``` 3. 安装完成后,您需要编辑PHP配置文件以启用opcache。您可以使用以下命令打开PHP配置文件: ``` sudo nano /etc/php/7.3/cli/php.ini ``` 4. 在配置文件中找到以下行,并确保它们的值如下: ``` opcache.enable=1 opcache.enable_cli=1 ``` 5. 保存并关闭文件(使用Ctrl + X,然后按Y和Enter键)。 6. 最后,重新启动PHP服务以使更改生效: ``` sudo service php7.3-fpm restart ``` 现在,您应该已经成功安装并启用了PHP 7.3的opcache扩展。您可以通过在终端上运行以下命令来验证opcache是否正常工作: ``` php -i | grep opcache ``` 您应该会看到一系列关于opcache的信息,这表示opcache已成功安装并启用。 请注意,上述步骤适用于Ubuntu操作系统,如果您使用其他操作系统,请相应地修改安装命令和配置文件的位置。 ### 回答3: 安装PHP 7.3的Opcache可以通过以下步骤完成: 1. 确保你的PHP版本是7.3。你可以在终端使用以下命令确认版本:php -v。 2. 在终端中输入以下命令安装Opcache扩展: sudo apt-get install php7.3-opcache 3. 安装完成后,需要编辑php.ini文件。在终端中输入以下命令打开该文件: sudo nano /etc/php/7.3/cli/php.ini 4. 在php.ini文件中,搜索opcache.enable并确保该行没有被注释掉。如果有注释,将其移除或者修改为opcache.enable=1。 5. 同样,搜索opcache.enable_cli并确保该行没有被注释掉。如果有注释,将其移除或者修改为opcache.enable_cli=1。 6. 可以按住Ctrl + X,然后按Y来保存更改。 7. 重启Web服务器以使更改生效。在终端中输入以下命令来重启Apache服务器: sudo systemctl restart apache2 8. 此时,Opcache已成功安装并启用在PHP 7.3中,你可以通过在代码中添加phpinfo()函数来检查Opcache是否已启用。 希望这些步骤对你安装PHP 7.3的Opcache有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘广宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值