站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        高質(zhì)量筆記來(lái)了!關(guān)于PHP7性能優(yōu)化

        Opcache

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

        高質(zhì)量筆記來(lái)了!關(guān)于PHP7性能優(yōu)化

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

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

        高質(zhì)量筆記來(lái)了!關(guān)于PHP7性能優(yōu)化

        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)存存儲(chǔ)大小,單位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è)置緩存的過(guò)期時(shí)間(單位是秒),為0的話每次都要檢查 opcache.revalidate_freq=3 // 從字面上理解就是“允許更快速關(guān)閉” opcache.fast_shutdown=1 // CLI環(huán)境下,PHP啟用OPcache opcache.enable_cli=1

        HugePage

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

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

        分配512個(gè)預(yù)留的大頁(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文件存儲(chǔ)為文件,實(shí)現(xiàn)php源碼保護(hù)和腳本加速, 會(huì)有很明顯的性能提升
        2. Opcache file cache配置
        在php.ini中加入:

        opcache.file_cache=/tmp

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

        配置后需重啟php-fpm

        親測(cè)

        系統(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)告
        高質(zhì)量筆記來(lái)了!關(guān)于PHP7性能優(yōu)化

        每秒處理事務(wù)
        ![PHP7性能優(yōu)化]
        ![PHP7性能優(yōu)化筆記]
        高質(zhì)量筆記來(lái)了!關(guān)于PHP7性能優(yōu)化

        優(yōu)化后

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

        第一次壓測(cè)

        聚合報(bào)告
        高質(zhì)量筆記來(lái)了!關(guān)于PHP7性能優(yōu)化

        每秒處理事務(wù)

        高質(zhì)量筆記來(lái)了!關(guān)于PHP7性能優(yōu)化

        第二次壓測(cè)

        聚合報(bào)告

        高質(zhì)量筆記來(lái)了!關(guān)于PHP7性能優(yōu)化

        每秒處理事務(wù)

        高質(zhì)量筆記來(lái)了!關(guān)于PHP7性能優(yōu)化

        推薦學(xué)習(xí):《PHP7教程》

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 国产精品小视频免费无限app | 精品免费久久久久国产一区| 精品人妻中文av一区二区三区 | 国产精品国产高清国产专区| 国产精品嫩草影院AV| 久久九九久精品国产免费直播| 香蕉久久夜色精品国产小说| 99久久99久久精品免费看蜜桃| 中文字幕无码久久精品青草| 精品日韩在线视频一区二区三区| 嫩草影院久久国产精品| 国产AV午夜精品一区二区入口| 亚洲国产成人精品无码久久久久久综合| 国产福利精品视频自拍 | 久久91精品久久91综合| 99在线精品视频观看免费| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲成网777777国产精品| 免费精品国产自产拍在线观看| 国产高清在线精品一本大道国产 | 欧美国产成人久久精品| 成人国产一区二区三区精品| 亚洲国产精品无码久久| 欧美日韩精品在线观看| 免费看污污的网站欧美国产精品不卡在线观看| 99久免费精品视频在线观看 | 99精品久久精品一区二区| 精品9E精品视频在线观看| 欧美精品黑人粗大免费| 亚洲av成人无码久久精品| 无码日韩精品一区二区免费| 亚洲AV成人精品网站在线播放 | 在线观看91精品国产网站| 日韩精品欧美| 亚洲精品国产福利一二区| 一本久久a久久精品综合香蕉| 亚洲午夜精品一级在线播放放| 少妇伦子伦精品无码STYLES | 亚洲国产精品日韩| 午夜精品久久久久久久久| 老司机午夜精品视频资源|