Opcache
1. Opcache の原理
PHP の通常の実行プロセスは次のとおりです。
リクエスト (nginx、apache、cli など) –> Zend エンジンは .php ファイルを読み取ります –> その辞書と式をスキャンします –> ファイルを解析します –> 実行されるコンピューター コードを作成します ( Opcode) –> ;最後に Opcode を実行–>response return
PHP スクリプトが要求されるたびに、上記の手順が実行されます。PHP ソース コードが変更されない場合、Opcode も変更されません。明らかに、毎回オペコードを再生成する必要はありません。Web のユビキタス キャッシュ メカニズムと組み合わせることで、オペコードをキャッシュできます。将来的には、キャッシュされたオペコードに直接アクセスした方が高速ではないでしょうか? オペコードを有効にした後のフローチャートキャッシュは次のとおりです。
オペコード キャッシュの目的は、コンパイルの繰り返しを回避し、CPU とメモリのオーバーヘッドを削減することです。
2. Opcache 構成
php.ini の下に追加します:
// 加载opcache(需确认已安装opcache拓展) zend_extension=opcache.so // 开启opcache opcache.enable = 1 // OPcache共享内存存储大小,单位MB opcache.memory_consumption=1024 // 1G // PHP使用了一种叫做字符串驻留,默认是4MB opcache.interned_strings_buffer=32 // 这个选项用于控制内存中最多可以缓存多少个PHP文件,这个选项必须得设置得足够大,大于你的项目中的所有PHP文件的总和 opcache.max_accelerated_files=80000 // 设置缓存的过期时间(单位是秒),为0的话每次都要检查 opcache.revalidate_freq=3 // 从字面上理解就是“允许更快速关闭” opcache.fast_shutdown=1 // CLI环境下,PHP启用OPcache opcache.enable_cli=1
HugePage
1. HugePage の原則
この機能を有効にすると、PHP7 は独自の TEXT セグメント (実行本体) を Huagepage に「移動」します。以前のテストでは、WordPress での QPS が 2% ~ 3% 増加することが着実に確認できました。
Hugepageとは何かというと、簡単に言うとデフォルトのメモリを4KB単位でページングしており、仮想アドレスとメモリアドレスを変換する必要があり、この変換にはテーブルルックアップが必要になります。プロセスでは、CPU に TLB (Translation Lookaside Buffer) が組み込まれます。仮想ページが小さい場合、テーブル内のエントリの数が多くなり、TLB サイズが制限されているのは明らかです。エントリが多いほど、値は高くなります。 TLB のキャッシュ ミスが発生するため、ラージ メモリ ページを有効にすると、間接的にこの TLB キャッシュ ミスを減らすことができます。詳細な紹介については、Google でよく調べたので詳しくは説明しません。ここでは、有効にする方法を中心に説明しますこの新機能により、パフォーマンスが大幅に向上します。
2. HugePage の構成
$ sudo sysctl vm.nr_hugepages=512 // 切勿越大越好,会长占内存
512 の予約済み巨大ページ メモリを割り当てます:
cat /proc/meminfo | grep Huge AnonHugePages: 106496 kB HugePages_Total: 512 HugePages_Free: 504 HugePages_Rsvd: 27 HugePages_Surp: 0 Hugepagesize: 2048 kB
次に、php.ini:
opcache.huge_code_pages=1
## を追加します。 #Opcache ファイル キャッシュ
1. Opcache ファイル キャッシュの概要opcache を使用して、コンパイルされた PHP ファイルをファイルとして保存し、PHP ソース コードの保護とスクリプトの高速化を実現します。明らかにパフォーマンスが向上します
2. Opcache ファイル キャッシュの設定php.ini:
opcache.file_cache=/tmpを追加して、PHP が /tmp ディレクトリにあるように、一部の Opcode バイナリ エクスポートをキャッシュします。ファイルは、PHP ライフサイクル全体にわたって存在する可能性があります。
設定後に php-fpm を再起動する必要があります
個人テスト
システム: centOs 7php バージョン: 7.4
nginx
laravel: 8.5
最適化前
cpu:95%- 96%メモリ: 2G/16G
10 分 4W 同時実行
障害率: 24%
![PHP7 パフォーマンスの最適化]
![PHP7 パフォーマンスの最適化に関するメモ]
#最適化後 #cpu:20%-40 %
メモリ: 5.8G/16G (ここでは HugePage が 2048 に設定されています)10 分で 4W の同時実行
障害率: 0%
最初のストレス テスト 集計レポート
1秒あたりに処理されたトランザクション数
2回目のストレステスト集計レポート
1秒あたりのトランザクションの処理
推奨学習: 「
>>」
以上が高品質ノートがここにあります! PHP7のパフォーマンス最適化についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

在php5中,我们可以使用fsockopen()函数来检测TCP端口。这个函数可以用来打开一个网络连接和进行一些网络通信。但是在php7中,fsockopen()函数可能会遇到一些问题,例如无法打开端口、无法连接到服务器等。为了解决这个问题,我们可以使用socket_create()函数和socket_connect()函数来检测TCP端口。

php7.0安装mongo扩展的方法:1、创建mongodb用户组和用户;2、下载mongodb源码包,并将源码包放到“/usr/local/src/”目录下;3、进入“src/”目录;4、解压源码包;5、创建mongodb文件目录;6、将文件复制到“mongodb/”目录;7、创建mongodb配置文件并修改配置即可。

解决 PHP 7.0 中插件未显示已安装问题的方法:检查插件配置并启用插件。重新启动 PHP 以应用配置更改。检查插件文件权限,确保其正确。安装丢失的依赖项,以确保插件正常运行。如果其他步骤均失败,则重建 PHP。其他可能原因包括插件版本不兼容、加载错误版本或 PHP 配置问题。

PHP8相较于PHP7在性能、新特性和语法改进、类型系统、错误处理和扩展等方面都有一些优势和改进。然而,选择使用哪个版本要根据具体的需求和项目情况来决定。详细介绍:1、性能提升,PHP8引入了Just-in-Time(JIT)编译器,可以提高代码的执行速度;2、新特性和语法改进,PHP8支持命名参数和可选参数的声明,使得函数调用更加灵活;引入了匿名类、属性的类型声明等等。

php7.0安装部署的方法:1、到PHP官网下载与本机系统对应的安装版本;2、将下载的zip文件解压到指定目录;3、打开命令行窗口,在“E:\php7”目录下运行“php -v”命令即可。

PHP服务器环境常见的解决方法包括:确保已安装正确的PHP版本和已复制相关文件到模块目录。临时或永久禁用SELinux。检查并配置PHP.ini,确保已添加必要的扩展和进行正确设置。启动或重启PHP-FPM服务。检查DNS设置是否存在解析问题。

随着互联网技术的发展,计算机编程语言也随之不断发展和更新。PHP作为一种广泛应用于Web开发领域的编程语言,在多年的发展中经历了多个版本的更新,而最新版的PHP7又在性能和稳定性上有了巨大提升。为了能更好地应用PHP编程语言,这篇文章将介绍PHP7的下载和安装教程,供初学者参考。

本地环境:redhat6.7系统。nginx1.12.1,php7.1.0,代码使用yii2框架问题:本地的web站需要用到elasticsearch服务。当php使用本地服务器搭建的elasticsearch时,本地的负载都是正常。当我使用aws的elasticsearchservice服务时,本地服务器出现负载经常过高的情况。查看nginx和php日志,发现没有异常。系统的并发连接数也不高。这时候想到我们老大给我讲的一个strace诊断工具。调试过程:查找一个php的子进程idstrace-


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
