Rumah > Artikel > pembangunan bahagian belakang > Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7
1 Prinsip Opcache
Proses pelaksanaan biasa PHP adalah seperti berikut
permintaan (nginx, apache, cli, dsb.) –> Enjin Zend membaca fail .php –> Opcode) –> ;Akhirnya laksanakan Opcode–> respons kembali
Setiap kali skrip PHP diminta, langkah di atas akan dilaksanakan Jika kod sumber PHP tidak berubah, maka Opcode tidak akan berubah. Jelas sekali, tidak perlu menjana semula Opcode setiap kali Digabungkan dengan mekanisme caching di mana-mana dalam Web, bukankah lebih pantas untuk mengakses Opcode yang dicache pada masa hadapan caching adalah seperti berikut:
Tujuan Opcode cache adalah untuk mengelakkan penyusunan berulang dan mengurangkan overhed CPU dan memori.
2. Konfigurasi Opcache
Tambah di bawah 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
prinsip HugePage
Dengan mendayakan ciri ini, PHP7 akan "memindahkan" segmen TEXTnya sendiri (badan pelaksanaan) ke Huagepage Dalam ujian sebelumnya, kami boleh melihat peningkatan QPS sebanyak 2% hingga 3% pada WordPress.
Untuk apa itu Hugepage, secara ringkasnya, memori lalai dihalakan dalam 4KB, dan alamat maya serta alamat memori perlu ditukar, dan penukaran ini memerlukan carian jadual untuk mempercepatkan jadual proses carian, CPU akan Terbina dalam TLB (Terjemahan Lookaside Buffer), adalah jelas bahawa jika halaman maya lebih kecil, bilangan entri dalam jadual akan lebih banyak, dan saiz TLB adalah terhad, lebih banyak entri, lebih tinggi Cache Miss TLB akan, jadi jika kita Membolehkan halaman memori yang besar secara tidak langsung dapat mengurangkan TLB Cache Miss ini. Bagi pengenalan terperinci, saya tidak akan pergi ke butiran selepas mencari banyak di Google Di sini saya menerangkan bagaimana untuk dayakan ciri baharu ini, yang akan membawa peningkatan prestasi yang ketara.
2. Konfigurasi HugePage
$ sudo sysctl vm.nr_hugepages=512 // 切勿越大越好,会长占内存
Peruntukkan 512 memori halaman besar yang dikhaskan:
cat /proc/meminfo | grep Huge AnonHugePages: 106496 kB HugePages_Total: 512 HugePages_Free: 504 HugePages_Rsvd: 27 HugePages_Surp: 0 Hugepagesize: 2048 kB
Kemudian tambahkan php.ini:
opcache.huge_code_pages=1
1 Pengenalan kepada cache fail Opcache
Gunakan opcache untuk menyimpan fail php yang dikompilasi sebagai fail dan pecutan skrip akan mempunyai peningkatan prestasi yang jelas
2. Konfigurasi cache fail Opcache
Tambah dalam php.ini:
opcache.file_cache=/tmp
seperti PHP ini akan cache beberapa eksport binari Opcode fail dalam direktori /tmp, yang boleh wujud merentasi kitaran hayat PHP
Sistem: centOs 7
versi php: 7.4
nginx
laravel: 8.5
![Pengoptimuman Prestasi PHP7]
![Nota Pengoptimuman Prestasi PHP7]
Memori: 5.8G/16G (di sini saya tetapkan HugePage kepada 2048)
Konkurensi 4W dalam 10 minit
Kadar kegagalan: 0%
Tutorial PHP7"
Atas ialah kandungan terperinci Nota berkualiti tinggi ada di sini! Mengenai pengoptimuman prestasi PHP7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!