Apc keshlash. PHPda APC: APC tushunchasi, o'rnatilishi, ishlatilishi. Magento-da APC-ni qo'llab-quvvatlashni yoqing


APC ning qisqartmasi hisoblanadi Muqobil PHP keshlash. Ruscha matn muqobil PHP keshidir. U nima uchun ishlatiladi? XCache va eAccelerator kabi boshqa mashhur keshlar kabi, u PHP skriptlarining tezligini oshirish uchun ishlatiladi. Agar sizda o'z serveringiz bo'lsa va PHP skriptlarining ishlashi haqida qayg'urayotgan bo'lsangiz, APC muammoingizni hal qilishi mumkin. Bugungi maqolada biz APC haqida ko'proq bilib olamiz, uni qanday o'rnatish va sinab ko'rishni o'rganamiz va PHP skriptlarini yozishda APC keshlashidan foydalanishni o'rganamiz.

APC tezlatgichi nima?

TezlatgichAPC(Alternativ PHP keshi) PHP uchun bepul va ochiq opcode keshri. U bepul, ochiq va barqaror keshlash va optimallashtirish tizimi bo'lishi uchun yaratilgan manba kodi PHP. APC rivojlanish bosqichida. Hozirda PHP 4 va PHP 5, jumladan 5.3.ni qoʻllab-quvvatlaydi. Taxminlarga ko'ra, u standart PHP 6 yadro versiyasiga kiritilgan.
Ish tezligiga qanday erishiladi?PHP?
Saytingizni yuklashda kechikish bo'lsa, savol tug'iladi - Nima uchun? Gap shundaki, PHP skriptiga standart qo'ng'iroqni amalga oshirishda u har safar yangidan kompilyatsiya qilinadi. Ya'ni, bir xil ish bir necha marta amalga oshiriladi. Agar bu kichik loyiha bo'lsa, sekinlashuvlar kichik, hatto ko'rinmas bo'lishi mumkin. Ammo agar sizda katta loyiha (veb-sayt) bo'lsa, u holda sayt html siqish va CSS siqish nuqtai nazaridan yaxshi optimallashtirilganiga qaramay, kirish vaqtida sahifani yuklashda kechikishlar borligini payqadingiz. Aniqlik uchun standart so'rov PHP tezlatgichlaridan foydalanmasdan qanday bajarilishini ko'rib chiqamiz:

Ayni paytda qatl qilish jarayoni davom etmoqda kod kompilyatsiyasi har bir so'rov bo'yicha. Bu so'rovni ko'rib chiqish uchun ko'p vaqt talab etadi va shuning uchun sekinlashadi. Buning oldini olish uchun APC vakili bo'lgan tezlatgichlar ixtiro qilindi. Ular kompilyatsiya qilingan kodni diskda keshlaydi, bu esa kirish paytida natijani beradi. Bu tezlikni oshiradi PHP ishi. APC faylda sozlangan ikkita rejimda ishlashi mumkin /etc/php.d/apc.ini, o'zgaruvchan apc.stat. O'zgaruvchi 1 va 0 qiymatlarini qabul qilishi mumkin (apc.stat=0 yoki apc.stat=1). Apc.stat=1 rejimidan foydalanganda, skriptlar faylni o'zgartirishni tekshirganda biroz sekinroq ishlaydi, ammo bu kod o'zgartirilganda muammolardan qochadi, ammo natijaning chiqishi bir xil bo'lib qoladi. Shuning uchun men sizga o'zgaruvchining qiymatini 1 ga qo'yishingizni maslahat beraman.
APC tezlatgichini o'rnatgandan so'ng, so'rovni bajarish sxemasi quyidagicha bo'ladi:

APC tezlatgichini o'rnatish

Kvartirada beri yangilangan versiyalar juda kech qo'shildi. Shuning uchun biz APC ni PECL orqali o'rnatamiz:

Sudo apt-get remove --purge php-apc sudo apt-get install libpcre3-dev sudo pecl install apc
O'rnatish vaqtida biz quyidagi konfiguratsiyani (YMMV) o'rnatamiz:
APC da ichki disk raskadrovkani yoqish : qo‘llab-quvvatlash yo‘q APC keshidan foydalanilgan fayllar haqida har bir so‘rov fayli ma’lumotlarini yoqish : yo‘q Spin bloklarini yoqish (TAJRIBAL) : yo‘q Xotirani himoyalashni yoqish (TAJRIBAT) : yo‘q Pthread mutexeslarini yoqish (standart) : ha Pthread o‘qishni yoqish / yozish qulflari (EKSPERIMENTAL): yo'q Endi sozlamalarda APC ni yoqishingiz kerak, chunki... bu avtomatik ravishda amalga oshirilmaydi. Buning uchun biz yaratamiz apc.ini faylini tegishli katalogga joylashtiring: sudo vim /etc/php5/conf.d/apc.ini va ushbu faylga quyidagi sozlamalarni yozing (Magento bilan ishlash uchun tavsiya etiladi) 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_segment=0 apc.shm_c.segments apc.cache_by_default=1 apc.include_once_override=1

Magento-da APC-ni qo'llab-quvvatlashni yoqing

Magento konfiguratsiya faylini oching: vi app/etc/local.xml va global bo'limga quyidagi kodni qo'shing:


apc fayli 0 1 MAGE_ yoki apc maʼlumotlar bazasi 0 1 MAGE_


Teglar orasida "Prefiks" ko'rsatilgan qisqa Tasvir Shunday qilib, bitta Magento-da qurilgan bir nechta do'konlarni keshlash uchun APC-dan foydalanish mumkin.

APC ishini qanday tekshirish mumkin?

Avvalo, Magento PHP skriptlari tezroq ishlay boshlaganiga e'tibor berishingiz kerak. Foydalanish Firebug va uning uchun plagin, masalan YSlow, sayt tezligini baholash uchun. Firefox uchun Firebug kengaytmasini bu yerdan yuklab olishingiz mumkin. Bundan tashqari, apc.php faylini APC tarqatish papkasidan papkaga nusxalash orqali foydalanishingiz mumkin loyihangizning ommaviyligi: sudo cp /usr/share/php/apc.php /ommaga yo'lingiz Endi siz ushbu faylni brauzeringizda ochishingiz mumkin: http://yourhost.local/apc.php 2015 yil 9 aprel, soat 12:12 1889 ko'rish | izohlarsiz

APC nima?

APC bu veb-saytingizni tezlashtirish imkonini beruvchi PHP kodini keshlash tizimi. PHP dinamik server tomonidagi skript tili boʻlib, u har safar sahifa soʻralganda serverda tahlil qilinishi, kompilyatsiya qilinishi va bajarilishi kerak. Biroq, ko'p hollarda, so'rovlar takrorlanadi va shuning uchun bulutli server ularning har birini qayta ishlashga majbur bo'ladi.

Bunday holda, APC yoki Alternativ PHP keshi yordamga keladi. Ushbu vosita PHP kodini operatsion xotirada saqlaydi va kerak bo'lganda uni oladi. Asosan, u kodni qayta ishlash va kompilyatsiya qilishni chetlab o'tib, serverdagi yukni minimallashtiradi.

Ushbu qo'llanma APC ning o'rnatilishi va konfiguratsiyasini ko'rsatadi.

Eslatma: Qo'llanmani to'ldirish uchun siz avval ildiz huquqlariga ega bo'lishingiz kerak, shuningdek .

APC o'rnatish

APC keshini o'rnatishdan oldin uning ba'zi bog'liqliklarini o'rnatishingiz kerak. Buning uchun quyidagi buyruqdan foydalaning:

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

Keyin pecl buyrug'i yordamida APC-ni o'rnatishingiz mumkin:

sudo pecl o'rnatish apc

O'rnatishni yakunlash uchun php.ini faylini tahrirlashingiz kerak:

oxirida quyidagi qatorni qo'shing:

extension=apc.so

Faylni saqlang va yoping va keyin Apache-ni qayta ishga tushiring:

sudo xizmati apache2 ni qayta ishga tushiring

APC yoqilganligini bilish uchun PHP ma'lumot sahifasini oching. Agar yo'q bo'lsa, /var/www jildida bo'sh PHP fayl yarating:

nano /var/www/info.php

Va unga ushbu kodni qo'shing:

phpinfo();
?>

Faylni saqlang va yoping, so'ngra brauzeringizni oching. Hozirgi haqida barcha ma'lumotlar PHP o'rnatish. Agar APC yoqilgan bo'lsa, sahifa buni ko'rsatadi. Umuman olganda, ushbu faylni tark etish tavsiya etilmaydi, chunki u maxfiy ma'lumotlarga kirishni ta'minlashi mumkin ruxsatsiz foydalanuvchilarga. Tekshirgandan keyin uni olib tashlang.

APC sozlash

O'rnatishdan so'ng, APC keshi standart sozlamalar bilan boshlanadi. Uning konfiguratsiyasi ikkita juda ko'p muhim sozlamalar. Shunday qilib, php.ini faylini oching:

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

APC ni o'z ichiga olgan ilgari qo'shilgan qatorga quyidagi qatorni qo'shing:

apc.shm_size = 64

Bu 64 MB ajratadi tasodifiy kirish xotirasi APC keshlash uchun. Virtual xususiy serverning talablari yoki cheklovlariga qarab, bu qiymat farq qilishi mumkin.

Quyida yana bitta qator qo'shishingiz kerak:

apc.stat sozlamasi o'zgarishlarni tekshirish uchun har bir so'rovda skriptni tekshiradi. Agar u o'zgartirilgan bo'lsa, uni qayta kompilyatsiya qiladi va keshlaydi yangi versiya. Bu standart APC harakati. Ushbu satrdagi 0 qiymati APC-ga skriptdagi o'zgarishlarni tekshirmaslikni aytadi. Bu ish faoliyatini yaxshilaydi, ammo salbiy tomoni bor: agar PHP skripti o'zgarishlar yuz bergan bo'lsa, ular bulutli server qayta ishga tushirilmaguncha amalga oshirilmaydi. Shuning uchun qiymatni 0 ga o'rnatish faqat ishlab chiqarishda bo'lgan saytlarda tavsiya etiladi.

Endi APC keshi o'rnatilgan va ishlayotgan bo'lsa, uning holati va ishlashini tekshirishingiz mumkin. /usr/share/php/ jildidan apc.php faylini toping va uni brauzer tomonidan kirish mumkin bo'lgan papkaga ko'chiring - masalan, www.

Ushbu funktsiyalarning ishlashi php.ini sozlamalariga bog'liq.

Standart APC sozlamalari ko'pchilik o'rnatishlar uchun mos bo'lsa-da, ba'zi ilovalar ko'proq nozik sozlashni talab qilishi mumkin.

APC ni sozlashda ikkita asosiy nuqtaga e'tibor berish kerak. Birinchisi, APC uchun qancha xotira mavjud bo'lishi kerak, ikkinchisi, APC har bir so'rov bo'yicha fayl o'zgartirilganligini tekshiradimi yoki yo'qmi. Ushbu sozlamalar parametrlar tomonidan boshqariladi apc.shm_size Va apc.stat, mos ravishda. Iltimos, ushbu parametrlarni o'rnatish bilan bog'liq bo'limlarni diqqat bilan o'qing.

Server ishga tushirilgach, skript apc.php, ushbu kengaytma bilan ta'minlangan, "docroot" ga ko'chirilishi kerak va unga bo'lgan huquqlar uni brauzer orqali ishga tushirishga ruxsat berishi kerak. Ushbu skript APC qanday ishlashi haqida batafsil ma'lumot beradi. Agar PHP da GD yoqilgan bo'lsa, bu skript foydali grafiklarni ham ko'rsatadi. Albatta, qiziq bo'ladigan birinchi narsa - APC biror narsani keshlaydimi. Agar APC ishlayotgan bo'lsa, u holda qiymat Keshning to'liq soni(chapda) kesh necha marta to'liq to'lganini va oxirgi marta foydalanilmagan yozuvlarni majburan olib tashlashga majbur bo'lganligini ko'rsatadi. apc.ttl soniya Bu raqam qanchalik past bo'lsa, kesh shunchalik yaxshi sozlangan bo'ladi. Agar bu raqam doimiy ravishda o'sib borayotgan bo'lsa, unda APC doimiy ravishda eski yozuvlarni tozalashi kerak va keshlashning butun nuqtasi yo'qoladi. Ko'pchilik Eng yaxshi yo'l bu raqamni kamaytirish APC uchun xotira qo'shishni anglatadi. Agar buni amalga oshirishning iloji bo'lmasa, siz qayta sozlashingiz kerak apc.filtrlar keshlangan skriptlar to'plamini cheklash uchun.

Agar APC mmap (Memory Mapping) qo'llab-quvvatlashi bilan qurilgan bo'lsa, u faqat bitta xotira segmentidan foydalanadi, agar aksincha, APC SHM (SysV Shared Memory) ko'magida qurilgan bo'lsa, u bir nechta segmentlardan foydalanadi. Cheklangan SHM dan farqli o'laroq, MMAPning maksimal chegarasi yo'q /proc/sys/kernel/shmmax. Odatda MMAP dan foydalanish tavsiya etiladi, chunki u veb-server qayta ishga tushirilganda xotirani tezroq ajratadi, bu esa serverni ishga tushirish tezligiga ta'sir qiladi.

APC konfiguratsiya parametrlari
Ism Standart O'zgarish joyi O'zgarishlar ro'yxati
apc.enabled "1" PHP_INI_SYSTEM APC 2 da PHP_INI_SYSTEM. APC da PHP_INI_ALL<= 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 APC 3.1.4 bilan mavjud.
apc.optimization "0" PHP_INI_ALL APC 2 da PHP_INI_SYSTEM. APC 3.0.13 da olib tashlangan.
apc.num_files_hint "1000" PHP_INI_SYSTEM
apc.user_entries_hint "4096" PHP_INI_SYSTEM APC 3.0.0 bilan mavjud.
apc.ttl "0" PHP_INI_SYSTEM APC 3.0.0 bilan mavjud.
apc.user_ttl "0" PHP_INI_SYSTEM APC 3.0.0 bilan mavjud.
apc.gc_ttl "3600" PHP_INI_SYSTEM
apc.cache_by_default "1" PHP_INI_ALL APC da PHP_INI_SYSTEM<= 3.0.12. Доступно с APC 3.0.0.
apc.filtrlar NULL PHP_INI_SYSTEM
apc.mmap_file_mask NULL PHP_INI_SYSTEM
apc.slam_defense "1" PHP_INI_SYSTEM APC 3.0.0 bilan mavjud. APC 3.1.4 dan oldin, standart qiymat "0" (o'chirilgan).
apc.file_update_protection "2" PHP_INI_SYSTEM APC 3.0.6 bilan mavjud.
apc.enable_cli "0" PHP_INI_SYSTEM APC 3.0.7 bilan mavjud.
apc.max_file_size "1M" PHP_INI_SYSTEM APC 3.0.7 bilan mavjud.
apc.use_request_time "1" PHP_INI_ALL APC 3.1.3 bilan mavjud.
apc.stat "1" PHP_INI_SYSTEM APC 3.0.10 bilan mavjud.
apc.write_lock "1" PHP_INI_SYSTEM APC 3.0.11 bilan mavjud.
apc.report_autofilter "0" PHP_INI_SYSTEM APC 3.0.11 bilan mavjud.
apc.serializer "standart" PHP_INI_SYSTEM APC 3.1.0 bilan mavjud.
apc.include_once_override "0" PHP_INI_SYSTEM APC 3.0.12 bilan mavjud.
apc.rfc1867 "0" PHP_INI_SYSTEM APC 3.0.13 bilan mavjud.
apc.rfc1867_prefiks "yuklash_" 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 APC 3.1.1 bilan mavjud.
apc.localcache "0" PHP_INI_SYSTEM
apc.localcache.size "512" PHP_INI_SYSTEM APC 3.0.14 - 3.1.11 da mavjud.
apc.coredump_unmap "0" PHP_INI_SYSTEM APC 3.0.16 bilan mavjud.
apc.stat_ctime "0" PHP_INI_SYSTEM APC 3.0.13 bilan mavjud.
apc.preload_path NULL PHP_INI_SYSTEM APC 3.1.1 bilan mavjud.
apc.file_md5 "0" PHP_INI_SYSTEM APC 3.1.1 bilan mavjud.
apc.canonicalize "1" PHP_INI_SYSTEM APC 3.1.1 bilan mavjud.
apc.lazy_functions 0 PHP_INI_SYSTEM APC 3.1.3 bilan mavjud.
apc.lazy_classes 0 PHP_INI_SYSTEM APC 3.1.3 bilan mavjud.
PHP_INI_* konstantalarining batafsil tavsifi uchun Konfiguratsiya parametrlarini oʻrnatish mumkin boʻlgan boʻlimga qarang.

Konfiguratsiya ko'rsatmalariga qisqacha tushuntirish.

Agar o'rnatsangiz apc.enabled 0 ga o'rnatilgan bo'lsa, APC yoqilmaydi. Bu PHPda APC statik ravishda yoqilgan va undan foydalanishni o'chirish uchun boshqa imkoniyatlar mavjud bo'lmaganda foydalidir. Agar APC DSO sifatida qurilgan bo'lsa, siz shunchaki chiziqni sharhlashingiz mumkin kengaytma V php.ini.

Apc.shm_segments butun son

Kesh uchun ajratilgan umumiy xotira segmentlari soni. Agar APC barcha mavjud umumiy xotiradan foydalangan bo'lsa va apc.shm_size tizim imkon qadar katta bo'lsa, bu parametrni oshirish yordam berishi mumkin.

Apc.shm_size ip

Umumiy xotira segmentining o'lchami, qisqa yozuvda ko'rsatilgan (bu FAQ-ga qarang). Odatiy bo'lib, ba'zi tizimlar (shu jumladan, ko'pgina BSD variantlari) bu qiymatni juda kichik qiymat bilan cheklaydi.

Apc.shm_strings_buffer ip

Ichki APC jarayonlari tomonidan ishlatiladigan umumiy simli keshga ajratilgan xotira miqdori. O'lcham mos ravishda megabayt va gigabaytni ko'rsatish uchun M yoki G qo'shimchasi bilan tugatilishi kerak. Ushbu parametrdan foydalanish PHP-FPM ishchi jarayonlarining xotira maydonini kamaytirishi mumkin, chunki bir xil satrlar xotirada faqat bir marta saqlanadi va barcha ishchi jarayonlar tomonidan ishlatilishi mumkin.

Apc.optimization butun son

Optimallashtirish darajasi. Nol optimallashtirishni o'chiradi. Bu qiymat qanchalik yuqori bo'lsa, shunchalik agressiv optimallashtirish qo'llaniladi. Tezlikning katta o'sishini kutmang. Bu eksperimental funksiya.

Apc.num_files_shint butun son

Saytingizda ishlatiladigan noyob fayllar soni haqida maslahat. Nolga o'rnating yoki ishonchingiz komil bo'lmasa, uni umuman ko'rsatmang. Bu sozlama minglab fayllaringiz bo'lsa foydali bo'ladi.

Apc.user_entries_hint butun son apc.file_update_protection butun son

Fayl tezda o'zgarganda, u atomik tarzda sodir bo'lishi kerak. Ya'ni, avval uni vaqtinchalik faylga yozib, keyin ko'chirish kerak ( mv) maqsadli pozitsiyasiga. Ko'p matn muharrirlari cp, smola va boshqalar buni qilmaydi. Bu fayl yozilayotganda so'ralgan (va keshlangan) bo'lishi mumkin. Sozlamalar apc.file_update_protection butunlay yangi fayllar uchun keshlash kechikishini o'rnatadi. Standart 2 soniya. Bu shuni anglatadiki, agar faylni o'zgartirish vaqt tamg'asi ( m vaqt) agar fayl o'zgartirilgandan keyin 2 soniyadan kamroq vaqt o'tgan bo'lsa, u keshda saqlanmasligini aytadi. Yarim saqlangan faylga kirishga urinayotgan baxtsiz odam g'alati xatti-harakatlarga duch keladi, lekin hech bo'lmaganda bu uzoq davom etmaydi. Agar barcha veb-server fayllari atomik tarzda yangilansa, masalan rsync(to'g'ri yangilanadi), keyin ushbu parametrni nolga o'rnatish orqali bu xatti-harakatni o'chirib qo'yish mumkin. Agar tizim I/U haddan tashqari yuklangan bo'lsa, ba'zi yangilanishlar ikki soniyadan ko'proq vaqt olishi mumkin va bu sozlama mos ravishda oshirilishi kerak.

Apc.enable_cli butun son

Sinov va disk raskadrovka uchun ko'proq. Bu sozlama PHP ning CLI versiyasi uchun APC ga ruxsat beradi. Oddiy ishda, konsolda skriptni har safar ishga tushirganingizda keshni yaratadigan, to'ldiradigan va yo'q qiladigan APC-ni ishga tushirish eng yaxshi g'oya bo'lmaydi. Ammo sinov va disk raskadrovka maqsadlarida siz CLI uchun APC-ni osongina yoqishingiz mumkin.

Apc.max_file_size butun son

Ushbu sozlamada belgilangan hajmdan kattaroq fayllarni kesh saqlamaydi. Standart 1M.

Apc.stat butun son

Ushbu sozlamani o'zgartirganda ehtiyot bo'ling. Bu sukut bo'yicha yoqilgan bo'lib, APC har bir so'rov bo'yicha skript fayllarini tekshirib ko'radi va ular o'zgartirilganmi yoki yo'qmi. Agar ular o'zgartirilgan bo'lsa, ular qayta kompilyatsiya qilinadi va yana keshlanadi. Agar siz ushbu sozlamani o'chirib qo'ysangiz, APC bunday tekshiruvni amalga oshirmaydi va agar fayl allaqachon keshlangan va keyin o'zgartirilgan bo'lsa, yangi versiya keshga tushmaydi. Qayta tiklash veb-serverni qayta ishga tushirishni talab qiladi. Esda tutingki, FastCGI dan foydalanish uchun sozlangan veb-serverlar qayta ishga tushirilganda keshni tozalamasligi mumkin. Fayl o'zgarishlari juda kam uchraydigan sanoat muhitida ushbu parametrni o'chirib qo'yish ish faoliyatini sezilarli darajada yaxshilashi mumkin.

Qo'shilgan/kerakli orqali yuklangan fayllar uchun bu parametr juda yaxshi ishlaydi, lekin esda tutingki, agar siz faylni nisbiy yo'lga qo'shsangiz (Unix-da, / bilan boshlanmagan har qanday yo'l), APC o'ziga xoslikni tekshiradi. Mutlaq yo'llar ishlatilsa, APC bu tekshiruvni o'tkazib yuboradi va mutlaq yo'lni yagona fayl identifikatori sifatida ishlatadi.

Apc.write_lock mantiqiy

Og'ir yuklangan serverlarda, server ishga tushganda yoki bir vaqtning o'zida bir nechta fayllar o'zgartirilganda, APC bir vaqtning o'zida bir xil faylni bir necha marta kompilyatsiya qilishga va keshlashga urinishi mumkin. Yozishni blokirovkalash faqat bitta jarayon keshlanmagan faylni kompilyatsiya qilish va keshlashga harakat qilishini ta'minlaydi. Ushbu fayldan foydalanish kerak bo'lgan boshqa jarayonlar keshda paydo bo'lishini kutish o'rniga, uning keshlanmagan versiyasidan foydalanadi.

Apc.report_autofilter mantiqiy

Erta yoki kech ulanish muammolari tufayli keshlashdan chiqarib tashlangan har qanday skriptlarni qayd qiladi.

Apc.serializer ip

APC ga uchinchi tomon serializatoridan foydalanishni aytadi.

Apc.include_once_override mantiqiy

Qo'ng'iroqlarni optimallashtiradi bir marta kiriting Va bir marta talab qilish qimmat tizim qo'ng'iroqlarini oldini olish uchun.

Diqqat

Bu funksionallik EXPERIMENTAL. Ushbu direktivaning xatti-harakati, uning nomi va hujjatlari APC ning kelgusi versiyalarida ogohlantirilmasdan o'zgarishi mumkin. O'zingizning xavf-xataringiz ostida foydalaning.

Apc.rfc1867 mantiqiy

RFC1867 faylni yuklab olish jarayonini to'xtatuvchisi faqat PHP 5.2.0 yoki undan yuqori versiyalarida qurilgan bo'lsa, APC da mavjud. Agar ruxsat berilsa, serverga yuklangan har qanday fayl formada, fayl maydonidan oldin nomli maydonni o'z ichiga oladi APC_UPLOAD_PROGRESS, APC-ni avtomatik ravishda upload_ kabi maxsus kesh yozuvini yaratishga majbur qiladi kalit, Qayerda kalit maydon qiymati hisoblanadi APC_UPLOAD_PROGRESS.

Yashirin maydon ekanligini unutmang APC_UPLOAD_PROGRESS fayl bilan maydonga borish kerak, aks holda ish noto'g'ri bo'ladi.

Shuni esda tutingki, faylni yuklab olish kuzatuvi tarmoq uchun xavfsiz emas, shuning uchun agar birinchi yuklab olish paytida xuddi shu kalit bilan yangisi paydo bo'lsa, birinchisini kuzatish to'xtatiladi.

shu esta tutilsinki darajasi barcha joriy yuklashlar tugallangandan keyingina mavjud bo'ladi.

1-misol apc.rfc1867 dan foydalanishga misol

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

Ushbu misolni ishga tushirish natijasi shunday bo'ladi:

Massiv ( => 1142543 => 1142543 => 1828068.8 => test => fayl => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefiks ip

rfc1867 yuklab olish jarayonini kuzatish funksiyasi tomonidan yaratilgan foydalanuvchi kesh yozuvida foydalanish uchun kalit prefiksi.

Apc.rfc1867_name ip

APC yuklab olish jarayonini faollashtiradigan va foydalanuvchi kesh kaliti qo'shimchasini ko'rsatadigan yashirin shakl maydoni nomini belgilaydi.

Apc.rfc1867_freq ip

Faylni yuklab olish vaqtida foydalanuvchi keshidagi yozuvning yangilanish chastotasi. U foiz sifatida yoki o'lchamni baytda ko'rsatish orqali ko'rsatilishi mumkin. Agar xohlasangiz, qo'shimchalardan foydalanishingiz mumkin "k", "m" Va "g" Kilobaytlar, megabaytlar va gigabaytlar uchun (harf-kichik harf sezgir emas). Agar siz nolni belgilasangiz, yangilanishlar imkon qadar tezroq amalga oshiriladi, ammo bu yuklash vaqtini sekinlashtirishi mumkin.

Apc.rfc1867_ttl butun son

rfc1867 yozuvlari uchun TTL.

Apc.localcache mantiqiy

Bloklanmagan mahalliy jarayon soya keshini yoqadi, bu kesh yozish paytida blokirovka miqdorini kamaytiradi.

Apc.localcache.size butun son

Mahalliy jarayon soya keshining hajmi juda katta bo'lishi kerak, taxminan apc.num_files_hint ning yarmi.

Apc.coredump_unmap mantiqiy

APC ga SIGSEGV kabi signallarni tutib olish imkonini beradi, u chiqarilganda yadro dumpini yozadi. Ushbu signallar qabul qilinganda, APC uni yadroviy xotiraga kiritmaslik uchun barcha umumiy xotirani bo'shatishga harakat qiladi. Ushbu sozlama kritik signal qabul qilinganda va APC katta hajmdagi xotiradan foydalanishga sozlanganda tizim barqarorligini oshirishi mumkin.

Diqqat

Bu xususiyat potentsial xavflidir. Kritik signal qabul qilinganda umumiy xotira segmentlarini bo'shatish oldindan aytib bo'lmaydigan xatti-harakatlarga olib kelishi mumkin.

Izoh:

Garchi ba'zi yadrolar asosiy faylni yozishda ba'zi umumiy xotira segmentlarini e'tiborsiz qoldirish qobiliyatini ta'minlasa ham, bu ilovalar Apache skorbord kabi muhim xotira segmentlarini ham e'tiborsiz qoldirishi mumkin.

apc.stat_ctime butun son

Svn yoki rsync kabi dasturlardan kelib chiqadigan muammolarni oldini olish uchun ctime bo'yicha tekshiring va oxirgi marta statistika yig'ilgandan beri inode o'zgarmaganligiga ishonch hosil qiling. Odatda APC faqat mtimeni tekshiradi.

Apc.canonicalize bool

Agar o'chirilgan bo'lsa, nisbiy yo'llar no-stat rejimida kanonikga aylantiriladi. Agar yoqilgan bo'lsa, oqim o'rami orqali ulangan fayllar keshlanmaydi, chunki realpath() oqim o'ramlarini qo'llab-quvvatlamaydi.

Apc.preload_path ip

Ixtiyoriy. Ishga tushirish vaqtida keshlangan ma'lumotlarni yuklash uchun APC foydalanadigan yo'lni belgilaydi.

Apc.use_request_time bool

TTL uchun SAPI soʻrovining boshlanish vaqtidan foydalaning.

Apc.file_md5 bool

Fayllarning md5 xeshlarini yozing.

Apc.lazy_functions butun son

Funksiyalarni dangasa yuklashga imkon beradi.

Apc.lazy_classes butun son

Sinflarni dangasa yuklashga imkon beradi.

Konfiguratsiya fayli ko'pincha /etc/php.d/apcu.ini da joylashgan. Misol konfiguratsiya fayli 8 GB operativ xotiraga ega server uchun:

extension=apcu.so
apc.enable_cli = 1
apc.shm_segments = 1
apc.shm_size = 512M
apc.stat = 1
apc.ttl = 0
apc.user_ttl = 0
apc.max_file_size = 1M
apc.num_files_hint = 16384
apc.user_entries_hint = 16384
apc.file_update_protection=10

Da PHP yordamida 5.3, kengaytma=apc.so ko'rsatilgan

FastCGI eslatmasi: PHP uchun mashhur APC opcode keshi, agar PHP bolalar jarayonlarini boshqarmasa, PHP FastCGI jarayonlari o'rtasida keshni baham ko'ra olmaydi. Shunday qilib, keshning samaradorligi mod_fcgid bilan cheklangan; bir vaqtning o'zida PHP so'rovlari turli xil opcode keshlaridan foydalanadi.

Asosiy APCu konfiguratsiya atributlarining tavsifi

apc.shm_segments Ajratilgan xotira segmentlari soni. Ko'pgina BSD tizimlari past xotira segmentiga ega. Standart 1.
apc.shm_size Umumiy xotira segmentining hajmi megabaytlarda o'rnatiladi. Minimalni 128M, 8GB bo'lgan server uchun - 512M, 16GB - 1024M bo'lgan server uchun o'rnatishni tavsiya etamiz. Agar bir nechta segment ishlatilsa, xotira hajmi segmentlar soniga bo'linishi kerak.
apc.stat Ushbu parametr APC-ni o'chirish yoki yoqish imkonini beradi. Qiymat 1 - yoqilgan, 0 - o'chirilgan.
apc.ttl PHP faylni keshlash vaqti. 0 ga o'rnatilgan bo'lsa, ajratilgan xotira to'lganida butun keshni tozalashga imkon beradi.
apc.user_ttl Foydalanuvchi ma'lumotlarini keshlash vaqti. 0 ga o'rnatilgan bo'lsa, ajratilgan xotira to'lganida butun keshni tozalashga imkon beradi.
apc.max_file_size Keshlangan faylning maksimal hajmi.
apc.num_files_hint APC fayl ma'lumotlarini xotirada saqlashni tashkil qilishni optimallashtirish uchun ishlatiladi. 10000 dan kattaroq qiymat o'rnatishni tavsiya qilamiz.
apc.user_entries_hint APC foydalanuvchi o'zgaruvchilarini xotirada saqlashni tashkil qilishni optimallashtirish uchun ishlatiladi. 10000 dan kattaroq qiymat o'rnatishni tavsiya qilamiz.
apc.file_update_protection Belgilangan soniyalardan kamroq vaqt oldin yaratilgan fayllarni keshlamang. Qisman yozilgan faylni keshlashdan qochish imkonini beradi.

Xato Xotirani hovuzga ajratib bo‘lmadi

Include(): Xotirani ajratish xatosi, apc.ttl va apc.user_ttl parametrlarini nolga o'rnatish xotira parchalanishini minimallashtirishga yordam beradi.

Ushbu funktsiyalarning ishlashi php.ini sozlamalariga bog'liq.

Standart APC sozlamalari ko'pchilik o'rnatishlar uchun mos bo'lsa-da, ba'zi ilovalar ko'proq nozik sozlashni talab qilishi mumkin.

APC ni sozlashda ikkita asosiy nuqtaga e'tibor berish kerak. Birinchisi, APC uchun qancha xotira mavjud bo'lishi kerak, ikkinchisi, APC har bir so'rov bo'yicha fayl o'zgartirilganligini tekshiradimi yoki yo'qmi. Ushbu sozlamalar parametrlar tomonidan boshqariladi apc.shm_size Va apc.stat, mos ravishda. Iltimos, ushbu parametrlarni o'rnatish bilan bog'liq bo'limlarni diqqat bilan o'qing.

Server ishga tushirilgach, skript apc.php, ushbu kengaytma bilan ta'minlangan, "docroot" ga ko'chirilishi kerak va unga bo'lgan huquqlar uni brauzer orqali ishga tushirishga ruxsat berishi kerak. Ushbu skript APC qanday ishlashi haqida batafsil ma'lumot beradi. Agar PHP da GD yoqilgan bo'lsa, bu skript foydali grafiklarni ham ko'rsatadi. Albatta, qiziq bo'ladigan birinchi narsa - APC biror narsani keshlaydimi. Agar APC ishlayotgan bo'lsa, u holda qiymat Keshning to'liq soni(chapda) kesh necha marta to'liq to'lganini va oxirgi marta foydalanilmagan yozuvlarni majburan olib tashlashga majbur bo'lganligini ko'rsatadi. apc.ttl soniya Bu raqam qanchalik past bo'lsa, kesh shunchalik yaxshi sozlangan bo'ladi. Agar bu raqam doimiy ravishda o'sib borayotgan bo'lsa, unda APC doimiy ravishda eski yozuvlarni tozalashi kerak va keshlashning butun nuqtasi yo'qoladi. Bu raqamni kamaytirishning eng yaxshi usuli APC ga xotira qo'shishdir. Agar buni amalga oshirishning iloji bo'lmasa, siz qayta sozlashingiz kerak apc.filtrlar keshlangan skriptlar to'plamini cheklash uchun.

Agar APC mmap (Memory Mapping) qo'llab-quvvatlashi bilan qurilgan bo'lsa, u faqat bitta xotira segmentidan foydalanadi, agar aksincha, APC SHM (SysV Shared Memory) ko'magida qurilgan bo'lsa, u bir nechta segmentlardan foydalanadi. Cheklangan SHM dan farqli o'laroq, MMAPning maksimal chegarasi yo'q /proc/sys/kernel/shmmax. Odatda MMAP dan foydalanish tavsiya etiladi, chunki u veb-server qayta ishga tushirilganda xotirani tezroq ajratadi, bu esa serverni ishga tushirish tezligiga ta'sir qiladi.

APC konfiguratsiya parametrlari
Ism Standart O'zgarish joyi O'zgarishlar ro'yxati
apc.enabled "1" PHP_INI_SYSTEM APC 2 da PHP_INI_SYSTEM. APC da PHP_INI_ALL<= 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 APC 3.1.4 bilan mavjud.
apc.optimization "0" PHP_INI_ALL APC 2 da PHP_INI_SYSTEM. APC 3.0.13 da olib tashlangan.
apc.num_files_hint "1000" PHP_INI_SYSTEM
apc.user_entries_hint "4096" PHP_INI_SYSTEM APC 3.0.0 bilan mavjud.
apc.ttl "0" PHP_INI_SYSTEM APC 3.0.0 bilan mavjud.
apc.user_ttl "0" PHP_INI_SYSTEM APC 3.0.0 bilan mavjud.
apc.gc_ttl "3600" PHP_INI_SYSTEM
apc.cache_by_default "1" PHP_INI_ALL APC da PHP_INI_SYSTEM<= 3.0.12. Доступно с APC 3.0.0.
apc.filtrlar NULL PHP_INI_SYSTEM
apc.mmap_file_mask NULL PHP_INI_SYSTEM
apc.slam_defense "1" PHP_INI_SYSTEM APC 3.0.0 bilan mavjud. APC 3.1.4 dan oldin, standart qiymat "0" (o'chirilgan).
apc.file_update_protection "2" PHP_INI_SYSTEM APC 3.0.6 bilan mavjud.
apc.enable_cli "0" PHP_INI_SYSTEM APC 3.0.7 bilan mavjud.
apc.max_file_size "1M" PHP_INI_SYSTEM APC 3.0.7 bilan mavjud.
apc.use_request_time "1" PHP_INI_ALL APC 3.1.3 bilan mavjud.
apc.stat "1" PHP_INI_SYSTEM APC 3.0.10 bilan mavjud.
apc.write_lock "1" PHP_INI_SYSTEM APC 3.0.11 bilan mavjud.
apc.report_autofilter "0" PHP_INI_SYSTEM APC 3.0.11 bilan mavjud.
apc.serializer "standart" PHP_INI_SYSTEM APC 3.1.0 bilan mavjud.
apc.include_once_override "0" PHP_INI_SYSTEM APC 3.0.12 bilan mavjud.
apc.rfc1867 "0" PHP_INI_SYSTEM APC 3.0.13 bilan mavjud.
apc.rfc1867_prefiks "yuklash_" 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 APC 3.1.1 bilan mavjud.
apc.localcache "0" PHP_INI_SYSTEM
apc.localcache.size "512" PHP_INI_SYSTEM APC 3.0.14 - 3.1.11 da mavjud.
apc.coredump_unmap "0" PHP_INI_SYSTEM APC 3.0.16 bilan mavjud.
apc.stat_ctime "0" PHP_INI_SYSTEM APC 3.0.13 bilan mavjud.
apc.preload_path NULL PHP_INI_SYSTEM APC 3.1.1 bilan mavjud.
apc.file_md5 "0" PHP_INI_SYSTEM APC 3.1.1 bilan mavjud.
apc.canonicalize "1" PHP_INI_SYSTEM APC 3.1.1 bilan mavjud.
apc.lazy_functions 0 PHP_INI_SYSTEM APC 3.1.3 bilan mavjud.
apc.lazy_classes 0 PHP_INI_SYSTEM APC 3.1.3 bilan mavjud.
PHP_INI_* konstantalarining batafsil tavsifi uchun Konfiguratsiya parametrlarini oʻrnatish mumkin boʻlgan boʻlimga qarang.

Konfiguratsiya ko'rsatmalariga qisqacha tushuntirish.

Agar o'rnatsangiz apc.enabled 0 ga o'rnatilgan bo'lsa, APC yoqilmaydi. Bu PHPda APC statik ravishda yoqilgan va undan foydalanishni o'chirish uchun boshqa imkoniyatlar mavjud bo'lmaganda foydalidir. Agar APC DSO sifatida qurilgan bo'lsa, siz shunchaki chiziqni sharhlashingiz mumkin kengaytma V php.ini.

Apc.shm_segments butun son

Kesh uchun ajratilgan umumiy xotira segmentlari soni. Agar APC barcha mavjud umumiy xotiradan foydalangan bo'lsa va apc.shm_size tizim imkon qadar katta bo'lsa, bu parametrni oshirish yordam berishi mumkin.

Apc.shm_size ip

Umumiy xotira segmentining o'lchami, qisqa yozuvda ko'rsatilgan (bu FAQ-ga qarang). Odatiy bo'lib, ba'zi tizimlar (shu jumladan, ko'pgina BSD variantlari) bu qiymatni juda kichik qiymat bilan cheklaydi.

Apc.shm_strings_buffer ip

Ichki APC jarayonlari tomonidan ishlatiladigan umumiy simli keshga ajratilgan xotira miqdori. O'lcham mos ravishda megabayt va gigabaytni ko'rsatish uchun M yoki G qo'shimchasi bilan tugatilishi kerak. Ushbu parametrdan foydalanish PHP-FPM ishchi jarayonlarining xotira maydonini kamaytirishi mumkin, chunki bir xil satrlar xotirada faqat bir marta saqlanadi va barcha ishchi jarayonlar tomonidan ishlatilishi mumkin.

Apc.optimization butun son

Optimallashtirish darajasi. Nol optimallashtirishni o'chiradi. Bu qiymat qanchalik yuqori bo'lsa, shunchalik agressiv optimallashtirish qo'llaniladi. Tezlikning katta o'sishini kutmang. Bu eksperimental funksiya.

Apc.num_files_shint butun son

Saytingizda ishlatiladigan noyob fayllar soni haqida maslahat. Nolga o'rnating yoki ishonchingiz komil bo'lmasa, uni umuman ko'rsatmang. Bu sozlama minglab fayllaringiz bo'lsa foydali bo'ladi.

Apc.user_entries_hint butun son apc.file_update_protection butun son

Fayl tezda o'zgarganda, u atomik tarzda sodir bo'lishi kerak. Ya'ni, avval uni vaqtinchalik faylga yozib, keyin ko'chirish kerak ( mv) maqsadli pozitsiyasiga. Ko'p matn muharrirlari cp, smola va boshqalar buni qilmaydi. Bu fayl yozilayotganda so'ralgan (va keshlangan) bo'lishi mumkin. Sozlamalar apc.file_update_protection butunlay yangi fayllar uchun keshlash kechikishini o'rnatadi. Standart 2 soniya. Bu shuni anglatadiki, agar faylni o'zgartirish vaqt tamg'asi ( m vaqt) agar fayl o'zgartirilgandan keyin 2 soniyadan kamroq vaqt o'tgan bo'lsa, u keshda saqlanmasligini aytadi. Yarim saqlangan faylga kirishga urinayotgan baxtsiz odam g'alati xatti-harakatlarga duch keladi, lekin hech bo'lmaganda bu uzoq davom etmaydi. Agar barcha veb-server fayllari atomik tarzda yangilansa, masalan rsync(to'g'ri yangilanadi), keyin ushbu parametrni nolga o'rnatish orqali bu xatti-harakatni o'chirib qo'yish mumkin. Agar tizim I/U haddan tashqari yuklangan bo'lsa, ba'zi yangilanishlar ikki soniyadan ko'proq vaqt olishi mumkin va bu sozlama mos ravishda oshirilishi kerak.

Apc.enable_cli butun son

Sinov va disk raskadrovka uchun ko'proq. Bu sozlama PHP ning CLI versiyasi uchun APC ga ruxsat beradi. Oddiy ishda, konsolda skriptni har safar ishga tushirganingizda keshni yaratadigan, to'ldiradigan va yo'q qiladigan APC-ni ishga tushirish eng yaxshi g'oya bo'lmaydi. Ammo sinov va disk raskadrovka maqsadlarida siz CLI uchun APC-ni osongina yoqishingiz mumkin.

Apc.max_file_size butun son

Ushbu sozlamada belgilangan hajmdan kattaroq fayllarni kesh saqlamaydi. Standart 1M.

Apc.stat butun son

Ushbu sozlamani o'zgartirganda ehtiyot bo'ling. Bu sukut bo'yicha yoqilgan bo'lib, APC har bir so'rov bo'yicha skript fayllarini tekshirib ko'radi va ular o'zgartirilganmi yoki yo'qmi. Agar ular o'zgartirilgan bo'lsa, ular qayta kompilyatsiya qilinadi va yana keshlanadi. Agar siz ushbu sozlamani o'chirib qo'ysangiz, APC bunday tekshiruvni amalga oshirmaydi va agar fayl allaqachon keshlangan va keyin o'zgartirilgan bo'lsa, yangi versiya keshga tushmaydi. Qayta tiklash veb-serverni qayta ishga tushirishni talab qiladi. Esda tutingki, FastCGI dan foydalanish uchun sozlangan veb-serverlar qayta ishga tushirilganda keshni tozalamasligi mumkin. Fayl o'zgarishlari juda kam uchraydigan sanoat muhitida ushbu parametrni o'chirib qo'yish ish faoliyatini sezilarli darajada yaxshilashi mumkin.

Qo'shilgan/kerakli orqali yuklangan fayllar uchun bu parametr juda yaxshi ishlaydi, lekin esda tutingki, agar siz faylni nisbiy yo'lga qo'shsangiz (Unix-da, / bilan boshlanmagan har qanday yo'l), APC o'ziga xoslikni tekshiradi. Mutlaq yo'llar ishlatilsa, APC bu tekshiruvni o'tkazib yuboradi va mutlaq yo'lni yagona fayl identifikatori sifatida ishlatadi.

Apc.write_lock mantiqiy

Og'ir yuklangan serverlarda, server ishga tushganda yoki bir vaqtning o'zida bir nechta fayllar o'zgartirilganda, APC bir vaqtning o'zida bir xil faylni bir necha marta kompilyatsiya qilishga va keshlashga urinishi mumkin. Yozishni blokirovkalash faqat bitta jarayon keshlanmagan faylni kompilyatsiya qilish va keshlashga harakat qilishini ta'minlaydi. Ushbu fayldan foydalanish kerak bo'lgan boshqa jarayonlar keshda paydo bo'lishini kutish o'rniga, uning keshlanmagan versiyasidan foydalanadi.

Apc.report_autofilter mantiqiy

Erta yoki kech ulanish muammolari tufayli keshlashdan chiqarib tashlangan har qanday skriptlarni qayd qiladi.

Apc.serializer ip

APC ga uchinchi tomon serializatoridan foydalanishni aytadi.

Apc.include_once_override mantiqiy

Qo'ng'iroqlarni optimallashtiradi bir marta kiriting Va bir marta talab qilish qimmat tizim qo'ng'iroqlarini oldini olish uchun.

Diqqat

Bu funksionallik EXPERIMENTAL. Ushbu direktivaning xatti-harakati, uning nomi va hujjatlari APC ning kelgusi versiyalarida ogohlantirilmasdan o'zgarishi mumkin. O'zingizning xavf-xataringiz ostida foydalaning.

Apc.rfc1867 mantiqiy

RFC1867 faylni yuklab olish jarayonini to'xtatuvchisi faqat PHP 5.2.0 yoki undan yuqori versiyalarida qurilgan bo'lsa, APC da mavjud. Agar ruxsat berilsa, serverga yuklangan har qanday fayl formada, fayl maydonidan oldin nomli maydonni o'z ichiga oladi APC_UPLOAD_PROGRESS, APC-ni avtomatik ravishda upload_ kabi maxsus kesh yozuvini yaratishga majbur qiladi kalit, Qayerda kalit maydon qiymati hisoblanadi APC_UPLOAD_PROGRESS.

Yashirin maydon ekanligini unutmang APC_UPLOAD_PROGRESS fayl bilan maydonga borish kerak, aks holda ish noto'g'ri bo'ladi.

Shuni esda tutingki, faylni yuklab olish kuzatuvi tarmoq uchun xavfsiz emas, shuning uchun agar birinchi yuklab olish paytida xuddi shu kalit bilan yangisi paydo bo'lsa, birinchisini kuzatish to'xtatiladi.

shu esta tutilsinki darajasi barcha joriy yuklashlar tugallangandan keyingina mavjud bo'ladi.

1-misol apc.rfc1867 dan foydalanishga misol

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

Ushbu misolni ishga tushirish natijasi shunday bo'ladi:

Massiv ( => 1142543 => 1142543 => 1828068.8 => test => fayl => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefiks ip

rfc1867 yuklab olish jarayonini kuzatish funksiyasi tomonidan yaratilgan foydalanuvchi kesh yozuvida foydalanish uchun kalit prefiksi.

Apc.rfc1867_name ip

APC yuklab olish jarayonini faollashtiradigan va foydalanuvchi kesh kaliti qo'shimchasini ko'rsatadigan yashirin shakl maydoni nomini belgilaydi.

Apc.rfc1867_freq ip

Faylni yuklab olish vaqtida foydalanuvchi keshidagi yozuvning yangilanish chastotasi. U foiz sifatida yoki o'lchamni baytda ko'rsatish orqali ko'rsatilishi mumkin. Agar xohlasangiz, qo'shimchalardan foydalanishingiz mumkin "k", "m" Va "g" Kilobaytlar, megabaytlar va gigabaytlar uchun (harf-kichik harf sezgir emas). Agar siz nolni belgilasangiz, yangilanishlar imkon qadar tezroq amalga oshiriladi, ammo bu yuklash vaqtini sekinlashtirishi mumkin.

Apc.rfc1867_ttl butun son

rfc1867 yozuvlari uchun TTL.

Apc.localcache mantiqiy

Bloklanmagan mahalliy jarayon soya keshini yoqadi, bu kesh yozish paytida blokirovka miqdorini kamaytiradi.

Apc.localcache.size butun son

Mahalliy jarayon soya keshining hajmi juda katta bo'lishi kerak, taxminan apc.num_files_hint ning yarmi.

Apc.coredump_unmap mantiqiy

APC ga SIGSEGV kabi signallarni tutib olish imkonini beradi, u chiqarilganda yadro dumpini yozadi. Ushbu signallar qabul qilinganda, APC uni yadroviy xotiraga kiritmaslik uchun barcha umumiy xotirani bo'shatishga harakat qiladi. Ushbu sozlama kritik signal qabul qilinganda va APC katta hajmdagi xotiradan foydalanishga sozlanganda tizim barqarorligini oshirishi mumkin.

Diqqat

Bu xususiyat potentsial xavflidir. Kritik signal qabul qilinganda umumiy xotira segmentlarini bo'shatish oldindan aytib bo'lmaydigan xatti-harakatlarga olib kelishi mumkin.

Izoh:

Garchi ba'zi yadrolar asosiy faylni yozishda ba'zi umumiy xotira segmentlarini e'tiborsiz qoldirish qobiliyatini ta'minlasa ham, bu ilovalar Apache skorbord kabi muhim xotira segmentlarini ham e'tiborsiz qoldirishi mumkin.

apc.stat_ctime butun son

Svn yoki rsync kabi dasturlardan kelib chiqadigan muammolarni oldini olish uchun ctime bo'yicha tekshiring va oxirgi marta statistika yig'ilgandan beri inode o'zgarmaganligiga ishonch hosil qiling. Odatda APC faqat mtimeni tekshiradi.

Apc.canonicalize bool

Agar o'chirilgan bo'lsa, nisbiy yo'llar no-stat rejimida kanonikga aylantiriladi. Agar yoqilgan bo'lsa, oqim o'rami orqali ulangan fayllar keshlanmaydi, chunki realpath() oqim o'ramlarini qo'llab-quvvatlamaydi.

Apc.preload_path ip

Ixtiyoriy. Ishga tushirish vaqtida keshlangan ma'lumotlarni yuklash uchun APC foydalanadigan yo'lni belgilaydi.

Apc.use_request_time bool

TTL uchun SAPI soʻrovining boshlanish vaqtidan foydalaning.

Apc.file_md5 bool

Fayllarning md5 xeshlarini yozing.

Apc.lazy_functions butun son

Funksiyalarni dangasa yuklashga imkon beradi.

Apc.lazy_classes butun son

Sinflarni dangasa yuklashga imkon beradi.

10 yil oldin

Yuqoridagi apc.rfc1867 misol kodi APC RFC1867 mavjud yoki bo'lmasligi mumkin bo'lgan muhitlarda ishlaydiganlar uchun biroz tez va erkindir. Bu biroz ifodaliroq:

// agar bizda PHP va APC bo'lsa
$havePHP = (1 === versiyani_qiyoslash (PHP_VERSION, "5.2.0" ) ? true : false );
$haveAPC = (kengaytma yuklangan ("apc" ) && 1 === versiyani_qiyoslash (phpversion ( "apc" ), "3.0.13" ) ? true : false );
agar ($havePHP && $haveAPC ) (
// agar APC va yuklashni kuzatish yoqilgan bo'lsa
agar (ini_get ("apc.enabled" ) && ini_get ("apc.rfc1867" )) (
// statistikani oling
$key = ini_get ("apc.rfc1867_prefix") . $_REQUEST["apcid"];
$stats = apc_fetch($key);
}
}