Конфигурација во време на извршување
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Конфигурација во време на извршување
Референца за `apcu.configuration.php` со подобрена типографија и навигација.
Конфигурација во време на извршување
Поведението на овие функции е под влијание на поставките во php.ini.
Иако стандардните поставки на APCu се добри за многу инсталации, сериозните корисници треба да ги прилагодат следните параметри.
Постои една одлука што треба да се донесе при конфигурирање на APCu. Колку меморија ќе биде распределена за APCu. Директивата ini што го контролира ова е apc.shm_size
Внимателно прочитајте ги деловите за ова подолу.
Откако серверот ќе биде стартуван, apc.php скриптата што е вклучена со екстензијата треба да се копира некаде во docroot и да се гледа со прелистувач бидејќи обезбедува детална анализа на внатрешните работења на APCu. Ако GD е овозможен во PHP, дури и ќе прикаже некои интересни графикони.
Ако APCu работи, Cache full count
бројот (лево) ќе го прикаже бројот на пати кога кешот достигнал максимален капацитет и морал да исфрли записи за да ослободи меморија. За време на исфрлање, ако apc.ttl беше специфицирано, APCu прво ќе се обиде да ги отстрани истечените записи, т.е. записи чиј TTL истекол, или записи што немаат поставен TTL и не биле пристапени во последните
apc.ttl секунди. Ако apc.ttl не беше поставен, или отстранувањето на истечените записи не ослободи доволно простор, APCu ќе го исчисти целиот кеш.
Бројот на исфрлања треба да биде минимален во добро конфигуриран кеш. Ако кешот постојано се полни, и оттука насилно се ослободува, резултирачкото вртење ќе има штетни ефекти врз перформансите на скриптата. Најлесниот начин да се минимизира овој број е да се распредели повеќе меморија за APCu.
Кога APCu е компајлиран со поддршка за mmap (Memory Mapping), ќе користи само еден мемориски сегмент, за разлика од кога APCu е изграден со поддршка за SHM (SysV Shared Memory) што користи повеќе мемориски сегменти. MMAP нема максимално ограничување како SHM во /proc/sys/kernel/shmmax. Општо земено, поддршката за MMAP е препорачана бидејќи ќе ја врати меморијата побрзо кога веб-серверот ќе се рестартира и севкупно го намалува влијанието на распределбата на меморијата при стартување.
| Име | Стандардно | Променливо | Дневник на промени |
|---|---|---|---|
| apc.enabled | 1 | INI_SYSTEM |
|
| apc.shm_segments | 1 | INI_SYSTEM |
|
| apc.shm_size | "32M" | INI_SYSTEM |
|
| apc.entries_hint | 512 * apc.shm_size | INI_SYSTEM |
Пред APcu 5.1.25, стандардното беше 4096 |
| apc.ttl | 0 | INI_SYSTEM |
|
| apc.gc_ttl | 3600 | INI_SYSTEM |
|
| apc.mmap_file_mask | NULL | INI_SYSTEM |
|
| apc.slam_defense | 0 | INI_SYSTEM |
|
| apc.enable_cli | 0 | INI_SYSTEM |
|
| apc.use_request_time | 0 | INI_ALL |
Пред APCu 5.1.19, стандардното беше 1. |
| apc.serializer | "php" | INI_SYSTEM |
Пред APCu 5.1.15, стандардното беше "default". |
| apc.coredump_unmap | 0 | INI_SYSTEM |
|
| apc.preload_path | NULL | INI_SYSTEM |
Еве кратко објаснување на директивите за конфигурација.
-
apc.enabledbool -
apc.enabledcan be set to 0 to disable APC. This is primarily useful when APC is statically compiled into PHP, since there is no other way to disable it (when compiled as a DSO, theextensionможе да се постави на 0 за да се оневозможи APC. Ова е главно корисно кога APC е статички компајлиран во PHP, бидејќи нема друг начин да се оневозможи (кога е компајлиран како DSO,php.iniлинија во -
apc.shm_segmentsint -
може само да се коментира).
apc.shm_sizeБројот на сегменти за споделена меморија што треба да се доделат за кешот на компајлерот. Ако APC снемува споделена меморија, но -
apc.shm_sizestring - е поставен на највисокото што системот го дозволува, зголемувањето на оваа вредност може да спречи APC да ја исцрпи својата меморија. овој ЧППГолемината на секој сегмент за споделена меморија даден со кратка нотација како што е опишано во
-
apc.entries_hintint - . Стандардно, некои системи (вклучувајќи ги повеќето BSD варијанти) имаат многу ниски ограничувања за големината на сегмент за споделена меморија.
-
apc.ttlint -
"Насока" за бројот на различни променливи што може да се складираат. Поставете на нула или изоставете ако не сте сигурни.
apc.ttlСметајте ги кеш записите без експлицитен TTL како истечени ако не биле пристапени во овие многу секунди. Ефективно, ова им овозможува на таквите записи да бидат отстранети оппортунистички при вметнување во кешот, или пред целосно бришење. Имајте предвид дека бидејќи отстранувањето е оппортунистичко, записите сè уште може да се читаат дури и ако се постари од -
apc.gc_ttlint -
секунди. Ова поставување нема ефект врз кеш записите за кои е специфициран експлицитен TTL.
0Бројот на секунди што записот во кешот може да остане на списокот за собирање ѓубре откако ќе биде отстранет или поништен. Записите се подобни за отстранување ако нивниот број на референци е нула, или го надминуваат овој временски лимит. Ако е поставено на -
apc.mmap_file_maskstring -
, чистењето базирано на време е оневозможено, а записите се отстрануваат само кога нивниот број на референци ќе падне на нула.
--enable-mmapАко е компајлиран со поддршка за MMAP со користење/tmp/apc.XXXXXXова е file_mask во стилот на mktemp што треба да се предаде на модулот mmap за да се утврди дали вашиот mmap-иран мемориски регион ќе биде поддржан од датотека или споделена меморија. За директно mmap поддржан од датотека, поставете го на нешто какоX(точно 6.shms). За да користите POSIX-стил shm_open/mmap ставете/apc.shm.XXXXXXнекаде во вашата маска. на пр./dev/zeroМожете исто така да го поставите на/dev/zeroза да го користите вашиот кернел -
apc.slam_defensebool -
On very busy servers whenever you start the server or modify files you can create a race of many processes all trying to cache the same file at the same time. Setting
apc.slam_defenseto1На многу зафатени сервери, кога ќе го стартувате серверот или ќе ги менувате датотеките, може да создадете трка од многу процеси кои истовремено се обидуваат да кешираат иста датотека. Поставувањето -
apc.enable_cliint - може да помогне да се спречи повеќе процеси истовремено да кешираат иста датотека со воведување механизам за веројатност. Ако истиот клуч се обиде да се кешира во краток временски период од различни процеси, кеширањето за тековниот процес се прескокнува за да се ублажат потенцијалните удари на кешот.
-
apc.serializerstring - Главно за тестирање и отстранување грешки. Поставувањето на ова го овозможува APC за CLI верзијата на PHP. Во нормални околности, не е идеално да се создава, пополнува и уништува APC кешот при секое CLI барање, но за разни тест сценарија е корисно да се овозможи APC за CLI верзијата на PHP лесно.
-
apc.coredump_unmapbool -
Се користи за конфигурирање на APC да користи серијализатор од трета страна.
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава
Овозможува APC ракување со сигнали, како што е SIGSEGV, што запишуваат core датотеки кога се сигнализираат. Кога ќе се примат овие сигнали, APC ќе се обиде да го отстрани сегментот на споделена меморија за да го исклучи од core датотеката. Ова поставување може да ја подобри стабилноста на системот кога се примаат фатални сигнали и е конфигуриран голем сегмент на споделена меморија на APC.
Забелешка: Оваа функција е потенцијално опасна. Отстранувањето на сегментот на споделена меморија во ракувач со фатални сигнали може да предизвика недефинирано однесување ако се случи фатална грешка.
-
apc.preload_pathstring - Иако некои јадра може да обезбедат можност за игнорирање на разни типови споделена меморија при генерирање на core датотека, овие имплементации може да ги игнорираат и важни сегменти на споделена меморија како што е таблата со резултати на Apache.
-
apc.use_request_timebool - Користете го SAPI Опционално, поставете патека до директориумот каде APC ќе ги вчитува податоците од кешот при стартување. TTL.