Apc кэш. PHP дахь APC: APC-ийн тухай ойлголт, суурилуулалт, хэрэглээ. Magento дээр APC дэмжлэгийг идэвхжүүлнэ үү


APCгэсэн үгийн товчлол юм Альтернатив PHP кэш. Орос хэл дээрх текст нь өөр PHP кэшер юм. Энэ нь юунд ашиглагддаг вэ? XCache болон eAccelerator зэрэг бусад алдартай кэшерүүдийн нэгэн адил энэ нь PHP скриптүүдийн хурдыг нэмэгдүүлэхэд ашиглагддаг. Хэрэв та өөрийн сервертэй бөгөөд PHP скриптүүдийн гүйцэтгэлд санаа зовж байгаа бол APC нь таны асуудлыг шийдэх шийдэл байж магадгүй юм. Өнөөдрийн өгүүллээр бид APC-ийн талаар илүү ихийг мэдэж авах, хэрхэн суулгах, шалгах, PHP скрипт бичихдээ APC кэшийг ашиглах талаар сурах болно.

APC хурдасгуур гэж юу вэ?

ХурдасгуурAPC(Алтернатив PHP кэш) нь PHP-д зориулсан үнэгүй бөгөөд нээлттэй opcode кэшер юм. Энэ нь үнэгүй, нээлттэй, тогтвортой кэш, оновчлолын хүрээ байхаар бүтээгдсэн эх код PHP. APC нь хөгжлийн шатандаа явж байна. Одоогоор PHP 4, PHP 5, түүний дотор 5.3-ийг дэмждэг. Энэ нь стандарт PHP үндсэн хувилбар 6-д багтсан байх магадлалтай.
Ажлын хурд хэрхэн хүрэх вэ?PHP?
Таны сайтыг ачаалахад саатал гарах үед асуулт гарч ирдэг - Яагаад? Үнэн хэрэгтээ PHP скрипт рүү стандарт дуудлага хийх үед үүнийг дахин хөрвүүлдэг. Өөрөөр хэлбэл, ижил ажил хэд хэдэн удаа хийгддэг. Хэрэв энэ нь жижиг төсөл юм бол удаашрал нь бага зэрэг, бүр харагдахгүй байж болно. Гэхдээ хэрэв танд том төсөл (вэб сайт) байгаа бол сайтад html шахалт болон css шахалтын хувьд сайн оновчлогдсон хэдий ч нэвтрэх үед хуудсыг ачаалахад саатал гарч байгааг та анзаарсан. Тодорхой болгохын тулд PHP хурдасгуур ашиглахгүйгээр стандарт хүсэлт хэрхэн биелдэгийг харцгаая.

Үүний зэрэгцээ цаазаар авах ажиллагаа явагдаж байна кодын эмхэтгэлхүсэлт бүр дээр. Энэ нь хүсэлтийг боловсруулахад маш их цаг зарцуулдаг тул удаашруулдаг. Үүнийг тойрон гарахын тулд APC нь төлөөлөгч болох хурдасгууруудыг зохион бүтээсэн. Тэд хөрвүүлсэн кодыг дискэн дээр хадгалдаг бөгөөд тэдгээрт хандах үед үр дүнг хэвлэдэг. Энэ нь хурдыг нэмэгдүүлдэг PHP ажил. APC нь файлд тохируулагдсан хоёр горимд ажиллах боломжтой /etc/php.d/apc.ini, хувьсагч apc.stat. Хувьсагч нь 1 ба 0 утгыг авч болно (apc.stat=0 эсвэл apc.stat=1). Apc.stat=1 горимыг ашиглах үед скриптүүд файлын өөрчлөлтийг шалгахдаа арай удаан ажилладаг боловч кодыг өөрчлөх үед асуудал гарахаас зайлсхийдэг ч үр дүнгийн гаралт нь хэвээр үлдэнэ. Тиймээс хувьсагчийн утгыг 1 болгохыг танд зөвлөж байна.
APC хурдасгуурыг суулгасны дараа хүсэлтийг гүйцэтгэх схем дараах байдалтай байна.

APC хурдасгуурыг суулгаж байна

Орон сууцанд орсноос хойш шинэчлэгдсэн хувилбаруудмаш хожуу нэмсэн. Тиймээс бид PECL-ээр дамжуулан APC суулгана:

Sudo apt-get remove --purge php-apc sudo apt-get суулгах libpcre3-dev sudo pecl apc суулгах
Суулгах явцад бид дараах тохиргоог (YMMV) тохируулсан.
APC-д дотоод дибаг хийхийг идэвхжүүлэх : дэмжлэг байхгүй APC кэшээс ашигласан файлын талаарх мэдээллийг хүсэлт бүрт идэвхжүүлэх : үгүй ​​Эргүүлэх түгжээг идэвхжүүлэх (ТУРШИЛТЫН) : үгүй ​​Санах ойн хамгаалалтыг идэвхжүүлэх (ТУРШИЛТЫН) : үгүй ​​Pthread мутексуудыг идэвхжүүлэх (өгөгдмөл) : тийм pthread уншихыг идэвхжүүлэх / бичих түгжээ (ТУРШИЛТЫН) : үгүй Одоо та тохиргоонд APC-г идэвхжүүлэх хэрэгтэй, учир нь... энэ нь автоматаар хийгддэггүй. Үүний тулд бид бүтээдэг apc.ini файлыг тохирох директорт байрлуулна уу: sudo vim /etc/php5/conf.d/apc.ini Дараах тохиргоог энэ файлд бичнэ үү (Magento-тэй ажиллахыг зөвлөж байна) өргөтгөл=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 дээр APC дэмжлэгийг идэвхжүүлнэ үү

Magento тохиргооны файлыг нээнэ үү: vi app/etc/local.xml Дараах кодыг глобал хэсэгт нэмнэ үү.


apc файл 0 1 MAGE_ эсвэл apc мэдээллийн сан 0 1 MAGE_


"Угтвар" гэсэн шошгоны хооронд хаана байна Товч тодорхойлолтИнгэснээр нэг Magento дээр баригдсан хэд хэдэн дэлгүүрийг кэш болгохын тулд APC ашиглах боломжтой.

APC-ийн ажиллагааг хэрхэн шалгах вэ?

Юуны өмнө та Magento PHP скриптүүд илүү хурдан ажиллаж байгааг анзаарах хэрэгтэй. Ашиглах Firebug болон түүнд зориулсан залгаас, жишээ нь YSlow, сайтын хурдыг үнэлэх. Та Firefox-д зориулсан Firebug өргөтгөлийг эндээс татаж авах боломжтой. Үүнээс гадна, та apc.php файлыг APC түгээлтийн хавтсаас хавтас руу хуулж ашиглаж болно таны төслийн олон нийтэд: sudo cp /usr/share/php/apc.php /таны олон нийтэд хүрэх зам Одоо та энэ файлыг хөтөч дээрээ нээж болно: http://yourhost.local/apc.php 2015 оны дөрөвдүгээр сарын 9-ний 12:12 цаг 1,889 удаа үзсэн | сэтгэгдэл байхгүй

APC гэж юу вэ?

APC нь таны вэбсайтыг хурдасгах боломжийг олгодог PHP кодын кэшийн систем юм. PHP нь серверийн динамик скрипт хэл бөгөөд хуудас хүсэх болгонд задлан шинжилж, эмхэтгэж, сервер дээр ажиллуулж байх ёстой. Гэсэн хэдий ч ихэнх тохиолдолд хүсэлтүүд давтагддаг тул үүлэн сервер тус бүрийг дахин боловсруулах шаардлагатай болдог.

Энэ тохиолдолд APC буюу Alternative PHP Cache нь аврах ажилд ирдэг. Энэ хэрэгсэл нь PHP кодыг үйлдлийн санах ойд хадгалж, шаардлагатай үед буцааж авдаг. Үндсэндээ энэ нь кодын боловсруулалт, эмхэтгэлийг алгасаж, сервер дээрх ачааллыг багасгадаг.

Энэхүү гарын авлага нь APC-ийн суурилуулалт, тохиргоог харуулах болно.

Анхаарна уу: Зааврыг дуусгахын тулд та эхлээд root эрхтэй байх ёстой, түүнчлэн .

APC суулгаж байна

APC кэшийг суулгахын өмнө та түүний зарим хамаарлыг суулгах хэрэгтэй. Үүнийг хийхийн тулд дараах тушаалыг ашиглана уу.

sudo apt-get суулгах php-pear php5-dev хийх libpcre3-dev

Дараа нь pecl командыг ашиглан APC суулгаж болно:

sudo pecl суулгах apc

Суулгацыг дуусгахын тулд та php.ini файлыг засах хэрэгтэй:

төгсгөлд дараах мөрийг нэмж оруулав.

өргөтгөл=apc.so

Файлыг хадгалж, хаагаад Apache-г дахин эхлүүлнэ үү:

sudo үйлчилгээг apache2 дахин эхлүүлнэ

APC идэвхжсэн эсэхийг мэдэхийн тулд PHP мэдээллийн хуудсыг нээнэ үү. Хэрэв байхгүй бол /var/www хавтсанд хоосон php файл үүсгэнэ үү.

nano /var/www/info.php

Мөн энэ кодыг түүнд нэмнэ үү:

phpinfo();
?>

Файлыг хадгалж, хаагаад дараа нь хөтчөө нээнэ үү. Одоогийн талаарх бүх мэдээлэл PHP суулгац. Хэрэв APC идэвхжсэн бол хуудас нь үүнийг зааж өгнө. Ерөнхийдөө энэ файл нь нууц мэдээлэлд нэвтрэх боломжийг олгодог тул үүнийг орхихыг зөвлөдөггүй зөвшөөрөлгүй хэрэглэгчдэд. Шалгасны дараа устгана уу.

APC тохируулж байна

Суулгасны дараа APC кэш нь анхдагч тохиргооноос эхэлдэг. Түүний тохиргоо нь маш хоёртой чухал тохиргоо. Тиймээс php.ini файлыг нээнэ үү:

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

APC-г агуулсан өмнө нь нэмсэн мөрийн доор дараах мөрийг нэмнэ үү.

apc.shm_size = 64

Энэ нь 64MB хуваарилах болно санамсаргүй хандалт санах ой APC кэш хийх зориулалттай. Виртуал хувийн серверийн шаардлага эсвэл хязгаарлалтаас хамааран энэ утга өөр өөр байж болно.

Доор та өөр нэг мөр нэмэх хэрэгтэй:

apc.stat тохиргоо нь өөрчлөлтийг шалгах хүсэлт бүрт скриптийг шалгадаг. Хэрэв энэ нь өөрчлөгдсөн бол түүнийг дахин хөрвүүлж, кэш хийх болно шинэ хувилбар. Энэ бол стандарт APC-ийн үйлдэл юм. Энэ мөрөнд 0-ийн утга нь APC-д скриптийг өөрчлөлтийг шалгахгүй байхыг хэлнэ. Энэ нь гүйцэтгэлийг сайжруулдаг боловч сул тал бий: хэрэв PHP скриптөөрчлөлт гарсан тул үүлэн серверийг дахин эхлүүлэх хүртэл тэдгээр нь хийгдэхгүй. Тиймээс зөвхөн үйлдвэрлэж буй сайтуудад утгыг 0 болгохыг зөвлөж байна.

Одоо APC кэш суулгаж ажиллаж байгаа тул та түүний төлөв байдал, гүйцэтгэлийг шалгах боломжтой. /usr/share/php/ хавтсаас apc.php файлыг олоод хөтчөөс хандах боломжтой хавтас руу зөөнө үү - жишээлбэл, www.

Эдгээр функцүүдийн үйлдэл нь php.ini дээрх тохиргооноос хамаарна.

Хэдийгээр өгөгдмөл APC тохиргоо нь ихэнх суулгацуудад тохиромжтой боловч зарим програмууд илүү нарийн тохируулах шаардлагатай байж болно.

APC-ийг тохируулахдаа анхаарах хоёр үндсэн зүйл байдаг. Эхнийх нь APC-д хэр хэмжээний санах ойтой болгох, хоёр дахь нь APC хүсэлт бүр дээр файл өөрчлөгдсөн эсэхийг шалгах эсэх. Эдгээр тохиргоог параметрүүдээр удирддаг apc.shm_sizeТэгээд apc.stat, тус тус. Эдгээр параметрүүдийг тохируулахтай холбоотой хэсгүүдийг анхааралтай уншина уу.

Серверийг ажиллуулсны дараа скрипт apc.php, энэ өргөтгөлийн хамт нийлүүлсэн, "docroot"-д хуулж, түүний эрх нь хөтөчөөр дамжуулан эхлүүлэхийг зөвшөөрөх ёстой. Энэ скрипт нь APC хэрхэн ажилладаг талаар дэлгэрэнгүй мэдээллийг өгдөг. Хэрэв PHP дээр GD-г идэвхжүүлсэн бол энэ скрипт нь бас хэрэгтэй графикуудыг харуулах болно. Мэдээжийн хэрэг, хамгийн эхний зүйл бол APC ямар нэгэн зүйлийг кэшлэх эсэх нь сонирхолтой байх болно. Хэрэв APC ажиллаж байгаа бол утга Кэш бүрэн тоо(зүүн талд) кэш хэдэн удаа бүрэн дүүрч, хамгийн сүүлд хандаагүй оруулгуудыг хүчээр устгахаас өөр аргагүйд хүрсэнийг харуулах болно. apc.ttlсекунд Энэ тоо бага байх тусам кэшийг илүү сайн тохируулна. Хэрэв энэ тоо байнга нэмэгдэж байгаа бол APC нь хуучин оруулгуудыг байнга цэвэрлэж байх ёстой бөгөөд кэш хийх бүх цэг алдагдана. Ихэнх Хамгийн зөв замЭнэ тоог багасгах нь APC-д санах ой нэмнэ гэсэн үг юм. Хэрэв үүнийг хийх боломжгүй бол та дахин тохируулах хэрэгтэй apc.filtersкэштэй скриптүүдийн багцыг хязгаарлах.

Хэрэв APC нь mmap (Memory Mapping) дэмжлэгтэйгээр бүтээгдсэн бол энэ нь зөвхөн нэг санах ойн сегментийг ашиглах боловч эсрэгээр APC нь SHM (SysV Shared Memory) дэмжлэгтэйгээр бүтээгдсэн бол хэд хэдэн сегментийг ашиглах болно. MMAP нь хязгаарлагдмал SHM-ээс ялгаатай нь дээд хязгааргүй /proc/sys/kernel/shmmax. Вэб серверийг дахин эхлүүлэх үед санах ойг илүү хурдан хуваарилдаг тул сервер эхлүүлэх хурдад нөлөөлдөг тул MMAP ашиглахыг зөвлөж байна.

APC тохиргооны параметрүүд
Нэр Өгөгдмөл Өөрчлөлтийн байршил Өөрчлөлтүүдийн жагсаалт
apc.enabled "1" PHP_INI_SYSTEM APC дээрх PHP_INI_SYSTEM 2. APC дээрх PHP_INI_ALL<= 3.0.12.
apc.shm_segments "1" PHP_INI_SYSTEM
apc.shm_size "32 сая" PHP_INI_SYSTEM
apc.shm_strings_buffer "4 сая" PHP_INI_SYSTEM APC 3.1.4 дээр ашиглах боломжтой.
apc.optimization "0" PHP_INI_БҮГД APC 2 дахь PHP_INI_SYSTEM. APC 3.0.13 дээр устгагдсан.
apc.num_files_санавар "1000" PHP_INI_SYSTEM
apc.user_entries_hint "4096" PHP_INI_SYSTEM APC 3.0.0 дээр ашиглах боломжтой.
apc.ttl "0" PHP_INI_SYSTEM APC 3.0.0 дээр ашиглах боломжтой.
apc.user_ttl "0" PHP_INI_SYSTEM APC 3.0.0 дээр ашиглах боломжтой.
apc.gc_ttl "3600" PHP_INI_SYSTEM
apc.cache_by_default "1" PHP_INI_БҮГД APC дахь PHP_INI_SYSTEM<= 3.0.12. Доступно с APC 3.0.0.
apc.filters NULL PHP_INI_SYSTEM
apc.mmap_file_mask NULL PHP_INI_SYSTEM
apc.slam_defense "1" PHP_INI_SYSTEM APC 3.0.0 дээр ашиглах боломжтой. APC 3.1.4-ээс өмнө өгөгдмөл утга "0" (идэвхгүй).
apc.file_update_protection "2" PHP_INI_SYSTEM APC 3.0.6 дээр ашиглах боломжтой.
apc.enable_cli "0" PHP_INI_SYSTEM APC 3.0.7 дээр ашиглах боломжтой.
apc.max_file_size "1 сая" PHP_INI_SYSTEM APC 3.0.7 дээр ашиглах боломжтой.
apc.хүсэлтийн_цаг "1" PHP_INI_БҮГД APC 3.1.3 дээр ашиглах боломжтой.
apc.stat "1" PHP_INI_SYSTEM APC 3.0.10 дээр ашиглах боломжтой.
apc.write_lock "1" PHP_INI_SYSTEM APC 3.0.11 дээр ашиглах боломжтой.
apc.report_autofilter "0" PHP_INI_SYSTEM APC 3.0.11 дээр ашиглах боломжтой.
apc.serializer "өгөгдмөл" PHP_INI_SYSTEM APC 3.1.0 дээр ашиглах боломжтой.
apc.include_once_override "0" PHP_INI_SYSTEM APC 3.0.12 дээр ашиглах боломжтой.
apc.rfc1867 "0" PHP_INI_SYSTEM APC 3.0.13 дээр ашиглах боломжтой.
apc.rfc1867_утгалт "байршуулах_" PHP_INI_SYSTEM
apc.rfc1867_нэр "APC_UPLOAD_PROGRESS" PHP_INI_SYSTEM
apc.rfc1867_freq "0" PHP_INI_SYSTEM
apc.rfc1867_ttl "3600" PHP_INI_SYSTEM APC 3.1.1 дээр ашиглах боломжтой.
apc.localcache "0" PHP_INI_SYSTEM
apc.localcache.size "512" PHP_INI_SYSTEM APC 3.0.14 - 3.1.11 хувилбарт ашиглах боломжтой.
apc.coredump_unmap "0" PHP_INI_SYSTEM APC 3.0.16 дээр ашиглах боломжтой.
apc.stat_ctime "0" PHP_INI_SYSTEM APC 3.0.13 дээр ашиглах боломжтой.
apc.preload_path NULL PHP_INI_SYSTEM APC 3.1.1 дээр ашиглах боломжтой.
apc.file_md5 "0" PHP_INI_SYSTEM APC 3.1.1 дээр ашиглах боломжтой.
apc.canonicalize "1" PHP_INI_SYSTEM APC 3.1.1 дээр ашиглах боломжтой.
apc.lazy_functions 0 PHP_INI_SYSTEM APC 3.1.3 дээр ашиглах боломжтой.
apc.lazy_classes 0 PHP_INI_SYSTEM APC 3.1.3 дээр ашиглах боломжтой.
PHP_INI_* тогтмолуудын дэлгэрэнгүй тайлбарыг Тохиргооны сонголтуудыг тохируулж болох хэсгээс үзнэ үү.

Тохиргооны удирдамжийн товч тайлбар.

Хэрэв та суулгавал apc.enabled 0-д тохируулсан бол APC идэвхжихгүй. Энэ нь PHP-д APC-г статик байдлаар идэвхжүүлсэн үед хэрэглэхэд хэрэгтэй бөгөөд түүний хэрэглээг идэвхгүй болгох өөр сонголт байхгүй. Хэрэв APC DSO хэлбэрээр бүтээгдсэн бол та зүгээр л мөрийг тайлбарлаж болно өргөтгөлВ php.ini.

Apc.shm_segments бүхэл тоо

Кэшэнд хуваарилагдсан хуваалцсан санах ойн сегментүүдийн тоо. Хэрэв APC бүх боломжтой хуваалцсан санах ойг ашигласан бол apc.shm_sizeСистемийн зөвшөөрөгдсөн хэмжээгээр энэ параметрийг нэмэгдүүлэх нь тусалж магадгүй юм.

Apc.shm_size мөр

Богино тэмдэглэгээнд заасан хуваалцсан санах ойн сегментийн хэмжээ (энэ FAQ-ыг үзнэ үү). Анхдагч байдлаар, зарим системүүд (ихэнх BSD хувилбаруудыг оруулаад) энэ утгыг маш бага утгаар хязгаарладаг.

Apc.shm_strings_buffer мөр

Дотоод APC процессуудад ашигладаг хуваалцсан стринг кэшэд хуваарилсан санах ойн хэмжээ. Хэмжээ нь мегабайт ба гигабайтыг тус тус зааж өгөхийн тулд M эсвэл G дагавараар дуусгавар болох ёстой. Энэ сонголтыг ашигласнаар PHP-FPM-ийн ажилчны процессуудын санах ойн хэмжээг бууруулж болно, учир нь ижил мөрүүд санах ойд зөвхөн нэг удаа хадгалагдах бөгөөд бүх ажилчны процессууд үүнийг ашиглах боломжтой.

Apc. Optimization бүхэл тоо

Оновчлолын түвшин. Тэг нь оновчлолыг идэвхгүй болгодог. Энэ утга өндөр байх тусам илүү түрэмгий оновчлолыг ашиглах болно. Хурд их хэмжээгээр нэмэгдэнэ гэж найдаж болохгүй. Энэ бол туршилтын функц юм.

Apc.num_files_санамж бүхэл тоо

Таны сайтад ашиглагдаж буй өвөрмөц файлуудын тооны талаархи зөвлөмж. Үүнийг тэг болгож тохируулна уу эсвэл итгэлгүй байгаа бол огт зааж өгөхгүй. Энэ тохиргоо нь олон мянган файлтай үед хэрэг болно.

Apc.user_entries_сануулга бүхэл тоо apc.file_update_protection бүхэл тоо

Файл хурдан өөрчлөгдөхөд энэ нь атомын хэлбэрээр явагдах ёстой. Өөрөөр хэлбэл, эхлээд түр зуурын файл руу бичиж, дараа нь зөөх ёстой ( mv) түүний зорилтот байрлалд. Олон текст засварлагч cp, давирхайбусад хүмүүс үүнийг хийдэггүй. Энэ нь файлыг бичиж байх үед хүсэлт гаргахад (мөн кэшд) хүргэж болзошгүй. Тохиргоо apc.file_update_protectionцоо шинэ файлуудын кэшийн саатлыг тохируулна. Өгөгдмөл нь 2 секунд. Энэ нь хэрэв файлын өөрчлөлтийн цагийн тэмдэг ( цаг) хэрэв файлыг өөрчилснөөс хойш 2 секундээс бага хугацаа өнгөрсөн бол түүнийг кэшлэхгүй гэж хэлдэг. Хагас хадгалсан файл руугаа нэвтрэхийг оролдсон азгүй хүн хачин жигтэй зан авирыг мэдрэх болно, гэхдээ ядаж энэ нь удаан үргэлжлэхгүй. гэх мэт аргуудыг ашиглан бүх вэб серверийн файлуудыг атомаар шинэчилсэн бол rsync(энэ нь зөв шинэчлэгддэг), дараа нь энэ параметрийг тэг болгож энэ үйлдлийг идэвхгүй болгож болно. Хэрэв систем оролт/гаралтын ачаалал ихтэй бол зарим шинэчлэлтүүд хоёр секундээс илүү хугацаа шаардагдах бөгөөд энэ тохиргоог зохих хэмжээгээр нэмэгдүүлэх шаардлагатай.

Apc.enable_cli бүхэл тоо

Туршилт болон дибаг хийх талаар дэлгэрэнгүй. Энэ тохиргоо нь PHP-ийн CLI хувилбарт зориулсан APC-г зөвшөөрдөг. Ердийн ажлын үед консол дээр скрипт ажиллуулах бүрт кэш үүсгэх, дүүргэх, устгах APC ажиллуулах нь хамгийн сайн санаа биш байх болно. Гэхдээ туршилт, дибаг хийх зорилгоор та CLI-д зориулсан APC-г хялбархан идэвхжүүлж болно.

Apc.max_file_size бүхэл тоо

Энэ тохиргоонд заасан хэмжээнээс том файлуудыг кэшлэхгүй. Өгөгдмөл нь 1 сая.

Apc.stat бүхэл тоо

Энэ тохиргоог өөрчлөхдөө болгоомжтой байгаарай. Энэ нь анхдагчаар идэвхжсэн бөгөөд APC нь хүсэлт болгонд скрипт файлуудыг өөрчилсөн эсэхийг шалгахад хүргэдэг. Хэрэв тэдгээрийг өөрчилсөн бол тэдгээрийг дахин хөрвүүлж, кэш хийх болно. Хэрэв та энэ тохиргоог идэвхгүй болговол APC ийм шалгалт хийхгүй бөгөөд хэрэв файлыг аль хэдийн кэш хийж, дараа нь өөрчилсөн бол шинэ хувилбар нь кэш рүү орохгүй. Дахин санах ойд вэб серверийг дахин эхлүүлэх шаардлагатай болно. FastCGI-г ашиглахаар тохируулсан вэб серверүүд дахин эхлүүлэх үед кэшийг цэвэрлэхгүй байж болзошгүйг анхаарна уу. Файлын өөрчлөлт маш ховор тохиолддог үйлдвэрлэлийн орчинд энэ сонголтыг идэвхгүй болгох нь гүйцэтгэлийг мэдэгдэхүйц сайжруулдаг.

Оруулсан/шаардлагатай файлаар ачаалагдсан файлуудын хувьд энэ сонголт маш сайн ажилладаг боловч хэрэв та харьцангуй замд (Unix дээр, /-ээр эхлээгүй ямар ч зам) файлыг оруулбал APC өвөрмөц байдлыг шалгах болно гэдгийг санаарай. Хэрэв үнэмлэхүй замыг ашигласан бол APC энэ шалгалтыг алгасаад үнэмлэхүй замыг файлын өвөрмөц танигч болгон ашиглана.

Apc.write_lock логик

Ачаалал ихтэй серверүүд дээр сервер ажиллаж эхлэх эсвэл олон файл зэрэг өөрчлөгдсөн тохиолдолд APC нэг файлыг нэгэн зэрэг олон удаа хөрвүүлж, кэш хийхийг оролдож болно. Бичих түгжээ нь зөвхөн нэг процесс нь кэшгүй файлыг хөрвүүлэх, кэш хийхийг оролдох болно. Энэ файлыг ашиглах шаардлагатай бусад процессууд нь кэшэд гарч ирэхийг хүлээхийн оронд түүний кэшгүй хувилбарыг ашиглах болно.

Apc.report_autofilter логик

Эрт эсвэл хожуу холболтын асуудлаас болж кэшээс хасагдсан скриптүүдийг бүртгэдэг.

Apc.serializer мөр

APC-д гуравдагч талын цуваажуулагч ашиглахыг хэлдэг.

Apc.include_once_override логик

Дуудлагыг оновчтой болгодог нэг удаа оруулахТэгээд нэг удаа шаардахүнэтэй системийн дуудлагаас сэргийлэхийн тулд.

Анхаар

Энэ функц нь ТУРШИЛТЫН. Энэхүү удирдамжийн зан байдал, түүний нэр, баримт бичиг нь APC-ийн ирээдүйн хувилбаруудад мэдэгдэлгүйгээр өөрчлөгдөж болно. Үүнийг эрсдэлд оруулаарай.

Apc.rfc1867 логик

RFC1867 файл татаж авах явцыг таслан зогсоох хэрэгсэл нь зөвхөн PHP 5.2.0 буюу түүнээс дээш хувилбараар бүтээгдсэн тохиолдолд APC дээр ашиглах боломжтой. Зөвшөөрөгдсөн бол файлын талбарын өмнө нэр бүхий талбар бүхий маягтыг агуулсан серверт байршуулсан аливаа файл APC_UPLOAD_PROGRESS, APC-ийг upload_ гэх мэт тусгай кэшийн оруулгыг автоматаар үүсгэхийг албадах болно. түлхүүр, Хаана түлхүүрталбарын утга юм APC_UPLOAD_PROGRESS.

Далд талбар гэдгийг санаарай APC_UPLOAD_PROGRESSфайлтай талбарт очих ёстой, эс тэгвээс ажил буруу болно.

Файл татаж авах хянах нь хэлхээнд аюулгүй биш гэдгийг анхаарна уу, тиймээс хэрэв эхний татаж авах үед ижил түлхүүртэй шинийг татаж авбал эхнийхийг хянах нь зогсох болно.

тэрийг тэмдэглэ ханшОдоогийн бүх таталт дууссаны дараа л боломжтой болно.

Жишээ №1 apc.rfc1867 ашиглах жишээ

хэвлэх_r (apc_fetch ("байршуулах_ $_POST [ APC_UPLOAD_PROGRESS ] " ));
?>

Энэ жишээг ажиллуулсны үр дүн дараах байдалтай байх болно.

Массив ( => 1142543 => 1142543 => 1828068.8 => тест => файл => /tmp/php8F => 0 => 1)

Apc.rfc1867_утгалт мөр

rfc1867 татаж авах явцыг хянах функцээр үүсгэсэн хэрэглэгчийн кэшийн оруулгад ашиглах түлхүүр угтвар.

Apc.rfc1867_нэр мөр

APC татаж авах процессыг идэвхжүүлж, хэрэглэгчийн кэш түлхүүрийн дагаварыг зааж өгөх далд хэлбэрийн талбарын нэрийг зааж өгнө.

Apc.rfc1867_freq мөр

Файл татаж авах явцад хэрэглэгчийн кэшийн оруулгыг шинэчлэх давтамж. Үүнийг хувиар эсвэл хэмжээг байтаар зааж өгч болно. Хэрэв хүсвэл дагаварыг ашиглаж болно "к", "м"Тэгээд "g"килобайт, мегабайт, гигабайтын хувьд (үсгийн том үсгийн мэдрэмжгүй). Хэрэв та тэгийг зааж өгвөл шинэчлэлтүүд аль болох хурдан хийгдэх боловч энэ нь ачаалах хугацааг удаашруулж болзошгүй юм.

Apc.rfc1867_ttl бүхэл тоо

rfc1867 бичлэгийн TTL.

Apc.localcache логик

Блоклохгүй локал процессийн сүүдрийн кэшийг идэвхжүүлдэг бөгөөд энэ нь кэш бичих үед блоклох хэмжээг бууруулдаг.

Apc.localcache.size бүхэл тоо

Орон нутгийн процессын сүүдрийн кэшийн хэмжээ нь apc.num_files_hint-ийн тал орчим нь нэлээд том байх ёстой.

Apc.coredump_unmap логик

SIGSEGV гэх мэт дохиог таслах APC-г идэвхжүүлдэг бөгөөд энэ нь гарах үед coredump бичдэг. Эдгээр дохиог хүлээн авах үед APC нь бүх хуваалцсан санах ойг суллахыг оролдох бөгөөд ингэснээр үүнийг cordump-д оруулахгүй байх болно. Энэ тохиргоо нь чухал дохиог хүлээн авч, APC нь их хэмжээний санах ой ашиглахаар тохируулагдсан үед системийн тогтвортой байдлыг нэмэгдүүлэх боломжтой.

Анхаар

Энэ онцлог нь аюултай байж болзошгүй. Чухал дохио хүлээн авах үед хуваалцсан санах ойн сегментүүдийг чөлөөлөх нь урьдчилан тааварлах боломжгүй үйлдэлд хүргэж болзошгүй.

Сэтгэгдэл:

Хэдийгээр зарим цөм нь үндсэн файлыг бичихдээ хуваалцсан санах ойн зарим хэсгийг үл тоомсорлох боломжийг олгодог боловч эдгээр хэрэгжүүлэлт нь Apache онооны самбар зэрэг чухал санах ойн сегментүүдийг үл тоомсорлож болно.

apc.stat_ctime бүхэл тоо

svn эсвэл rsync зэрэг программуудаас үүдэлтэй асуудлуудаас зайлсхийхийн тулд ctime-аар шалгана уу, хамгийн сүүлд статистик мэдээлэл цуглуулснаас хойш inode өөрчлөгдөөгүй эсэхийг шалгаарай. Ерөнхийдөө APC зөвхөн mtime-г шалгадаг.

Apc.canonicalize боол

Хэрэв идэвхгүй болсон бол статистикгүй горимд харьцангуй замуудыг каноник руу хөрвүүлнэ. Идэвхжүүлсэн тохиолдолд дамжуулагчаар холбогдсон файлуудыг кэшлэхгүй бодит зам()урсгалын хальсыг дэмждэггүй.

Apc.preload_path мөр

Нэмэлт. APC нь эхлүүлэх үед кэшэд хадгалагдсан өгөгдлийг ачаалахад ашигладаг замыг зааж өгнө.

Apc.use_request_time боол

TTL-д SAPI хүсэлт эхлэх цагийг ашиглана уу.

Apc.file_md5 боол

md5 хэш файлуудыг бичнэ үү.

Apc.lazy_functions бүхэл тоо

Функцуудыг залхуу ачаалах боломжийг олгодог.

Apc.lazy_classes бүхэл тоо

Ангиудыг залхуу ачаалахыг зөвшөөрдөг.

Тохируулгын файл нь ихэвчлэн /etc/php.d/apcu.ini-д байрладаг. Жишээ тохиргооны файл 8 ГБ RAM-тай серверийн хувьд:

өргөтгөл=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 = 1 сая
apc.num_files_hint = 16384
apc.user_entries_hint = 16384
apc.file_update_protection=10

At PHP ашиглан 5.3, өргөтгөл=apc.so гэж заасан

FastCGI тэмдэглэл: PHP-д зориулсан түгээмэл APC opcode кэш нь PHP нь хүүхдийн процессуудыг удирдахгүй бол PHP FastCGI процессуудын хооронд кэш хуваалцах боломжгүй. Тиймээс кэшийн үр нөлөө mod_fcgid-ээр хязгаарлагддаг; нэгэн зэрэг PHP хүсэлтүүд нь өөр өөр опкодын кэшийг ашиглах болно.

APCu тохиргооны үндсэн шинж чанаруудын тодорхойлолт

apc.shm_segments Хуваарилагдсан санах ойн сегментүүдийн тоо. Олон BSD системүүд санах ойн сегментийн хязгаар багатай байдаг. Өгөгдмөл нь 1.
apc.shm_size Хуваалцсан санах ойн сегментийн хэмжээг мегабайтаар тогтоосон. Бид хамгийн багадаа 128M, 8GB-тай серверийн хувьд - 512M, 16GB-тай серверийн хувьд - 1024M гэж тохируулахыг зөвлөж байна. Хэрэв олон сегмент ашигласан бол санах ойн хэмжээг сегментийн тоонд хуваах ёстой.
apc.stat Энэ сонголт нь APC-г идэвхгүй болгох эсвэл идэвхжүүлэх боломжийг танд олгоно. Утга 1 - идэвхжүүлсэн, 0 - идэвхгүй.
apc.ttl PHP файлын кэш хийх хугацаа. 0 гэж тохируулсан үед хуваарилагдсан санах ой дүүрсэн үед кэшийг бүхэлд нь цэвэрлэх боломжийг олгоно.
apc.user_ttl Хэрэглэгчийн өгөгдлийг кэшлэх хугацаа. 0 гэж тохируулсан үед хуваарилагдсан санах ой дүүрсэн үед кэшийг бүхэлд нь цэвэрлэх боломжийг олгоно.
apc.max_file_size Кэшд хадгалагдсан файлын хамгийн дээд хэмжээ.
apc.num_files_санавар APC нь санах ойд файлын өгөгдлийг хадгалах зохион байгуулалтыг оновчтой болгоход ашиглагддаг. Бид 10000-аас дээш утгыг тохируулахыг зөвлөж байна.
apc.user_entries_hint APC нь хэрэглэгчийн хувьсагчдыг санах ойд хадгалах зохион байгуулалтыг оновчтой болгоход ашиглагддаг. Бид 10000-аас дээш утгыг тохируулахыг зөвлөж байна.
apc.file_update_protection Заасан секундээс бага хугацаанд үүсгэсэн файлуудыг кэш болгож болохгүй. Хэсэгчилсэн бичигдсэн файлыг кэш хийхээс зайлсхийх боломжийг танд олгоно.

Алдаа Санах ойг санд хуваарилах боломжгүй

Include(): Санах ойн хуваагдал ноцтой үед apc.ttl болон apc.user_ttl тохиргоог хийх нь санах ойн хуваагдлыг багасгахад тусалдаг.

Эдгээр функцүүдийн үйлдэл нь php.ini дээрх тохиргооноос хамаарна.

Хэдийгээр өгөгдмөл APC тохиргоо нь ихэнх суулгацуудад тохиромжтой боловч зарим програмууд илүү нарийн тохируулах шаардлагатай байж болно.

APC-ийг тохируулахдаа анхаарах хоёр үндсэн зүйл байдаг. Эхнийх нь APC-д хэр хэмжээний санах ойтой болгох, хоёр дахь нь APC хүсэлт бүр дээр файл өөрчлөгдсөн эсэхийг шалгах эсэх. Эдгээр тохиргоог параметрүүдээр удирддаг apc.shm_sizeТэгээд apc.stat, тус тус. Эдгээр параметрүүдийг тохируулахтай холбоотой хэсгүүдийг анхааралтай уншина уу.

Серверийг ажиллуулсны дараа скрипт apc.php, энэ өргөтгөлийн хамт нийлүүлсэн, "docroot"-д хуулж, түүний эрх нь хөтөчөөр дамжуулан эхлүүлэхийг зөвшөөрөх ёстой. Энэ скрипт нь APC хэрхэн ажилладаг талаар дэлгэрэнгүй мэдээллийг өгдөг. Хэрэв PHP дээр GD-г идэвхжүүлсэн бол энэ скрипт нь бас хэрэгтэй графикуудыг харуулах болно. Мэдээжийн хэрэг, хамгийн эхний зүйл бол APC ямар нэгэн зүйлийг кэшлэх эсэх нь сонирхолтой байх болно. Хэрэв APC ажиллаж байгаа бол утга Кэш бүрэн тоо(зүүн талд) кэш хэдэн удаа бүрэн дүүрч, хамгийн сүүлд хандаагүй оруулгуудыг хүчээр устгахаас өөр аргагүйд хүрсэнийг харуулах болно. apc.ttlсекунд Энэ тоо бага байх тусам кэшийг илүү сайн тохируулна. Хэрэв энэ тоо байнга нэмэгдэж байгаа бол APC нь хуучин оруулгуудыг байнга цэвэрлэж байх ёстой бөгөөд кэш хийх бүх цэг алдагдана. Энэ тоог багасгах хамгийн сайн арга бол APC-д санах ой нэмэх явдал юм. Хэрэв үүнийг хийх боломжгүй бол та дахин тохируулах хэрэгтэй apc.filtersкэштэй скриптүүдийн багцыг хязгаарлах.

Хэрэв APC нь mmap (Memory Mapping) дэмжлэгтэйгээр бүтээгдсэн бол энэ нь зөвхөн нэг санах ойн сегментийг ашиглах боловч эсрэгээр APC нь SHM (SysV Shared Memory) дэмжлэгтэйгээр бүтээгдсэн бол хэд хэдэн сегментийг ашиглах болно. MMAP нь хязгаарлагдмал SHM-ээс ялгаатай нь дээд хязгааргүй /proc/sys/kernel/shmmax. Вэб серверийг дахин эхлүүлэх үед санах ойг илүү хурдан хуваарилдаг тул сервер эхлүүлэх хурдад нөлөөлдөг тул MMAP ашиглахыг зөвлөж байна.

APC тохиргооны параметрүүд
Нэр Өгөгдмөл Өөрчлөлтийн байршил Өөрчлөлтүүдийн жагсаалт
apc.enabled "1" PHP_INI_SYSTEM APC дээрх PHP_INI_SYSTEM 2. APC дээрх PHP_INI_ALL<= 3.0.12.
apc.shm_segments "1" PHP_INI_SYSTEM
apc.shm_size "32 сая" PHP_INI_SYSTEM
apc.shm_strings_buffer "4 сая" PHP_INI_SYSTEM APC 3.1.4 дээр ашиглах боломжтой.
apc.optimization "0" PHP_INI_БҮГД APC 2 дахь PHP_INI_SYSTEM. APC 3.0.13 дээр устгагдсан.
apc.num_files_санавар "1000" PHP_INI_SYSTEM
apc.user_entries_hint "4096" PHP_INI_SYSTEM APC 3.0.0 дээр ашиглах боломжтой.
apc.ttl "0" PHP_INI_SYSTEM APC 3.0.0 дээр ашиглах боломжтой.
apc.user_ttl "0" PHP_INI_SYSTEM APC 3.0.0 дээр ашиглах боломжтой.
apc.gc_ttl "3600" PHP_INI_SYSTEM
apc.cache_by_default "1" PHP_INI_БҮГД APC дахь PHP_INI_SYSTEM<= 3.0.12. Доступно с APC 3.0.0.
apc.filters NULL PHP_INI_SYSTEM
apc.mmap_file_mask NULL PHP_INI_SYSTEM
apc.slam_defense "1" PHP_INI_SYSTEM APC 3.0.0 дээр ашиглах боломжтой. APC 3.1.4-ээс өмнө өгөгдмөл утга "0" (идэвхгүй).
apc.file_update_protection "2" PHP_INI_SYSTEM APC 3.0.6 дээр ашиглах боломжтой.
apc.enable_cli "0" PHP_INI_SYSTEM APC 3.0.7 дээр ашиглах боломжтой.
apc.max_file_size "1 сая" PHP_INI_SYSTEM APC 3.0.7 дээр ашиглах боломжтой.
apc.хүсэлтийн_цаг "1" PHP_INI_БҮГД APC 3.1.3 дээр ашиглах боломжтой.
apc.stat "1" PHP_INI_SYSTEM APC 3.0.10 дээр ашиглах боломжтой.
apc.write_lock "1" PHP_INI_SYSTEM APC 3.0.11 дээр ашиглах боломжтой.
apc.report_autofilter "0" PHP_INI_SYSTEM APC 3.0.11 дээр ашиглах боломжтой.
apc.serializer "өгөгдмөл" PHP_INI_SYSTEM APC 3.1.0 дээр ашиглах боломжтой.
apc.include_once_override "0" PHP_INI_SYSTEM APC 3.0.12 дээр ашиглах боломжтой.
apc.rfc1867 "0" PHP_INI_SYSTEM APC 3.0.13 дээр ашиглах боломжтой.
apc.rfc1867_утгалт "байршуулах_" PHP_INI_SYSTEM
apc.rfc1867_нэр "APC_UPLOAD_PROGRESS" PHP_INI_SYSTEM
apc.rfc1867_freq "0" PHP_INI_SYSTEM
apc.rfc1867_ttl "3600" PHP_INI_SYSTEM APC 3.1.1 дээр ашиглах боломжтой.
apc.localcache "0" PHP_INI_SYSTEM
apc.localcache.size "512" PHP_INI_SYSTEM APC 3.0.14 - 3.1.11 хувилбарт ашиглах боломжтой.
apc.coredump_unmap "0" PHP_INI_SYSTEM APC 3.0.16 дээр ашиглах боломжтой.
apc.stat_ctime "0" PHP_INI_SYSTEM APC 3.0.13 дээр ашиглах боломжтой.
apc.preload_path NULL PHP_INI_SYSTEM APC 3.1.1 дээр ашиглах боломжтой.
apc.file_md5 "0" PHP_INI_SYSTEM APC 3.1.1 дээр ашиглах боломжтой.
apc.canonicalize "1" PHP_INI_SYSTEM APC 3.1.1 дээр ашиглах боломжтой.
apc.lazy_functions 0 PHP_INI_SYSTEM APC 3.1.3 дээр ашиглах боломжтой.
apc.lazy_classes 0 PHP_INI_SYSTEM APC 3.1.3 дээр ашиглах боломжтой.
PHP_INI_* тогтмолуудын дэлгэрэнгүй тайлбарыг Тохиргооны сонголтуудыг тохируулж болох хэсгээс үзнэ үү.

Тохиргооны удирдамжийн товч тайлбар.

Хэрэв та суулгавал apc.enabled 0-д тохируулсан бол APC идэвхжихгүй. Энэ нь PHP-д APC-г статик байдлаар идэвхжүүлсэн үед хэрэглэхэд хэрэгтэй бөгөөд түүний хэрэглээг идэвхгүй болгох өөр сонголт байхгүй. Хэрэв APC DSO хэлбэрээр бүтээгдсэн бол та зүгээр л мөрийг тайлбарлаж болно өргөтгөлВ php.ini.

Apc.shm_segments бүхэл тоо

Кэшэнд хуваарилагдсан хуваалцсан санах ойн сегментүүдийн тоо. Хэрэв APC бүх боломжтой хуваалцсан санах ойг ашигласан бол apc.shm_sizeСистемийн зөвшөөрөгдсөн хэмжээгээр энэ параметрийг нэмэгдүүлэх нь тусалж магадгүй юм.

Apc.shm_size мөр

Богино тэмдэглэгээнд заасан хуваалцсан санах ойн сегментийн хэмжээ (энэ FAQ-ыг үзнэ үү). Анхдагч байдлаар, зарим системүүд (ихэнх BSD хувилбаруудыг оруулаад) энэ утгыг маш бага утгаар хязгаарладаг.

Apc.shm_strings_buffer мөр

Дотоод APC процессуудад ашигладаг хуваалцсан стринг кэшэд хуваарилсан санах ойн хэмжээ. Хэмжээ нь мегабайт ба гигабайтыг тус тус зааж өгөхийн тулд M эсвэл G дагавараар дуусгавар болох ёстой. Энэ сонголтыг ашигласнаар PHP-FPM-ийн ажилчны процессуудын санах ойн хэмжээг бууруулж болно, учир нь ижил мөрүүд санах ойд зөвхөн нэг удаа хадгалагдах бөгөөд бүх ажилчны процессууд үүнийг ашиглах боломжтой.

Apc. Optimization бүхэл тоо

Оновчлолын түвшин. Тэг нь оновчлолыг идэвхгүй болгодог. Энэ утга өндөр байх тусам илүү түрэмгий оновчлолыг ашиглах болно. Хурд их хэмжээгээр нэмэгдэнэ гэж найдаж болохгүй. Энэ бол туршилтын функц юм.

Apc.num_files_санамж бүхэл тоо

Таны сайтад ашиглагдаж буй өвөрмөц файлуудын тооны талаархи зөвлөмж. Үүнийг тэг болгож тохируулна уу эсвэл итгэлгүй байгаа бол огт зааж өгөхгүй. Энэ тохиргоо нь олон мянган файлтай үед хэрэг болно.

Apc.user_entries_сануулга бүхэл тоо apc.file_update_protection бүхэл тоо

Файл хурдан өөрчлөгдөхөд энэ нь атомын хэлбэрээр явагдах ёстой. Өөрөөр хэлбэл, эхлээд түр зуурын файл руу бичиж, дараа нь зөөх ёстой ( mv) түүний зорилтот байрлалд. Олон текст засварлагч cp, давирхайбусад хүмүүс үүнийг хийдэггүй. Энэ нь файлыг бичиж байх үед хүсэлт гаргахад (мөн кэшд) хүргэж болзошгүй. Тохиргоо apc.file_update_protectionцоо шинэ файлуудын кэшийн саатлыг тохируулна. Өгөгдмөл нь 2 секунд. Энэ нь хэрэв файлын өөрчлөлтийн цагийн тэмдэг ( цаг) хэрэв файлыг өөрчилснөөс хойш 2 секундээс бага хугацаа өнгөрсөн бол түүнийг кэшлэхгүй гэж хэлдэг. Хагас хадгалсан файл руугаа нэвтрэхийг оролдсон азгүй хүн хачин жигтэй зан авирыг мэдрэх болно, гэхдээ ядаж энэ нь удаан үргэлжлэхгүй. гэх мэт аргуудыг ашиглан бүх вэб серверийн файлуудыг атомаар шинэчилсэн бол rsync(энэ нь зөв шинэчлэгддэг), дараа нь энэ параметрийг тэг болгож энэ үйлдлийг идэвхгүй болгож болно. Хэрэв систем оролт/гаралтын ачаалал ихтэй бол зарим шинэчлэлтүүд хоёр секундээс илүү хугацаа шаардагдах бөгөөд энэ тохиргоог зохих хэмжээгээр нэмэгдүүлэх шаардлагатай.

Apc.enable_cli бүхэл тоо

Туршилт болон дибаг хийх талаар дэлгэрэнгүй. Энэ тохиргоо нь PHP-ийн CLI хувилбарт зориулсан APC-г зөвшөөрдөг. Ердийн ажлын үед консол дээр скрипт ажиллуулах бүрт кэш үүсгэх, дүүргэх, устгах APC ажиллуулах нь хамгийн сайн санаа биш байх болно. Гэхдээ туршилт, дибаг хийх зорилгоор та CLI-д зориулсан APC-г хялбархан идэвхжүүлж болно.

Apc.max_file_size бүхэл тоо

Энэ тохиргоонд заасан хэмжээнээс том файлуудыг кэшлэхгүй. Өгөгдмөл нь 1 сая.

Apc.stat бүхэл тоо

Энэ тохиргоог өөрчлөхдөө болгоомжтой байгаарай. Энэ нь анхдагчаар идэвхжсэн бөгөөд APC нь хүсэлт болгонд скрипт файлуудыг өөрчилсөн эсэхийг шалгахад хүргэдэг. Хэрэв тэдгээрийг өөрчилсөн бол тэдгээрийг дахин хөрвүүлж, кэш хийх болно. Хэрэв та энэ тохиргоог идэвхгүй болговол APC ийм шалгалт хийхгүй бөгөөд хэрэв файлыг аль хэдийн кэш хийж, дараа нь өөрчилсөн бол шинэ хувилбар нь кэш рүү орохгүй. Дахин санах ойд вэб серверийг дахин эхлүүлэх шаардлагатай болно. FastCGI-г ашиглахаар тохируулсан вэб серверүүд дахин эхлүүлэх үед кэшийг цэвэрлэхгүй байж болзошгүйг анхаарна уу. Файлын өөрчлөлт маш ховор тохиолддог үйлдвэрлэлийн орчинд энэ сонголтыг идэвхгүй болгох нь гүйцэтгэлийг мэдэгдэхүйц сайжруулдаг.

Оруулсан/шаардлагатай файлаар ачаалагдсан файлуудын хувьд энэ сонголт маш сайн ажилладаг боловч хэрэв та харьцангуй замд (Unix дээр, /-ээр эхлээгүй ямар ч зам) файлыг оруулбал APC өвөрмөц байдлыг шалгах болно гэдгийг санаарай. Хэрэв үнэмлэхүй замыг ашигласан бол APC энэ шалгалтыг алгасаад үнэмлэхүй замыг файлын өвөрмөц танигч болгон ашиглана.

Apc.write_lock логик

Ачаалал ихтэй серверүүд дээр сервер ажиллаж эхлэх эсвэл олон файл зэрэг өөрчлөгдсөн тохиолдолд APC нэг файлыг нэгэн зэрэг олон удаа хөрвүүлж, кэш хийхийг оролдож болно. Бичих түгжээ нь зөвхөн нэг процесс нь кэшгүй файлыг хөрвүүлэх, кэш хийхийг оролдох болно. Энэ файлыг ашиглах шаардлагатай бусад процессууд нь кэшэд гарч ирэхийг хүлээхийн оронд түүний кэшгүй хувилбарыг ашиглах болно.

Apc.report_autofilter логик

Эрт эсвэл хожуу холболтын асуудлаас болж кэшээс хасагдсан скриптүүдийг бүртгэдэг.

Apc.serializer мөр

APC-д гуравдагч талын цуваажуулагч ашиглахыг хэлдэг.

Apc.include_once_override логик

Дуудлагыг оновчтой болгодог нэг удаа оруулахТэгээд нэг удаа шаардахүнэтэй системийн дуудлагаас сэргийлэхийн тулд.

Анхаар

Энэ функц нь ТУРШИЛТЫН. Энэхүү удирдамжийн зан байдал, түүний нэр, баримт бичиг нь APC-ийн ирээдүйн хувилбаруудад мэдэгдэлгүйгээр өөрчлөгдөж болно. Үүнийг эрсдэлд оруулаарай.

Apc.rfc1867 логик

RFC1867 файл татаж авах явцыг таслан зогсоох хэрэгсэл нь зөвхөн PHP 5.2.0 буюу түүнээс дээш хувилбараар бүтээгдсэн тохиолдолд APC дээр ашиглах боломжтой. Зөвшөөрөгдсөн бол файлын талбарын өмнө нэр бүхий талбар бүхий маягтыг агуулсан серверт байршуулсан аливаа файл APC_UPLOAD_PROGRESS, APC-ийг upload_ гэх мэт тусгай кэшийн оруулгыг автоматаар үүсгэхийг албадах болно. түлхүүр, Хаана түлхүүрталбарын утга юм APC_UPLOAD_PROGRESS.

Далд талбар гэдгийг санаарай APC_UPLOAD_PROGRESSфайлтай талбарт очих ёстой, эс тэгвээс ажил буруу болно.

Файл татаж авах хянах нь хэлхээнд аюулгүй биш гэдгийг анхаарна уу, тиймээс хэрэв эхний татаж авах үед ижил түлхүүртэй шинийг татаж авбал эхнийхийг хянах нь зогсох болно.

тэрийг тэмдэглэ ханшОдоогийн бүх таталт дууссаны дараа л боломжтой болно.

Жишээ №1 apc.rfc1867 ашиглах жишээ

хэвлэх_r (apc_fetch ("байршуулах_ $_POST [ APC_UPLOAD_PROGRESS ] " ));
?>

Энэ жишээг ажиллуулсны үр дүн дараах байдалтай байх болно.

Массив ( => 1142543 => 1142543 => 1828068.8 => тест => файл => /tmp/php8F => 0 => 1)

Apc.rfc1867_утгалт мөр

rfc1867 татаж авах явцыг хянах функцээр үүсгэсэн хэрэглэгчийн кэшийн оруулгад ашиглах түлхүүр угтвар.

Apc.rfc1867_нэр мөр

APC татаж авах процессыг идэвхжүүлж, хэрэглэгчийн кэш түлхүүрийн дагаварыг зааж өгөх далд хэлбэрийн талбарын нэрийг зааж өгнө.

Apc.rfc1867_freq мөр

Файл татаж авах явцад хэрэглэгчийн кэшийн оруулгыг шинэчлэх давтамж. Үүнийг хувиар эсвэл хэмжээг байтаар зааж өгч болно. Хэрэв хүсвэл дагаварыг ашиглаж болно "к", "м"Тэгээд "g"килобайт, мегабайт, гигабайтын хувьд (үсгийн том үсгийн мэдрэмжгүй). Хэрэв та тэгийг зааж өгвөл шинэчлэлтүүд аль болох хурдан хийгдэх боловч энэ нь ачаалах хугацааг удаашруулж болзошгүй юм.

Apc.rfc1867_ttl бүхэл тоо

rfc1867 бичлэгийн TTL.

Apc.localcache логик

Блоклохгүй локал процессийн сүүдрийн кэшийг идэвхжүүлдэг бөгөөд энэ нь кэш бичих үед блоклох хэмжээг бууруулдаг.

Apc.localcache.size бүхэл тоо

Орон нутгийн процессын сүүдрийн кэшийн хэмжээ нь apc.num_files_hint-ийн тал орчим нь нэлээд том байх ёстой.

Apc.coredump_unmap логик

SIGSEGV гэх мэт дохиог таслах APC-г идэвхжүүлдэг бөгөөд энэ нь гарах үед coredump бичдэг. Эдгээр дохиог хүлээн авах үед APC нь бүх хуваалцсан санах ойг суллахыг оролдох бөгөөд ингэснээр үүнийг cordump-д оруулахгүй байх болно. Энэ тохиргоо нь чухал дохиог хүлээн авч, APC нь их хэмжээний санах ой ашиглахаар тохируулагдсан үед системийн тогтвортой байдлыг нэмэгдүүлэх боломжтой.

Анхаар

Энэ онцлог нь аюултай байж болзошгүй. Чухал дохио хүлээн авах үед хуваалцсан санах ойн сегментүүдийг чөлөөлөх нь урьдчилан тааварлах боломжгүй үйлдэлд хүргэж болзошгүй.

Сэтгэгдэл:

Хэдийгээр зарим цөм нь үндсэн файлыг бичихдээ хуваалцсан санах ойн зарим хэсгийг үл тоомсорлох боломжийг олгодог боловч эдгээр хэрэгжүүлэлт нь Apache онооны самбар зэрэг чухал санах ойн сегментүүдийг үл тоомсорлож болно.

apc.stat_ctime бүхэл тоо

svn эсвэл rsync зэрэг программуудаас үүдэлтэй асуудлуудаас зайлсхийхийн тулд ctime-аар шалгана уу, хамгийн сүүлд статистик мэдээлэл цуглуулснаас хойш inode өөрчлөгдөөгүй эсэхийг шалгаарай. Ерөнхийдөө APC зөвхөн mtime-г шалгадаг.

Apc.canonicalize боол

Хэрэв идэвхгүй болсон бол статистикгүй горимд харьцангуй замуудыг каноник руу хөрвүүлнэ. Идэвхжүүлсэн тохиолдолд дамжуулагчаар холбогдсон файлуудыг кэшлэхгүй бодит зам()урсгалын хальсыг дэмждэггүй.

Apc.preload_path мөр

Нэмэлт. APC нь эхлүүлэх үед кэшэд хадгалагдсан өгөгдлийг ачаалахад ашигладаг замыг зааж өгнө.

Apc.use_request_time боол

TTL-д SAPI хүсэлт эхлэх цагийг ашиглана уу.

Apc.file_md5 боол

md5 хэш файлуудыг бичнэ үү.

Apc.lazy_functions бүхэл тоо

Функцуудыг залхуу ачаалах боломжийг олгодог.

Apc.lazy_classes бүхэл тоо

Ангиудыг залхуу ачаалахыг зөвшөөрдөг.

10 жилийн өмнө

Дээрх apc.rfc1867 жишээ код нь APC RFC1867-г ашиглах боломжгүй эсвэл ашиглах боломжгүй орчинд ажилладаг хүмүүст зориулж бага зэрэг хурдан бөгөөд сул юм. Энэ нь арай илүү илэрхийлэлтэй:

// хэрэв бидэнд PHP болон APC байгаа бол
$havePHP = (1 === хувилбарын_харьцуулах (PHP_VERSION, "5.2.0" ) ? үнэн : худал );
$haveAPC = (өргөтгөл ачаалагдсан ("apc" ) && 1 === хувилбарын_харьцуулах (phpversion ( "apc" ), "3.0.13" ) ? үнэн : худал );
хэрэв ($havePHP && $haveAPC ) (
// хэрэв APC болон байршуулах хяналт идэвхжсэн бол
хэрэв (ini_get ("apc.enabled" ) && ini_get ("apc.rfc1867" )) (
// статистикийг авах
$key = ini_get ("apc.rfc1867_prefix") . $_REQUEST["apcid"];
$стат = apc_fetch($түлхүүр);
}
}