亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(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源代碼沒(méi)有變化,那么Opcode也不會(huì)變化,顯然沒(méi)有必要每次都重新生成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)存開(kāi)銷。
    2. Opcache配置
    在php.ini下添加:

    // 加載opcache(需確認(rèn)已安裝opcache拓展) zend_extension=opcache.so // 開(kāi)啟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), 顯而易見(jiàn)如果虛擬頁(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)化筆記](méi)
    高質(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)