Instrucțiuni pentru configurarea memoriei cache

Utilizarea memoriei cache în memoria RAM

În versiunea 8.5.1 a modulului principal, a existat suport pentru cache nu numai pe disc, ci și în memoria partajată.







Avantajul cache-ului partajat al acceleratorilor este amplasarea acestuia în memoria RAM. Utilizarea schimbării indică o configurație neadecvată de găzduire. Dezavantajul unui fișier swap este resetarea completă atunci când serverul Web este repornit.

Aplicații PHP

Utilizează mecanismele de memorie partajată deja disponibile. Furnizarea programatorului PHP cu funcția apc_fetch. apc_store și apc_delete.
  • Dezavantajul 1: utilizează memoria partajată pentru scripturi și memoria cache.
  • Lipsa 2: Caching-ul necesită serializarea datelor.

Când construiți o extensie, trebuie să specificați "--with-eaccelerator-shared-memory". Are aceleași dezavantaje ca APC. Demnitate: este posibilă configurarea salvării cache-ului pe disc.

Notă. eAcceleratorul nu este compatibil cu versiunile PHP de mai sus 5.3

Nu este acceptată de la versiunea 15.5.0

Demon memcached

În plus față de acceleratoare, o funcționalitate similară, dar mult mai bogată este posedată de demonul memorat.

Acesta este un proces separat care utilizează protocolul TCP / IP pentru comunicații, care poate suporta o memorie cache sincronă distribuită, partajată. Pe serverul pe care rulează memcached, puteți conecta mai multe server web. Utilizarea memcached rezolvă problema cache-ului de accelerator, dar pedeapsa de performanță datorată transportului protocolului vine mai întâi.

Un exemplu de lucru cu memcached pe Ubuntu. Setare:

Setările daemon sunt bine documentate și sunt localizate în /etc/memcached.conf

Pentru PHP, există trei extensii pentru a lucra cu serverul memcached. În acest moment, "1C-Bitrix: Site Management" acceptă extensia memcache. Astfel, la utilizarea memcache la ea este posibil să fie conectat prin unixsocket:







Cu toate acestea, trebuie mai întâi să configurați memcached pentru a lucra prin prize. Pentru a face acest lucru, modificați valoarea fișierului de configurare memcached la OPTIONS = "" pe OPTIONS = "- s /tmp/memcached.sock -a 00755". Și numai după aceea faceți modificări la dbconn.php.

Configurarea Bitrix

Gestionarea cache-ului este implementată prin constantele definite în fișierul dbconn.php (în versiunea de kernel de mai sus 14.0, setările sunt făcute în alte fișiere).

Cel mai important dintre toate. Pot avea următoarele valori:
  • fișiere - utilizați unitatea ca spațiu de stocare în cache. Acest comportament este complet compatibil. Dacă încercările de includere a altor tipuri de cache nu reușesc, se va utiliza acest tip.
  • memcache - conectați la memcached pentru a salva cache-ul. Se activează numai dacă ați descărcat extensia "memcache" și ați fost conectat la server.
  • eaccelerator - utilizați ca depozit spațiul de memorie partajat al eAccelerator. (Important: eAccelerator deoarece versiunea 0.9.6 nu suportă funcții de cache definite de utilizator, ceea ce înseamnă că mecanismul descris aici nu va funcționa.)
  • apc - APC.
  • xcache - XCache.

exemplu:

Este obligatoriu să determinați dacă mai multe instanțe din "1C-Bitrix: Site Management" rulează pe același server. Această sare va fi amestecată cu toate cheile de memorie cache. Și lăsați-i să nu se încurce.

Nu este obligatorie, implicit la 11211.

Notă. Sistemul verifică dacă parametrul eaccelerator.shm_max este setat la o valoare diferită de zero.

BX_CACHE_SID Este obligatoriu să se determine dacă mai multe instanțe din "1C-Bitrix: Site Management" rulează pe același server.


Și invers - dacă există mai multe site-uri pe o copie a produsului, pentru toate acestea valoarea ar trebui să fie aceeași. În caz contrar, memoria cache creată pe un site al casetei nu va fi vizibilă pe un alt site. Acest lucru este esențial pentru COption, cache-ul acestuia ar trebui să fie distribuit pe toate site-urile.

De asemenea, trebuie amintit că, atunci când se utilizează FastCGI fiecare proces PHP va avea propriul cache APC / eAccelerator, care va contribui în același timp la mai multe cache aceleași date și comportament „ciudat“ al produsului.

Problema poate fi rezolvată prin trecerea controlului descendenților PHP (prin opțiunea PHP_FCGI_CHILDREN), ceea ce nu este recomandat, deoarece PHP în sine are mult mai puțin control asupra descendenților. De asemenea, utilizarea PHP_FCGI_CHILDREN în mod_fcgid (dar nu în mod_fastcgi) poate limita semnificativ performanța, deoarece mod_fcgid transmite simultan o singură cerere procesului PHP, indiferent de numărul descendenților săi.

Astfel, atunci când se utilizează FastCGI, o alegere rezonabilă va fi partajată inițial cache - în fișiere sau memcached.







Articole similare

Trimiteți-le prietenilor: