PHP7性能優(yōu)化的內(nèi)容有哪些

本篇文章給大家分享的是有關(guān)關(guān)于PHP7性能優(yōu)化有哪些,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

網(wǎng)站設(shè)計(jì)制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺管理系統(tǒng);成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營了十年的成都創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司。

Opcache

1. Opcache原理
PHP的正常執(zhí)行流程如下

PHP7性能優(yōu)化的內(nèi)容有哪些

request請求(nginx,apache,cli等)–>Zend引擎讀取.php文件–>掃描其詞典和表達(dá)式 –>解析文件–>創(chuàng)建要執(zhí)行的計(jì)算機(jī)代碼(稱為Opcode)–>最后執(zhí)行Opcode–> response 返回

每一次請求PHP腳本都會執(zhí)行一遍以上步驟,如果PHP源代碼沒有變化,那么Opcode也不會變化,顯然沒有必要每次都重新生成Opcode,結(jié)合在Web中無所不在的緩存機(jī)制,我們可以把Opcode緩存下來,以后直接訪問緩存的Opcode豈不是更快,啟用Opcode緩存之后的流程圖如下所示:

PHP7性能優(yōu)化的內(nèi)容有哪些

Opcode cache 的目地是避免重復(fù)編譯,減少 CPU 和內(nèi)存開銷。
2. Opcache配置
在php.ini下添加:

// 加載opcache(需確認(rèn)已安裝opcache拓展)
zend_extension=opcache.so
// 開啟opcache
opcache.enable = 1
// OPcache共享內(nèi)存存儲大小,單位MB
opcache.memory_consumption=1024 // 1G
// PHP使用了一種叫做字符串駐留,默認(rèn)是4MB
opcache.interned_strings_buffer=32
// 這個(gè)選項(xiàng)用于控制內(nèi)存中最多可以緩存多少個(gè)PHP文件,這個(gè)選項(xiàng)必須得設(shè)置得足夠大,大于你的項(xiàng)目中的所有PHP文件的總和
opcache.max_accelerated_files=80000
// 設(shè)置緩存的過期時(shí)間(單位是秒),為0的話每次都要檢查
opcache.revalidate_freq=3
// 從字面上理解就是“允許更快速關(guān)閉”
opcache.fast_shutdown=1
// CLI環(huán)境下,PHP啟用OPcache
opcache.enable_cli=1

HugePage

1. HugePage原理
通過啟用這個(gè)特性,PHP7會把自身的TEXT段(執(zhí)行體)”挪“到Huagepage上,之前的測試,我們能穩(wěn)定的在Wordpress上看到2%~3%的QPS提升。
關(guān)于Hugepage是啥,簡單的說下就是默認(rèn)的內(nèi)存是以4KB分頁的,而虛擬地址和內(nèi)存地址是需要轉(zhuǎn)換的, 而這個(gè)轉(zhuǎn)換是要查表的,CPU為了加速這個(gè)查表過程都會內(nèi)建TLB(Translation Lookaside Buffer), 顯而易見如果虛擬頁越小,表里的條目數(shù)也就越多,而TLB大小是有限的,條目數(shù)越多TLB的Cache Miss也就會越高, 所以如果我們能啟用大內(nèi)存頁就能間接降低這個(gè)TLB Cache Miss,至于詳細(xì)的介紹,Google一搜一大堆我就不贅述了,這里主要說明下如何啟用這個(gè)新特性, 從而帶來明顯的性能提升。
2. HugePage配置

$ sudo sysctl vm.nr_hugepages=512 // 切勿越大越好,會長占內(nèi)存

分配512個(gè)預(yù)留的大頁內(nèi)存:

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 file cache

1. Opcache file cache介紹
使用opcache把編譯后的php文件存儲為文件,實(shí)現(xiàn)php源碼保護(hù)和腳本加速, 會有很明顯的性能提升
2. Opcache file cache配置
在php.ini中加入:

opcache.file_cache=/tmp

這樣PHP就會在/tmp目錄下Cache一些Opcode的二進(jìn)制導(dǎo)出文件, 可以跨PHP生命周期存在.

配置后需重啟php-fpm

親測

系統(tǒng):centOs 7
php版本:7.4
nginx
laravel: 8.5

優(yōu)化前

cpu:95%-96%
內(nèi)存:2G/16G
10分鐘4W并發(fā)
失敗率:24%

聚合報(bào)告
PHP7性能優(yōu)化的內(nèi)容有哪些

每秒處理事務(wù)
![PHP7性能優(yōu)化]
![PHP7性能優(yōu)化筆記]
PHP7性能優(yōu)化的內(nèi)容有哪些

優(yōu)化后

cpu:20%-40%
內(nèi)存:5.8G/16G(此處我HugePage設(shè)置2048)
10分鐘4W并發(fā)
失敗率:0%

第一次壓測

聚合報(bào)告
PHP7性能優(yōu)化的內(nèi)容有哪些

每秒處理事務(wù)

PHP7性能優(yōu)化的內(nèi)容有哪些

第二次壓測

聚合報(bào)告

PHP7性能優(yōu)化的內(nèi)容有哪些

每秒處理事務(wù)

PHP7性能優(yōu)化的內(nèi)容有哪些


以上就是關(guān)于PHP7性能優(yōu)化有哪些,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:PHP7性能優(yōu)化的內(nèi)容有哪些
新聞來源:http://www.muchs.cn/article12/phohgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、營銷型網(wǎng)站建設(shè)、用戶體驗(yàn)、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)