APC PHP:ssä: APC:n konsepti, asennus, käyttö. APC php -sovelluskiihdytin asentaminen OS X Mountain Lion Apc -välimuistiin

APC on lyhenne sanasta Vaihtoehtoinen PHP-välimuisti. Venäjänkielinen teksti on vaihtoehtoinen PHP-välimuisti. Mihin sitä käytetään? Kuten muutkin suositut välimuistit, kuten XCache ja eAccelerator, sitä käytetään lisäämään PHP-skriptien nopeutta. Jos sinulla on oma palvelin ja olet huolissasi PHP-skriptien suorituskyvystä, APC voi olla ratkaisu ongelmaasi. Tämän päivän artikkelissa opimme lisää APC:stä, sen asentamisesta ja testaamisesta sekä APC-välimuistin käyttämisestä PHP-skriptien kirjoittamisessa.

Tänään saamme tietää

Mikä on APC-kiihdytin?

KiihdytinAPC(Vaihtoehtoinen PHP-välimuisti) on ilmainen ja avoin opcode-välimuisti PHP:lle. Se on suunniteltu ilmaiseksi, avoimeksi ja vakaaksi kehykseksi PHP-lähdekoodin välimuistiin tallentamiseen ja optimointiin. APC on kehitysvaiheessa. Tukee tällä hetkellä PHP 4- ja PHP 5 -versioita, mukaan lukien 5.3. Oletettavasti se sisällytetään tavalliseen PHP-ydinversioon 6.

Miten työn nopeus saavutetaan?PHP?

Kun sivustosi latautuminen viivästyy, herää kysymys - Miksi? Tosiasia on, että suoritettaessa standardikutsu PHP-skriptille, se käännetään uudelleen joka kerta. Eli sama työ tehdään useita kertoja. Jos kyseessä on pieni projekti, hidastukset voivat olla pieniä, jopa näkymättömiä. Mutta jos sinulla on suuri projekti (verkkosivusto), olet huomannut, että kun avaat sivun, sivun latautuminen viivästyy huolimatta siitä, että sivusto on hyvin optimoitu ja suhteen. Selvyyden vuoksi katsotaan kuinka standardipyyntö suoritetaan ilman PHP-kiihdytintä:

Samaan aikaan teloitukset ovat käynnissä koodin kokoaminen jokaisesta pyynnöstä. Pyynnön käsittely vie paljon aikaa, ja siksi hidastuu. Tämän kiertämiseksi keksittiin kiihdyttimiä, joita APC edustaa. He tallentavat käännetyn koodin välimuistiin levylle, joka tulostaa tuloksen, kun sitä käytetään. Tämä lisää PHP:n nopeutta. APC voi toimia kahdessa tilassa, jotka on määritetty tiedostossa /etc/php.d/apc.ini, muuttuva apc.stat. Muuttuja voi ottaa arvot 1 ja 0 (apc.stat=0 tai apc.stat=1). Apc.stat=1-moodia käytettäessä skriptit toimivat hieman hitaammin, kun ne tarkistavat tiedoston muutoksia, mutta näin vältytään ongelmalta, kun koodia muutetaan, mutta tuloksen tulos pysyy samana. Siksi suosittelen, että asetat muuttujan arvoksi 1.

Kun APC-kiihdytin on asennettu, pyynnön suorituskaavio on seuraava:

APC:n asennus

APC on erittäin helppo asentaa. Se voidaan asentaa sekä Debian/Ubuntuun että muihin jakeluihin.

APC:n asentaminen CentOS-, RHEL- tai Fedoraan:

Asennamme PECL:n kautta. Ensin yhdistetään .repo, joka sisältää nykyisen APC:n. Katso esimerkki alla:

wget http://rpm.scwlab.com/el/php/yum.conf -O /etc/yum.repos.d/stalwart.repo

yum asenna php-pecl-apc

Muuta nyt /etc/php.d/apc.ini-tiedoston asetuksia makusi mukaan ja käynnistä palvelin uudelleen.

APC:n asentaminen Debianiin, Ubuntuun

apt-get install apache2-threaded-dev php5-dev php5-pear make gcc g++

pecl install apc

Lataamisen jälkeen avaa tiedosto osoitteessa /etc/php5/apache2/php.ini, lisää parametri extension=apc.so ja käynnistä palvelin uudelleen.

Kuten näet, APC:n asentaminen Debianiin tai Ubuntuun on melko yksinkertaista, sinun tarvitsee vain kirjoittaa komento konsoliin sudo aptitude asentaa php-apc. Voit myös asentaa tämän laajennuksen kautta synaptinen. Jos sinulla on eri jakelu, voit asentaa APC-paketin PECL:stä. Voit tehdä tämän suorittamalla seuraavan komennon konsolissa sudo pecl asennus apc.

Paketin saatavuuden tarkistaminenAPC

Jos php.ini-asetustiedostossa on paketin latausrivi extension=apc.so. Tai apc.ini-tiedosto, jossa on sama rivi, luotiin PHP-laajennusten määrityskansioon. Jokaisella jakelulla on oma osoite. Debianille tämä on /etc/php5/apache2/conf.d/.

Jos olet tarkistanut ja olet varma, että kaikki on kunnossa, käynnistä palvelin uudelleen. Tarkastetaan nyt itse APC-paketin tiedot. Tee tämä etsimällä kansio, johon laajennus asennettiin. Kansiosta löydät tiedoston nimeltä apc.php. Tämä tiedosto on myös asennusarkistossa. Kopioi se mihin tahansa hakemistoon palvelinsivustoiltasi..php. Jos paketin asennus onnistui, lataaessasi tämän tiedoston näet seuraavan taulukon nykyisestä APC-paketista.



APC:n käyttö PHP:ssä

APC-laajennuksen käyttäminen PHP-koodin kirjoittamisessa on erittäin yksinkertaista ja kätevää. Nyt voit nähdä tämän itse.

Aluksi kirjoitamme luokan, joka työskentelee muistin kanssa APC-välimuistijärjestelmän kautta. Luo tiedosto ja sijoita siihen koodi seuraavaan osoitteeseen:

classes/apc.caching.php

bKäytössä = laajennus_loaded("apc"); ) // saada tiedot muistifunktiosta getData($sKey) ( $bRes = false; $vData = apc_fetch($sKey, $bRes); return ($bRes) ? $vData:null; ) // tallenna tiedot muistitoimintoon setData($sKey, $vData) ( palauttaa apc_store($sKey, $vData, $this->iTtl); ) // poista tiedot muistifunktiosta delData($sKey) ( $bRes = false; apc_fetch($sKey, $ bRes); return ($bRes) ? apc_delete($sKey) : true ) ?>

Luokka kuvaa, mitä kukin funktio tekee. Luodaan nyt testitiedosto.

index.php

"taulukko", "väri" => "ruskea", "koko" => array("x" => 200, "y" => 120, "z" => 150,), "vahvuus" => 10, ); request_once("luokat/apc.caching.php"); $oCache = uusi välimuistiAPC(); echo "Data:

"; // Katsotaanpa mitä meillä on print_r($aData); echo "
"; if ($oCache->bEnabled) ( // Jos APC on saatavilla $oCache->setData("my_object", $aData); // Tallenna tiedot muistiin $oCache->setData("our_class_object", $oCache) ; // Tallenna luokkaobjekti muistiin echo "Teoriassa olemme tallentaneet tiedot muistiin, napsauta tästä tarkistaaksesi onko kaikki siellä." ( echo "APC-paketti ei ole asennettu, asenna se ja testaa sitten !";) ?>

Tässä tiedostossa tallensimme muistiin 2 objektia: taulukon ja luokkaobjektin. Luodaan nyt toinen tiedosto.

index2.php

bEnabled) ( // Jos APC on saatavilla $aMemData = $oCache->getData("my_object"); // Hae tiedot muistista $aMemData2 = $oCache->getData("our_class_object"); // saada tiedot muistista, joka luokassa echo "Tiedot muistissa:

"; // tarkista mitä meillä on muistissa print_r($aMemData); echo "
"; echo "Kuten näet, kaikki tiedot ovat käytettävissä, nyt puretaan se muistista, tätä varten mennään tänne..."; ) else ( echo "APC-pakettia ei ole asennettu, asenna se ja sitten testi!";) ?>

Tässä skriptissä luemme tietoja vain muistista. Kuten näet, kaikki tiedot luetaan täydellisesti muistista. Katsotaanpa viimeistä esimerkkiä.

index3.php

bEnabled) ( // Jos APC on saatavilla $oCache->delData("my_object"); // Haetaan tietoja muistista $oCache->delData("our_class_object"); // Haetaan tietoja muistista $aMemData = $oCache-> getData ("my_object" // yrittää saada tietoja takaisin $aMemData2 = $oCache->getData("our_class_object");

"; // Tarkista mitä muistiin on tallennettu print_r($aMemData); echo "
"; echo "Data CacheAPC-luokan objektin muistista:
"; print_r($aMemData2); echo"
"; echo "Kuten näet, kaikki tiedot on poimittu muistista. Hurraa!"; ) else ( echo "APC-pakettia ei ole asennettu, asenna se ja testaa sitten!"; ) ?>

Johtopäätös

Kiitos huomiostasi! Toivottavasti nautit käytöstä lukemisestaAPC sisäänPHP. Jos sinulla on muita ideoita käytöstäAPC kirjoittaessaPHP-skriptit, kirjoita siitä kommentteihin.


APC on lyhenne sanasta Vaihtoehtoinen PHP-välimuisti. Venäjänkielinen teksti on vaihtoehtoinen PHP-välimuisti. Mihin sitä käytetään? Kuten muutkin suositut välimuistit, kuten XCache ja eAccelerator, sitä käytetään lisäämään PHP-skriptien nopeutta. Jos sinulla on oma palvelin ja olet huolissasi PHP-skriptien suorituskyvystä, APC voi olla ratkaisu ongelmaasi. Tämän päivän artikkelissa opimme lisää APC:stä, sen asentamisesta ja testaamisesta sekä APC-välimuistin käyttämisestä PHP-skriptien kirjoittamisessa.

Mikä on APC-kiihdytin?

KiihdytinAPC(Vaihtoehtoinen PHP-välimuisti) on ilmainen ja avoin opcode-välimuisti PHP:lle. Se on suunniteltu ilmaiseksi, avoimeksi ja vakaaksi kehykseksi PHP-lähdekoodin välimuistiin tallentamiseen ja optimointiin. APC on kehitysvaiheessa. Tukee tällä hetkellä PHP 4- ja PHP 5 -versioita, mukaan lukien 5.3. Oletettavasti se sisällytetään tavalliseen PHP-ydinversioon 6.
Miten työn nopeus saavutetaan?PHP?
Kun sivustosi latautuminen viivästyy, herää kysymys - Miksi? Tosiasia on, että suoritettaessa standardikutsu PHP-skriptille, se käännetään uudelleen joka kerta. Eli sama työ tehdään useita kertoja. Jos kyseessä on pieni projekti, hidastukset voivat olla pieniä, jopa näkymättömiä. Mutta jos sinulla on suuri projekti (verkkosivusto), olet huomannut, että sivun latautuminen viivästyy, vaikka sivusto on hyvin optimoitu html-pakkauksen ja css-pakkauksen suhteen. Selvyyden vuoksi katsotaan kuinka standardipyyntö suoritetaan ilman PHP-kiihdytintä:

Samaan aikaan teloitukset ovat käynnissä koodin kokoaminen jokaisesta pyynnöstä. Pyynnön käsittely vie paljon aikaa, ja siksi hidastuu. Tämän kiertämiseksi keksittiin kiihdyttimiä, joita APC edustaa. He tallentavat käännetyn koodin välimuistiin levylle, joka tulostaa tuloksen, kun sitä käytetään. Tämä lisää PHP:n nopeutta. APC voi toimia kahdessa tilassa, jotka on määritetty tiedostossa /etc/php.d/apc.ini, muuttuva apc.stat. Muuttuja voi ottaa arvot 1 ja 0 (apc.stat=0 tai apc.stat=1). Apc.stat=1-moodia käytettäessä skriptit toimivat hieman hitaammin, kun ne tarkistavat tiedoston muutoksia, mutta näin vältytään ongelmalta, kun koodia muutetaan, mutta tuloksen tulos pysyy samana. Siksi suosittelen, että asetat muuttujan arvoksi 1.
Kun APC-kiihdytin on asennettu, pyynnön suorituskaavio on seuraava:

APC-kiihdytin asennus

Koska päivitetyt versiot lisätään aptiin hyvin myöhään. Siksi asennamme APC:n PECL:n kautta:

Sudo apt-get remove --purge php-apc sudo apt-get install libpcre3-dev sudo pecl install apc
Asennuksen aikana määritimme seuraavan kokoonpanon (YMMV):
Ota sisäinen virheenkorjaus käyttöön APC:ssä : ei tukea Ota käyttöön pyyntökohtaiset tiedostotiedot APC-välimuistista käytetyistä tiedostoista : ei Ota spin locks käyttöön (KOKEELLINEN) : ei Ota käyttöön muistin suojaus (KOKEELLINEN) : ei Ota käyttöön pthread-mutexes (oletus) : kyllä ​​Ota pthread-luku käyttöön / kirjoituslukot (KOKEELLINEN): ei Nyt sinun on otettava APC käyttöön asetuksista, koska... tämä ei tapahdu automaattisesti. Tätä varten luomme apc.ini-tiedosto sopivaan hakemistoon: sudo vim /etc/php5/conf.d/apc.ini ja kirjoita seuraavat asetukset tähän tiedostoon (suositellaan Magenton kanssa työskentelemiseen) extension=apc.so apc.enabled=1 apc.shm_size=512M apc.num_files_hint=10000 apc.user_entries_hint=10000 apc.max_file_size=5M apc.stat=0 apc.optimization=0 apc.shm_size=0 apc.shm apc.cache_by_default=1 apc.include_once_override=1

Ota APC-tuki käyttöön Magentossa

Avaa Magento-määritystiedosto: vi app/etc/local.xml ja lisää seuraava koodi globaaliin osioon:


apc-tiedosto 0 1 MAGE_ tai apc-tietokanta 0 1 MAGE_


Missä "Etuliite"-tunnisteiden välissä on lyhyt kuvaus kaupasta, jotta APC:n avulla voidaan tallentaa useita yhdelle Magentoon rakennettuja kauppoja.

Kuinka tarkistaa APC:n toiminta?

Ensinnäkin sinun tulee huomata, että Magento PHP -skriptit alkavat toimia nopeammin. Käyttää Firebug ja siihen lisäosa, esimerkiksi YSlow, arvioimaan sivuston nopeutta. Voit ladata Firebug-laajennuksen Firefoxille täältä. Lisäksi voit käyttää apc.php-tiedostoa kopioimalla sen APC-jakelukansiosta kansioon projektisi yleisö: sudo cp /usr/share/php/apc.php /polkusi julkisuuteen Nyt voit avata tämän tiedoston selaimessasi: http://yourhost.local/apc.php

Näiden toimintojen toiminta riippuu php.ini-tiedoston asetuksista.

Vaikka APC-oletusasetukset sopivat useimpiin asennuksiin, jotkin sovellukset saattavat vaatia enemmän hienosäätöä.

APC:tä määritettäessä on kiinnitettävä huomiota kahteen pääasiaan. Ensimmäinen on, kuinka paljon muistia on annettava APC:n käyttöön, ja toinen on, tarkistaako APC, onko tiedostoa muokattu jokaisessa pyynnöstä. Näitä asetuksia ohjataan parametreilla apc.shm_size Ja apc.stat, vastaavasti. Lue näiden parametrien asettamista koskevat kohdat huolellisesti.

Kun palvelin on käynnistetty, komentosarja apc.php, joka toimitetaan tämän laajennuksen kanssa, on kopioitava "docrootille" ja sen oikeuksien on sallittava sen käynnistäminen selaimen kautta. Tämä skripti tarjoaa yksityiskohtaista tietoa siitä, miten APC toimii. Jos GD on käytössä PHP:ssä, tämä komentosarja näyttää myös hyödyllisiä kaavioita. Tietenkin ensimmäinen asia, joka on mielenkiintoista, on se, tallentaako APC mitään välimuistiin. Jos APC on käynnissä, arvo Välimuistin täysi määrä(vasemmalla) näyttää kuinka monta kertaa välimuisti on täyttynyt kokonaan ja se on pakotettu poistamaan merkinnät, joita ei ole viimeksi käytetty apc.ttl sekuntia Mitä pienempi tämä luku, sitä paremmin konfiguroitu välimuisti on. Jos tämä määrä kasvaa jatkuvasti, APC:n on jatkuvasti siivottava vanhoja merkintöjä ja koko välimuistin tarkoitus menetetään. Paras tapa vähentää tätä määrää on lisätä muistia APC:hen. Jos tämä ei onnistu, sinun on määritettävä uudelleen apc.filters rajoittaaksesi välimuistissa olevien komentosarjojen määrää.

Jos APC on rakennettu mmap (Memory Mapping) -tuella, se käyttää vain yhtä muistisegmenttiä, mutta jos päinvastoin APC on rakennettu SHM (SysV Shared Memory) -tuella, se käyttää useita segmenttejä. MMAP:lla ei ole enimmäisrajaa, toisin kuin SHM:llä, joka on rajoitettu /proc/sys/kernel/shmmax. Yleensä suositellaan MMAP:n käyttöä, koska se varaa muistia paljon nopeammin, kun verkkopalvelin käynnistetään uudelleen, mikä vaikuttaa palvelimen käynnistysnopeuteen.

APC-määritysparametrit
Nimi Oletus Muutoksen paikka Luettelo muutoksista
apc.enabled "1" PHP_INI_SYSTEM PHP_INI_SYSTEM APC 2:ssa. PHP_INI_ALL APC:ssä<= 3.0.12.
apc.shm_segments "1" PHP_INI_SYSTEM
apc.shm_size "32M" PHP_INI_SYSTEM
apc.shm_strings_buffer "4M" PHP_INI_SYSTEM Saatavana APC 3.1.4:n kanssa.
apc.optimization "0" PHP_INI_ALL PHP_INI_SYSTEM APC 2:ssa. Poistettu APC 3.0.13:ssa.
apc.num_files_hint "1000" PHP_INI_SYSTEM
apc.user_entries_hint "4096" PHP_INI_SYSTEM Saatavana APC 3.0.0:n kanssa.
apc.ttl "0" PHP_INI_SYSTEM Saatavana APC 3.0.0:n kanssa.
apc.user_ttl "0" PHP_INI_SYSTEM Saatavana APC 3.0.0:n kanssa.
apc.gc_ttl "3600" PHP_INI_SYSTEM
apc.cache_by_default "1" PHP_INI_ALL PHP_INI_SYSTEM APC:ssä<= 3.0.12. Доступно с APC 3.0.0.
apc.filters TYHJÄ PHP_INI_SYSTEM
apc.mmap_file_mask TYHJÄ PHP_INI_SYSTEM
apc.slam_defense "1" PHP_INI_SYSTEM Saatavana APC 3.0.0:n kanssa. Ennen APC 3.1.4, oletusarvo "0" (liikuntarajoitteinen).
apc.file_update_protection "2" PHP_INI_SYSTEM Saatavana APC 3.0.6:n kanssa.
apc.enable_cli "0" PHP_INI_SYSTEM Saatavana APC 3.0.7:n kanssa.
apc.max_file_size "1M" PHP_INI_SYSTEM Saatavana APC 3.0.7:n kanssa.
apc.use_request_time "1" PHP_INI_ALL Saatavilla APC 3.1.3:n kanssa.
apc.stat "1" PHP_INI_SYSTEM Saatavana APC 3.0.10:n kanssa.
apc.write_lock "1" PHP_INI_SYSTEM Saatavilla APC 3.0.11:n kanssa.
apc.report_autofilter "0" PHP_INI_SYSTEM Saatavilla APC 3.0.11:n kanssa.
apc.serializer "oletus" PHP_INI_SYSTEM Saatavilla APC 3.1.0:n kanssa.
apc.include_once_override "0" PHP_INI_SYSTEM Saatavilla APC 3.0.12:n kanssa.
apc.rfc1867 "0" PHP_INI_SYSTEM Saatavilla APC 3.0.13:n kanssa.
apc.rfc1867_prefix "lataa_" PHP_INI_SYSTEM
apc.rfc1867_name "APC_UPLOAD_PROGRESS" PHP_INI_SYSTEM
apc.rfc1867_freq "0" PHP_INI_SYSTEM
apc.rfc1867_ttl "3600" PHP_INI_SYSTEM Saatavilla APC 3.1.1:n kanssa.
apc.localcache "0" PHP_INI_SYSTEM
apc.localcache.size "512" PHP_INI_SYSTEM Saatavilla APC 3.0.14 - 3.1.11.
apc.coredump_unmap "0" PHP_INI_SYSTEM Saatavana APC 3.0.16:n kanssa.
apc.stat_ctime "0" PHP_INI_SYSTEM Saatavilla APC 3.0.13:n kanssa.
apc.preload_path TYHJÄ PHP_INI_SYSTEM Saatavilla APC 3.1.1:n kanssa.
apc.file_md5 "0" PHP_INI_SYSTEM Saatavilla APC 3.1.1:n kanssa.
apc.canonicalize "1" PHP_INI_SYSTEM Saatavilla APC 3.1.1:n kanssa.
apc.lazy_functions 0 PHP_INI_SYSTEM Saatavilla APC 3.1.3:n kanssa.
apc.lazy_classes 0 PHP_INI_SYSTEM Saatavilla APC 3.1.3:n kanssa.
Yksityiskohtainen kuvaus PHP_INI_*-vakioista on kohdassa Missä konfigurointiasetuksia voidaan asettaa.

Konfigurointiohjeiden lyhyt kuvaus.

Jos asennat apc.enabled asetettu arvoon 0, APC ei ole käytössä. Tämä on hyödyllistä, kun APC on staattisesti käytössä PHP:ssä eikä sen käyttöä voi estää muita vaihtoehtoja. Jos APC on rakennettu DSO:ksi, voit yksinkertaisesti kommentoida riviä laajennus V php.ini.

Apc.shm_segments kokonaisluku

Välimuistille varattujen jaetun muistin segmenttien määrä. Jos APC on käyttänyt kaiken käytettävissä olevan jaetun muistin ja apc.shm_size niin suuri kuin järjestelmä sallii, tämän parametrin suurentaminen voi auttaa.

Apc.shm_size merkkijono

Jaetun muistisegmentin koko, joka on määritetty lyhyellä merkinnällä (katso tämä FAQ). Oletusarvoisesti jotkin järjestelmät (mukaan lukien useimmat BSD-versiot) rajoittavat tämän arvon erittäin pieneen arvoon.

Apc.shm_strings_buffer merkkijono

Sisäisten APC-prosessien käyttämälle jaetulle merkkijonovälimuistille varatun muistin määrä. Koko on päätettävä M- tai G-liitteellä osoittamaan megatavuja ja gigatavuja, vastaavasti. Tämän vaihtoehdon käyttäminen voi vähentää PHP-FPM-työprosessien muistia, koska samat merkkijonot tallennetaan muistiin vain kerran ja kaikki työprosessit voivat käyttää niitä.

Apc.optimization kokonaisluku

Optimointitaso. Nolla poistaa optimoinnin käytöstä. Mitä suurempi tämä arvo, sitä aggressiivisempaa optimointia käytetään. Älä odota suurta nopeuden nousua. Tämä on kokeellinen toiminto.

Apc.num_files_hint kokonaisluku

Vihje sivustollasi käytettyjen yksilöllisten tiedostojen määrästä. Aseta se nollaan tai älä määritä sitä ollenkaan, jos et ole varma. Tämä asetus on hyödyllinen, kun sinulla on useita tuhansia tiedostoja.

Apc.user_entries_hint kokonaisluku apc.file_update_protection kokonaisluku

Kun tiedosto muuttuu lennossa, sen pitäisi tapahtua atomisella tavalla. Eli ensin se on kirjoitettava väliaikaiseen tiedostoon ja sitten siirrettävä ( mv) kohdeasentoonsa. Monet tekstieditorit cp, terva ja muut eivät tee tätä. Tämä voi johtaa siihen, että tiedostoa pyydetään (ja tallennetaan välimuistiin) sitä kirjoitettaessa. asetukset apc.file_update_protection asettaa välimuistiviiveen täysin uusille tiedostoille. Oletusarvo on 2 sekuntia. Tämä tarkoittaa, että jos tiedoston muokkauksen aikaleima ( mtime) sanoo, että jos tiedoston muuttamisesta on kulunut alle 2 sekuntia, sitä ei tallenneta välimuistiin. Onneton henkilö, joka yrittää päästä käsiksi puoliksi tallennettuun tiedostoon, kokee outoa käyttäytymistä, mutta se ei ainakaan kestä kauan. Jos kaikki web-palvelintiedostot päivitetään atomaarisesti käyttämällä menetelmiä, kuten rsync(joka päivittyy oikein), tämä toiminta voidaan poistaa käytöstä asettamalla tämä parametri nollaan. Jos järjestelmä on I/O-ylikuormitettu, jotkin päivitykset voivat kestää yli kaksi sekuntia, ja tätä asetusta tulee suurentaa vastaavasti.

Apc.enable_cli kokonaisluku

Lisää testausta ja virheenkorjausta varten. Tämä asetus sallii APC:n PHP:n CLI-versiolle. Normaalissa työssä APC:n käyttäminen, joka luo, täyttää ja tuhoaa välimuistin joka kerta, kun suoritat komentosarjan konsolissa, ei ole paras idea. Mutta testausta ja virheenkorjausta varten voit helposti ottaa APC:n käyttöön CLI:tä varten.

Apc.max_file_size kokonaisluku

Ei tallenna välimuistiin tämän asetuksen määrittämää kokoa suurempia tiedostoja. Oletusarvo on 1M.

Apc.stat kokonaisluku

Ole varovainen, kun muutat tätä asetusta. Tämä on oletusarvoisesti käytössä, jolloin APC tarkistaa komentosarjatiedostot jokaisen pyynnöstä nähdäkseen, onko niitä muokattu. Jos niitä on muutettu, ne käännetään uudelleen ja tallennetaan uudelleen välimuistiin. Jos poistat tämän asetuksen käytöstä, APC ei suorita tällaista tarkistusta, ja jos tiedosto on jo tallennettu välimuistiin ja sitten muutettu, uusi versio ei pääse välimuistiin. Välimuistiin tallentaminen vaatii verkkopalvelimen uudelleenkäynnistyksen. Huomaa, että FastCGI:tä käyttämään määritetyt verkkopalvelimet eivät välttämättä tyhjennä välimuistia uudelleenkäynnistyksen yhteydessä. Teollisuusympäristöissä, joissa tiedostojen muutoksia tapahtuu hyvin harvoin, tämän vaihtoehdon poistaminen käytöstä voi parantaa suorituskykyä merkittävästi.

Tämä vaihtoehto toimii mainiosti tiedostoille, jotka on ladattu sisällytetyn/pakollisen kautta, mutta muista, että jos sisällytät tiedoston suhteelliseen polkuun (Unixissa mikä tahansa polku, joka ei ala /), APC tarkistaa ainutlaatuisuuden. Jos käytetään absoluuttisia polkuja, APC ohittaa tämän tarkistuksen ja käyttää absoluuttista polkua yksilöllisenä tiedostotunnisteena.

Apc.write_lock boolean

Raskaasti kuormitetuilla palvelimilla, kun palvelin käynnistyy tai kun useita tiedostoja muokataan samanaikaisesti, APC voi yrittää kääntää ja tallentaa saman tiedoston välimuistiin useita kertoja samanaikaisesti. Kirjoituslukitus varmistaa, että vain yksi prosessi yrittää kääntää ja tallentaa välimuistiin tallentamattoman tiedoston. Muut prosessit, joiden on käytettävä tätä tiedostoa, käyttävät sen välimuistiin tallentamatonta versiota sen sijaan, että odottaisivat sen ilmestymistä välimuistiin.

Apc.report_autofilter boolean

Kirjaa kaikki komentosarjat, jotka on jätetty välimuistin ulkopuolelle aikaisten tai myöhäisten linkitysongelmien vuoksi.

Apc.serializer merkkijono

Käskee APC:tä käyttämään kolmannen osapuolen sarjoittajaa.

Apc.include_once_override boolean

Optimoi puhelut sisällytä_kerran Ja vaadi_kerran kalliiden järjestelmäpuhelujen estämiseksi.

Huomio

Tämä toiminto on KOKEELLISTA. Tämän direktiivin toiminta, sen nimi ja dokumentaatio voivat muuttua ilman erillistä ilmoitusta APC:n tulevissa versioissa. Käytä sitä omalla vastuullasi.

Apc.rfc1867 boolean

RFC1867-tiedostojen latauksen edistymisen sieppaaja on saatavilla vain APC:ssä, jos se on rakennettu PHP 5.2.0:lla tai uudemmalla. Jos sallittu, kaikki palvelimelle ladatut tiedostot, jotka sisältävät lomakkeessa ennen tiedostokenttää kentän nimellä APC_UPLOAD_PROGRESS, pakottaa APC:n luomaan automaattisesti mukautetun välimuistimerkinnän, kuten upload_ avain, Missä avain on kentän arvo APC_UPLOAD_PROGRESS.

Muista, että piilotettu kenttä APC_UPLOAD_PROGRESS täytyy mennä kenttään tiedoston kanssa, muuten työ on virheellinen.

Huomaa, että tiedostojen latauksen seuranta ei ole säikeen turvallista, joten jos ensimmäisen latauksen aikana tulee uusi samalla avaimella, ensimmäisen seuranta lopetetaan.

ota huomioon, että korko on käytettävissä vasta, kun kaikki nykyiset lataukset on suoritettu.

Esimerkki #1 Esimerkki apc.rfc1867:n käytöstä

print_r (apc_fetch ( "lataa_ $_POST [ APC_UPLOAD_PROGRESS ] " ));
?>

Tämän esimerkin suorittamisen tulos on seuraavanlainen:

Taulukko ( => 1142543 => 1142543 => 1828068.8 => testi => tiedosto => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefix merkkijono

Avainetuliite käytettäväksi rfc1867-latauksen edistymisen seurantatoiminnon luomassa käyttäjän välimuistimerkinnässä.

Apc.rfc1867_name merkkijono

Määrittää nimen piilotetulle lomakekentälle, joka mahdollistaa APC-latausprosessin ja määrittää käyttäjän välimuistin avainliitteen.

Apc.rfc1867_freq merkkijono

Kuinka usein käyttäjän välimuistin merkintä päivitetään tiedoston latauksen aikana. Se voidaan määrittää joko prosentteina tai ilmoittamalla koko tavuina. Voit halutessasi käyttää jälkiliitteitä "k", "m" Ja "g"(kirjainkoolla ei väliä) kilotavuille, megatavuille ja gigatavuille, vastaavasti. Jos määrität nollan, päivitykset tapahtuvat mahdollisimman nopeasti, mutta tämä voi hidastaa latausaikoja.

Apc.rfc1867_ttl kokonaisluku

TTL rfc1867-tietueille.

Apc.localcache boolean

Ottaa käyttöön estävän paikallisen prosessin varjovälimuistin, mikä vähentää estojen määrää välimuistin kirjoittamisen aikana.

Apc.localcache.size kokonaisluku

Paikallisen prosessin varjovälimuistin koon tulisi olla melko suuri, noin puolet apc.num_files_hint -tiedostosta.

Apc.coredump_unmap boolean

Mahdollistaa APC:n siepata signaaleja, kuten SIGSEGV, joka kirjoittaa coredump, kun se annetaan. Kun nämä signaalit vastaanotetaan, APC yrittää vapauttaa kaiken jaetun muistin, jotta se ei sisällytetä sitä coredumpiin. Tämä asetus voi lisätä järjestelmän vakautta, kun kriittinen signaali on vastaanotettu ja APC on määritetty käyttämään paljon muistia.

Huomio

Tämä ominaisuus on mahdollisesti vaarallinen. Jaetun muistin segmenttien vapauttaminen kriittisen signaalin vastaanoton yhteydessä voi johtaa arvaamattomaan toimintaan.

Kommentti:

Vaikka jotkin ytimet tarjoavat mahdollisuuden jättää huomioimatta jotkin jaetun muistin segmentit ydintiedostoa kirjoitettaessa, nämä toteutukset voivat myös jättää huomioimatta tärkeitä muistisegmenttejä, kuten Apache-tulostaulun.

apc.stat_ctime kokonaisluku

Tarkista ctimella välttääksesi ohjelmien, kuten svn tai rsync, aiheuttamat ongelmat ja varmista, että inode ei ole muuttunut edellisen tilastotietojen keruun jälkeen. Tyypillisesti APC tarkistaa vain mtimen.

Apc.canonicalize bool

Jos se ei ole käytössä, suhteelliset polut muunnetaan kanoniseksi no-stat-tilassa. Jos tämä on käytössä, stream-kääreen kautta yhdistettyjä tiedostoja ei tallenneta välimuistiin, koska realpath() ei tue stream-kääreitä.

Apc.preload_path merkkijono

Valinnainen. Määrittää polun, jota APC käyttää välimuistin tietojen lataamiseen käynnistyksen aikana.

Apc.use_request_time bool

Käytä SAPI-pyynnön alkamisaikaa TTL:lle.

Apc.file_md5 bool

Kirjoita tiedostojen md5-tiiviste.

Apc.lazy_functions kokonaisluku

Mahdollistaa toimintojen laiskan lataamisen.

Apc.lazy_classes kokonaisluku

Mahdollistaa luokkien laiskan lataamisen.

10 vuotta sitten

Yllä oleva apc.rfc1867-esimerkkikoodi on hieman nopea ja löysä niille, jotka toimivat ympäristöissä, joissa APC RFC1867 saattaa olla tai ei ole saatavilla. Tämä on hieman ilmeisempi:

// jos meillä on PHP ja APC
$havePHP = (1 === version_vertaa (PHP_VERSIO, "5.2.0") ? tosi : epätosi );
$haveAPC = (laajennus_ladattu ("apc" ) && 1 === version_vertaa (phpversion ( "apc" ), "3.0.13" ) ? true : false );
jos ($havePHP && $haveAPC ) (
// jos APC- ja latausseuranta on käytössä
if (ini_get ("apc.enabled" ) && ini_get ("apc.rfc1867" )) (
// hanki tilastot
$avain = ini_get ("apc.rfc1867_prefix") . $_REQUEST["happo"];
$tilastot = apc_fetch($avain);
}
}

On suositeltavaa asentaa PHP-skriptikiihdytin, joka vähentää verkkopalvelimesi kuormitusta. Kiihdytin kokoaa useimmin käytetyt PHP-skriptit ja kun sitä käytetään, se ei lataa lähdekoodia, vaan sen käännetyn version. Tämä johtaa verkkosivustosi nopeampaan toteutukseen ja näyttöön. Tämä on erityisen havaittavissa "raskaissa" sisällönhallintajärjestelmissä, kuten Bitrix.

Jos haluat asentaa APC-kiihdytin, sinun on ensin asennettava XCode c komentorivikomponentilla.

Kun olet päivittänyt Mac OS X:n versioon 10.9 Maverick, sinun on asennettava komentorivikomponentti uudelleen. Nyt sitä ei asenneta graafisen käyttöliittymän kautta, vaan komentorivillä: xcode-select --install

Muussa tapauksessa, kun asennat laajennuksia peclillä, saat virheilmoituksen "php.h tiedostoa ei löydy"

./configure tee sudo make install

Sudo pecl asennus apc

Jos kaikki meni hyvin, tarkista APC-asennus php-komentosarjalla phpinfo()-komennolla. Komento voi epäonnistua kokonaan, jolloin sinun tulee kokeilla seuraavaa:

Jos tämä komento epäonnistuu, sinulla ei todennäköisesti ole PEAR- ja PECL-ohjelmia asennettuna. Ne on ladattava curl-komennolla ja asennettava

Curl -O http://pear.php.net/go-pear.phar sudo php -d detect_unicode=0 go-pear.phar

Kun pyydetään PEAR-konfigurointia, parametrit 1 ja 4 on korjattava

11.Asetustiedoston nimi:

1-11, "kaikki" tai Enter jatkaaksesi:

Vastaa ensin 1 ja kirjoita osoite:

/usr/local/päärynä

Vastaa sitten 4 ja kirjoita seuraava osoite

Paina sen jälkeen enteriä. PEAR on asennettu. Voit tarkistaa sen komennolla

Päärynä versio

Yritä sen jälkeen uudelleen

Tällä kertaa minut hylättiin seuraavalla viestillä

Autoconfia ei löydy. Tarkista autoconf-asennus ja

$PHP_AUTOCONF ympäristömuuttuja. Suorita sitten tämä skripti uudelleen.

VIRHE: "phpize" epäonnistui

Tämän virheen ratkaisemiseksi sinun on ladattava ja asennettava autoconfig käyttämällä seuraavia päätekomentoja

Curl http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz > autoconf.tar.gz tar -xvzf autoconf.tar.gz cd autoconf-* ./configure --prefix=/usr/local sudo make install

Autoconfig-komennon asennuksen jälkeen:


sudo pecl asennus apc

Vastaamme kaikkiin APC-kääntämisen aikana esitettyihin kysymyksiin oletustulolla. Jos kysymys

Ota sisäinen virheenkorjaus käyttöön APC:ssä: y

Tässä tapauksessa koodia suoritettaessa saatat saada virheilmoituksia itse APC:n suorittamisesta. Oikea vastaus on ei.

Asennus onnistui. Nyt käynnistetään apache uudelleen

Sudo apachectl käynnistyy uudelleen

Jos asennat APC:n uudelleen Mavericksiin päivityksen jälkeen, järjestelmässä saattaa olla phpizen vanhan version olemassaoloon liittyvä häiriö. Tässä tapauksessa seuraavat komennot voivat auttaa päivittämällä pecl-kokoonpanon sudo pear config-set php_ini /etc/php.ini sudo pecl config-set bin_dir /usr/bin/

Varmista, että /etc/php.ini-tiedostossa on rivi ja lisää se tarvittaessa.

Extension=apc.so

Ja käynnistä apache uudelleen.

Tarkistetaan phpinfo()


Bitrix vaatii lisäparametrien asennuksen. APC-asetukset ovat tiedostossa

Asetin itselleni seuraavat parametrit:

Apc.ttl=7200
apc.max_file_size= 64M
apc.shm_size = 64M

Mitä suorituskyvyn muutos antoi (Bitrixin suorituskykymonitorin mukaan) 10,62 yksiköstä 40,52:een?
Siinä näyttää olevan kaikki.

APC:n perusasetukset

  • apc.enabled– voit ottaa APC:n käyttöön tai poistaa sen käytöstä
  • apc.shm_segments– apc:n käyttämien jaettujen muistisegmenttien määrä. Joissakin järjestelmissä on segmenttien enimmäiskokorajoitus, joten voit määrittää apc:n käyttämään useita segmenttejä.
  • apc.shm_size– apc:n käyttämän jaetun muistisegmentin koko.
  • apc.ttl– kuinka monta sekuntia ei saa olla pääsyä välimuistimerkintään ennen kuin apc korvaa sen.
  • apc.user_ttl– kuvaus on sama kuin apc.ttl. Yleensä asetetaan apc.ttl.
  • apc.stat– osoittaa, tarvitseeko apc:n tarkistaa php-skriptin muokkausaika. Jos arvoksi asetetaan 0, apc ei tarkista levyllä olevia muutoksia ja tuottaa välimuistikopion.

Pecl-asennuksen latausprosessi

Totta, superkäyttäjän oikeudet (root) voidaan vaatia.

sudo apt-get install php-apc - ei toimi

APC:tä ei enää tarvita Ubuntu 14.04:ssä. PHP 5.5 ei tue APC:tä, vaan siinä on sen sijaan oma sisäänrakennettu Opcache-välimuisti. Varmista, että välimuisti on käytössä, muokkaa /etc/php5/apache2/php.ini-tiedostoa.
Korvata:

;opcache.enable=0

Opcache.enable=1

Varmista sitten, että php-moduuli on aktivoitu:

# php5enmod opcache

Lopuksi käynnistä Apache uudelleen:

Palvelu apache2 käynnistyy uudelleen

Tutkimus:

http:// /info.php

Luo seuraavan sisällön tiedosto info.php verkkopalvelimen hakemiston /var/www/html/ juureen

Ja avaa se selaimessasi. Sieltä löydät tietoa PHP:stä, mukaan lukien onko välimuisti käytössä. Älä jätä tätä tiedostoa tuotantopalvelimelle. Poista se tarkastuksen jälkeen.
Täytyy nähdä:

Zend OPcache Opcode Caching Up and Running Optimization käytössä jne.

Vaihtoehtoisen PHP-välimuistin (APC) asentaminen Ubuntu 12.04:ään

Asennus PECL:ltä

Katso alta asentaaksesi Ubuntu-arkistosta.

Tietoja APC:stä.
APC on loistava käyttökoodin välimuistijärjestelmä PHP:lle, joka voi auttaa nopeuttamaan sivustoasi. PHP on dynaaminen palvelinpuolen komentosarjakieli, joka palvelimen on jäsennettävä, käännettävä ja suoritettava jokaisen sivupyynnön yhteydessä. Monissa tapauksissa pyynnöt tuottavat kuitenkin täsmälleen samat tulokset, mikä tarkoittaa, että pilvipalvelimen on tarpeettomasti toistettava kaikki nämä vaiheet jokaiselle niistä.
Tässä APC tulee peliin. Se tallentaa PHP-operaatiokoodin (toimintakoodin) RAM-muistiin ja suorittaa sen uudelleen pyydettäessä. Pohjimmiltaan se ohittaa jäsennys- ja käännösvaiheet ja minimoi osan tarpeettomista kuormituksista pilvipalvelimelle.

Oletetaan, että sinulla on oma VPS, jossa on pääkäyttäjän oikeudet ja LAMP asennettuna.

Asenna ensin paketit:

Sudo apt-get install php-pear php5-dev make libpcre3-dev

Nyt voit asentaa APC:n pecl-komennolla:

Sudo pecl asennus apc

Sinua pyydetään vastaamaan useisiin kysymyksiin, mutta ennen kuin tiedät tarkan vastauksen, käytä oletusarvoa painamalla Enter.

Seuraava ja viimeinen vaihe on muokata php.ini-tiedostoa

lisäämällä rivin loppuun:

Extension=apc.so

Tallenna tiedosto ja käynnistä Apache uudelleen:

Sudo-palvelu apache2 käynnistyy uudelleen

Tarkistaaksesi, onko APC käytössä, tarkista PHP-tietosivu. Jos sinulla ei ole sellaista, luo se /var/www-hakemistoon:

Nano /var/www/info.php

ja liitä koodi:

Avaa se selaimessasi. Sieltä löydät tietoa PHP:stä, mukaan lukien onko välimuisti käytössä. Älä jätä tätä tiedostoa tuotantopalvelimelle. Poista se tarkastuksen jälkeen.

APC:n asetukset

Olet asentanut APC:n ja se toimii oletusasetuksilla. On ainakin kaksi asetusta, joista sinun tulee olla tietoinen. Avaa php.ini, jota olet jo muokannut:

Sudo nano /etc/php5/apache2/php.ini

Lisää APC:n käyttöönoton rivin alle:

Apc.shm_size = 64

Tämän ansiosta APC voi käyttää 64 Mt RAM-muistia välimuistiin. Määrityksestäsi riippuen voit muuttaa tätä arvoa.
Seuraava lisättävä rivi on:

Apc.stat = 0

Parametri apc.stat tarkistaa komentosarjan jokaisen pyynnön yhteydessä nähdäkseen, onko se muuttunut vai ei. Jos komentosarja on muuttunut, APC kääntää sen uudelleen ja tallentaa uuden version välimuistiin. Tämä on APC:n oletustoiminto asennuksen jälkeen. Asettamalla parametrin arvoksi 0, kerromme APC:lle, ettei se tarkista komentosarjan muutoksia. Tämä parantaa suorituskykyä, mutta jos komentosarjaa on muutettu, muutoksia ei oteta käyttöön ennen kuin palvelin käynnistetään uudelleen. Siksi arvoa 0 suositellaan käytettäväksi vain tuotantopalvelimella, jossa ei ole jatkuvia koodimuutoksia.

APC-valvonta
APC-välimuistin tilan ja suorituskyvyn seurantaan on olemassa pieni komentosarja.

Voit kopioida apc.php-tiedoston hakemistosta /usr/share/php/ verkkopalvelimen työhakemistoon, esimerkiksi /vwr/www:

Cp /usr/share/php/apc.php /var/www - asennettu peclistä

Tai lataa:

Wget http://pecl.php.net/get/APCu -O - | tar xz --wildcards apcu*/apc.php

Käytä nyt tätä tiedostoa selaimella:

http:// /apc.php

Sinun pitäisi nähdä APC-tilastot. Huomaa, että APC:ssä on tarpeeksi muistia eikä siinä ole paljon pirstoutumista.
Hyvä merkki olisi suuri välimuistiosumien prosenttiosuus, noin 95 % useiden pyyntöjen jälkeen.

APC-välimuistin asentaminen Ubuntu-arkistosta

$ sudo apt-get asenna php-apc

Käynnistä Apache uudelleen ja katso info.php. APC (Enabled On) -osion pitäisi ilmestyä.
Käytä seurantaa varten toimituspakkauksessa olevaa apuohjelmaa:

Cd /usr/share/doc/php-apc # gunzip apc.php.gz

Kopioi apc.php-tiedosto esimerkiksi hakemistoon /var/www
Käytä tiedostoa selaimesta:

http:// /apc.php

Virhe:
Välimuistitietoja ei ole saatavilla. APC ei näytä olevan käynnissä.

tulee näkyviin, jos apc.php-koodissa ei ole määritetty salasanaa.
Muokkaa apc.php-tiedostoa:

# vi /var/www/apc.php

ja aseta käyttäjätunnus ja salasana:

Oletukset("ADMIN_USERNAME","apc"); // Admin Username defaults("ADMIN_PASSWORD","pass"); // Järjestelmänvalvojan salasana - MUUTA TÄMÄ KÄYTTÖÖN!!!

Oletukset("USE_AUTHENTICATION",0);

Lisäasetukset tiedostossa /etc/php5/apache2/conf.d/apc.ini

;apc.enabled=1 – ei relevantti;apc.enable_cli=1 – ei relevantti;apc.shm_size=64M # oletusarvo 32M ;apc.stat = 0