กำลังติดตั้งแอป

ความลับของฉัน

ขอแนะนำให้ติดตั้งตัวเร่งสคริปต์ PHP ซึ่งจะช่วยลดภาระบนเว็บเซิร์ฟเวอร์ของคุณ ตัวเร่งความเร็วจะรวบรวมสคริปต์ PHP ที่ใช้บ่อยที่สุด และเมื่อเข้าถึง จะไม่โหลดซอร์สโค้ด แต่เป็นเวอร์ชันที่คอมไพล์แล้ว ส่งผลให้การดำเนินการและการแสดงผลเว็บไซต์ของคุณเร็วขึ้น สิ่งนี้จะสังเกตเห็นได้ชัดเจนเป็นพิเศษใน CMS ที่ "หนัก" เช่น Bitrix

หากต้องการติดตั้ง APC Accelerator คุณต้องติดตั้ง XCode c ด้วยคอมโพเนนต์บรรทัดคำสั่งก่อน

หลังจากอัปเดต Mac OS X เป็นเวอร์ชัน 10.9 Maverick คุณต้องติดตั้งส่วนประกอบบรรทัดคำสั่งใหม่ ตอนนี้ไม่ได้ติดตั้งผ่าน GUI แต่ใช้บรรทัดคำสั่ง: xcode-select --install

มิฉะนั้น เมื่อติดตั้งส่วนขยายโดยใช้ pecl คุณจะได้รับข้อผิดพลาด “ไม่พบไฟล์ php.h”

./configure ทำ sudo ทำการติดตั้ง

Sudo pecl ติดตั้ง apc

หากทุกอย่างเป็นไปด้วยดี ให้ตรวจสอบการติดตั้ง APC โดยใช้สคริปต์ php ด้วยคำสั่ง phpinfo() คำสั่งอาจล้มเหลวโดยสิ้นเชิง ในกรณีนี้ คุณควรลองดำเนินการดังต่อไปนี้:

หากคำสั่งนี้ล้มเหลว เป็นไปได้มากว่าคุณไม่ได้ติดตั้ง PEAR และ PECL จำเป็นต้องดาวน์โหลดโดยใช้คำสั่ง curl และติดตั้ง

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

เมื่อได้รับแจ้งให้กำหนดค่า PEAR จะต้องแก้ไขพารามิเตอร์ 1 และ 4

11.ชื่อไฟล์การกำหนดค่า:

1-11, "ทั้งหมด" หรือ Enter เพื่อดำเนินการต่อ:

ตอบ 1 ก่อน แล้วกรอกที่อยู่:

/usr/local/pear

จากนั้นตอบข้อ 4 และกรอกที่อยู่ต่อไปนี้

หลังจากนั้นกด Enter ติดตั้ง PEAR แล้ว คุณสามารถตรวจสอบได้ด้วยคำสั่ง

รุ่นลูกแพร์

หลังจากนั้นให้ลองอีกครั้ง

ครั้งนี้ฉันถูกปฏิเสธด้วยข้อความต่อไปนี้

ไม่พบการกำหนดค่าอัตโนมัติ โปรดตรวจสอบการติดตั้ง autoconf และไฟล์

ตัวแปรสภาพแวดล้อม $PHP_AUTOCONF จากนั้นให้รันสคริปต์นี้อีกครั้ง

ข้อผิดพลาด: `phpize" ล้มเหลว

เพื่อแก้ไขข้อผิดพลาดนี้ คุณต้องดาวน์โหลดและติดตั้งการกำหนดค่าอัตโนมัติโดยใช้คำสั่งเทอร์มินัลต่อไปนี้ ขด 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 ทำการติดตั้ง


หลังจากติดตั้งคำสั่ง autoconfig:

sudo pecl ติดตั้ง apc

เราตอบทุกคำถามที่ถามระหว่างการคอมไพล์ APC ด้วยอินพุตเริ่มต้น ถ้าคำถาม

ในกรณีนี้ เมื่อรันโค้ด คุณอาจได้รับข้อความแสดงข้อผิดพลาดเกี่ยวกับการดำเนินการของ APC เอง คำตอบที่ถูกต้องคือไม่

การติดตั้งสำเร็จ ตอนนี้เรารีสตาร์ท apache

Sudo apachectl รีสตาร์ท

หากคุณติดตั้ง APC ใหม่หลังจากอัปเดตเป็น Mavericks อาจมีข้อผิดพลาดที่เกี่ยวข้องกับการมีอยู่ของ phpize เวอร์ชันเก่าในระบบ ในกรณีนี้ คำสั่งต่อไปนี้สามารถช่วยได้ โดยอัปเดตการกำหนดค่า pecl sudo pear config-set php_ini /etc/php.ini sudo pecl config-set bin_dir /usr/bin/

คุณต้องตรวจสอบให้แน่ใจว่ามีบรรทัดในไฟล์ /etc/php.ini และเพิ่มหากจำเป็น

ส่วนขยาย=apc.so

และรีสตาร์ท apache อีกครั้ง

กำลังตรวจสอบใน phpinfo()


Bitrix ต้องการการติดตั้งพารามิเตอร์เพิ่มเติม การตั้งค่า APC อยู่ในไฟล์

ฉันตั้งค่าพารามิเตอร์ต่อไปนี้สำหรับตัวเอง:

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

การเปลี่ยนแปลงประสิทธิภาพให้อะไร (ตามการตรวจสอบประสิทธิภาพ Bitrix) จาก 10.62 หน่วยเป็น 40.52)
นั่นดูเหมือนจะเป็นทั้งหมด

ตัวเลือกการตั้งค่า APC พื้นฐาน

  • apc.เปิดใช้งานแล้ว– อนุญาตให้คุณเปิดหรือปิดการใช้งาน APC
  • apc.shm_segments– จำนวนเซ็กเมนต์หน่วยความจำที่ใช้ร่วมกันที่ apc จะใช้ บางระบบมีการจำกัดขนาดเซ็กเมนต์สูงสุด ดังนั้นคุณจึงสามารถกำหนดค่า apc ให้ใช้หลายเซ็กเมนต์ได้
  • apc.shm_size– ขนาดของเซ็กเมนต์หน่วยความจำที่ใช้ร่วมกันหนึ่งเซ็กเมนต์ที่ใช้โดย apc
  • apc.ttl– จะต้องไม่มีการเข้าถึงรายการแคชกี่วินาทีก่อนที่ apc จะเขียนทับ
  • apc.user_ttl– คำอธิบายเหมือนกับ apc.ttl โดยทั่วไปจะตั้งค่าเป็น apc.ttl
  • apc.stat– ระบุว่า apc จำเป็นต้องตรวจสอบเวลาแก้ไขของสคริปต์ php หรือไม่ หากตั้งค่าเป็น 0 apc จะไม่ตรวจสอบการเปลี่ยนแปลงบนดิสก์และจะสร้างสำเนาที่แคชไว้

Pecl ติดตั้งความคืบหน้าการอัปโหลด

จริงอยู่ อาจจำเป็นต้องมีสิทธิ์ superuser (root)

ไฟล์การกำหนดค่าส่วนใหญ่มักจะอยู่ใน /etc/php.d/apcu.ini ตัวอย่างไฟล์การกำหนดค่าสำหรับเซิร์ฟเวอร์ที่มี RAM ขนาด 8 GB:

ส่วนขยาย=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

เมื่อใช้ PHP 5.3 ให้ระบุ extension=apc.so

หมายเหตุ FastCGI: แคช opcode APC ยอดนิยมสำหรับ PHP ไม่สามารถแชร์แคชระหว่างกระบวนการ PHP FastCGI เว้นแต่ว่า PHP จะจัดการกระบวนการลูก ดังนั้นประสิทธิภาพของแคชจึงถูกจำกัดด้วย mod_fcgid คำขอ PHP ที่เกิดขึ้นพร้อมกันจะใช้แคช opcode ที่แตกต่างกัน

คำอธิบายของแอตทริบิวต์การกำหนดค่า 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_hint APC ใช้เพื่อเพิ่มประสิทธิภาพการจัดระเบียบการจัดเก็บข้อมูลไฟล์ในหน่วยความจำ เราขอแนะนำให้ตั้งค่าที่มากกว่า 10,000
apc.user_entries_hint APC ใช้เพื่อเพิ่มประสิทธิภาพการจัดระเบียบการจัดเก็บตัวแปรผู้ใช้ในหน่วยความจำ เราขอแนะนำให้ตั้งค่าที่มากกว่า 10,000
apc.file_update_protection อย่าแคชไฟล์ที่สร้างขึ้นน้อยกว่าวินาทีที่ระบุที่ผ่านมา ช่วยให้คุณหลีกเลี่ยงการแคชไฟล์ที่เขียนเพียงบางส่วน

เกิดข้อผิดพลาดไม่สามารถจัดสรรหน่วยความจำสำหรับพูลได้

รวม (): ไม่สามารถจัดสรรหน่วยความจำสำหรับข้อผิดพลาดของพูลเกิดขึ้นเมื่อการกระจายตัวของหน่วยความจำรุนแรง การตั้งค่าตัวเลือก apc.ttl และ apc.user_ttl เป็นศูนย์จะช่วยลดการกระจายตัวของหน่วยความจำ


เอพีซีเป็นคำย่อของ การแคช PHP ทางเลือก- ข้อความภาษารัสเซียเป็นแคชเชอร์ PHP ทางเลือก มันใช้ทำอะไร? เช่นเดียวกับแคชเชอร์ยอดนิยมอื่นๆ เช่น XCache และ eAccelerator มันถูกใช้เพื่อเพิ่มความเร็วของสคริปต์ PHP หากคุณมีเซิร์ฟเวอร์เป็นของตัวเองและกังวลเกี่ยวกับประสิทธิภาพของสคริปต์ PHP APC อาจช่วยแก้ปัญหาของคุณได้ ในบทความวันนี้ เราจะเรียนรู้เพิ่มเติมเกี่ยวกับ APC เรียนรู้วิธีการติดตั้งและทดสอบ และใช้แคช APC เมื่อเขียนสคริปต์ PHP

ตัวเร่งความเร็ว APC คืออะไร?

คันเร่งเอพีซี(Alternative PHP Cache) เป็น opcode cacher ฟรีและเปิดสำหรับ PHP ได้รับการออกแบบให้เป็นเฟรมเวิร์กฟรี เปิดกว้าง และเสถียรสำหรับการแคชและปรับแต่งซอร์สโค้ด PHP APC อยู่ในขั้นตอนการพัฒนา ปัจจุบันรองรับ PHP 4 และ PHP 5 รวมถึง 5.3 สันนิษฐานว่าจะรวมอยู่ใน PHP core เวอร์ชัน 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

เนื่องจากมีการเพิ่มเวอร์ชันที่อัปเดตแล้วจึงล่าช้ามาก ดังนั้นเราจะติดตั้ง APC ผ่าน PECL:

Sudo apt-get ลบ --purge php-apc sudo apt-get ติดตั้ง libpcre3-dev sudo pecl ติดตั้ง apc
ระหว่างการติดตั้งเราได้ตั้งค่าคอนฟิกูเรชันต่อไปนี้ (YMMV):
เปิดใช้งานการดีบักภายในใน APC : ไม่รองรับ เปิดใช้งานข้อมูลไฟล์ตามคำขอเกี่ยวกับไฟล์ที่ใช้จากแคช APC : ไม่ เปิดใช้งานการล็อคการหมุน (ทดลอง) : ไม่ เปิดใช้งานการป้องกันหน่วยความจำ (ทดลอง) : ไม่ เปิดใช้งาน pthread mutexes (ค่าเริ่มต้น) : ใช่ เปิดใช้งาน pthread อ่าน / ล็อคการเขียน (ทดลอง) : ไม่ใช่ ตอนนี้คุณต้องเปิดใช้งาน APC ในการตั้งค่า เพราะ... สิ่งนี้ไม่ได้ทำโดยอัตโนมัติ สำหรับสิ่งนี้เราสร้าง ไฟล์ apc.ini ในไดเร็กทอรีที่เหมาะสม: sudo vim /etc/php5/conf.d/apc.ini และเขียนการตั้งค่าต่อไปนี้ลงในไฟล์นี้ (แนะนำสำหรับการทำงานกับ Magento) 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_segments=1 apc.enable_cli=1 apc.cache_by_default=1 apc.include_once_override=1

เปิดใช้งานการสนับสนุน APC ใน Magento

เปิดไฟล์กำหนดค่า Magento:แอป vi/etc/local.xml และเพิ่มรหัสต่อไปนี้ในส่วนส่วนกลาง:


ไฟล์ apc 0 1 MAGE_ หรือฐานข้อมูล apc 0 1 MAGE_


ระหว่างแท็ก "คำนำหน้า" มีการระบุคำอธิบายโดยย่อของร้านค้าเพื่อให้สามารถใช้ APC เพื่อแคชร้านค้าหลายแห่งที่สร้างขึ้นบน Magento เดียว

จะตรวจสอบการทำงานของ APC ได้อย่างไร?

ก่อนอื่น คุณควรสังเกตว่าสคริปต์ Magento PHP เริ่มทำงานเร็วขึ้น ใช้ Firebug และปลั๊กอิน เช่น YSlow เพื่อประเมินความเร็วของไซต์ คุณสามารถดาวน์โหลดส่วนขยาย Firebug สำหรับ Firefox ได้ที่นี่ นอกจากนี้ คุณสามารถใช้ไฟล์ apc.php ได้โดยการคัดลอกจากโฟลเดอร์การแจกจ่าย APC ไปยังโฟลเดอร์ สาธารณะของโครงการของคุณ: sudo cp /usr/share/php/apc.php /เส้นทางของคุณสู่สาธารณะ ตอนนี้คุณสามารถเปิดไฟล์นี้ในเบราว์เซอร์ของคุณ: http://yourhost.local/apc.php

ลักษณะการทำงานของฟังก์ชันเหล่านี้ขึ้นอยู่กับการตั้งค่าใน php.ini

แม้ว่าการตั้งค่าเริ่มต้นของ APC จะเหมาะสมกับการติดตั้งส่วนใหญ่ แต่แอปพลิเคชันบางตัวอาจต้องมีการปรับแต่งเพิ่มเติม

เมื่อกำหนดค่า APC มีสองประเด็นหลักที่ต้องคำนึงถึง อย่างแรกคือจำนวนหน่วยความจำที่จะทำให้ APC ใช้งานได้ และอย่างที่สองคือ APC จะตรวจสอบว่าไฟล์ได้รับการแก้ไขในแต่ละคำขอหรือไม่ apc.shm_sizeการตั้งค่าเหล่านี้ถูกควบคุมโดยพารามิเตอร์ apc.statและ

ตามลำดับ โปรดอ่านส่วนที่เกี่ยวข้องกับการตั้งค่าพารามิเตอร์เหล่านี้อย่างละเอียด เมื่อเซิร์ฟเวอร์เริ่มทำงานแล้ว สคริปต์ apc.php ที่มาพร้อมกับส่วนขยายนี้ จะต้องคัดลอกไปยัง "docroot" และสิทธิ์ในส่วนขยายนี้จะต้องอนุญาตให้เปิดใช้งานผ่านเบราว์เซอร์ สคริปต์นี้ให้ข้อมูลโดยละเอียดเกี่ยวกับวิธีการทำงานของ APC หากเปิดใช้งาน GD ใน PHP สคริปต์นี้จะแสดงกราฟที่มีประโยชน์ด้วย แน่นอนว่าสิ่งแรกที่น่าสนใจคือ APC จะแคชอะไรหรือไม่ ถ้า APC กำลังทำงานอยู่ ค่านั้นก็จะตามมา(ซ้าย) จะแสดงจำนวนครั้งที่แคชเต็มและถูกบังคับให้ลบรายการที่ไม่ได้เข้าถึงครั้งล่าสุด apc.ttlวินาที ยิ่งตัวเลขนี้ต่ำ แคชก็จะยิ่งได้รับการกำหนดค่าได้ดีขึ้น หากจำนวนนี้เพิ่มขึ้นอย่างต่อเนื่อง APC จะต้องล้างรายการเก่าออกอย่างต่อเนื่อง และจุดแคชทั้งหมดจะหายไป วิธีที่ดีที่สุดในการลดจำนวนนี้คือการเพิ่มหน่วยความจำให้กับ APC หากไม่สามารถทำได้ คุณจะต้องกำหนดค่าใหม่ apc.ตัวกรอง

เพื่อจำกัดชุดของสคริปต์ที่แคชไว้ หาก APC ถูกสร้างขึ้นด้วยการสนับสนุน mmap (Memory Mapping) จะใช้เพียงส่วนหน่วยความจำเดียว ในทางกลับกัน หาก APC ถูกสร้างขึ้นด้วยการสนับสนุน SHM (SysV Shared Memory) ก็จะใช้หลายส่วน MMAP ไม่มีขีดจำกัดสูงสุด ต่างจาก SHM ที่ถูกจำกัด/proc/sys/เคอร์เนล/shmmax

- โดยทั่วไปขอแนะนำให้ใช้ MMAP เนื่องจากจะจัดสรรหน่วยความจำได้เร็วกว่ามากเมื่อรีสตาร์ทเว็บเซิร์ฟเวอร์ ซึ่งส่งผลต่อความเร็วในการเริ่มต้นเซิร์ฟเวอร์
พารามิเตอร์การกำหนดค่า APC ชื่อ ค่าเริ่มต้น ตำแหน่งของการเปลี่ยนแปลง
apc.เปิดใช้งานแล้ว "1" รายการการเปลี่ยนแปลง PHP_INI_SYSTEM<= 3.0.12.
apc.shm_segments "1" รายการการเปลี่ยนแปลง
apc.shm_size PHP_INI_SYSTEM ใน APC 2. PHP_INI_ALL ใน APC รายการการเปลี่ยนแปลง
"32M" apc.shm_strings_buffer รายการการเปลี่ยนแปลง "4เอ็ม"
สามารถใช้ได้กับ APC 3.1.4 "0" apc.การเพิ่มประสิทธิภาพ PHP_INI_ALL
apc.num_files_hint "1000" รายการการเปลี่ยนแปลง
apc.user_entries_hint "4096" รายการการเปลี่ยนแปลง PHP_INI_SYSTEM ใน APC 2 ถูกลบออกใน APC 3.0.13
apc.ttl "0" รายการการเปลี่ยนแปลง PHP_INI_SYSTEM ใน APC 2 ถูกลบออกใน APC 3.0.13
apc.user_ttl "0" รายการการเปลี่ยนแปลง PHP_INI_SYSTEM ใน APC 2 ถูกลบออกใน APC 3.0.13
สามารถใช้ได้กับ APC 3.0.0 "3600" รายการการเปลี่ยนแปลง
apc.gc_ttl "1" apc.การเพิ่มประสิทธิภาพ apc.cache_by_default<= 3.0.12. Доступно с APC 3.0.0.
หากจำนวนนี้เพิ่มขึ้นอย่างต่อเนื่อง APC จะต้องล้างรายการเก่าออกอย่างต่อเนื่อง และจุดแคชทั้งหมดจะหายไป วิธีที่ดีที่สุดในการลดจำนวนนี้คือการเพิ่มหน่วยความจำให้กับ APC หากไม่สามารถทำได้ คุณจะต้องกำหนดค่าใหม่ PHP_INI_SYSTEM ใน APC รายการการเปลี่ยนแปลง
โมฆะ PHP_INI_SYSTEM ใน APC รายการการเปลี่ยนแปลง
apc.mmap_file_mask "1" รายการการเปลี่ยนแปลง apc.slam_defense "0" สามารถใช้ได้กับ APC 3.0.0 ก่อน APC 3.1.4 ค่าเริ่มต้น
apc.file_update_protection "2" รายการการเปลี่ยนแปลง (พิการ).
สามารถใช้ได้กับ APC 3.0.6 "0" รายการการเปลี่ยนแปลง apc.enable_cli
apc.max_file_size สามารถใช้ได้กับ APC 3.0.7 รายการการเปลี่ยนแปลง apc.enable_cli
"1เอ็ม" "1" apc.การเพิ่มประสิทธิภาพ apc.use_request_time
apc.stat "1" รายการการเปลี่ยนแปลง สามารถใช้ได้กับ APC 3.1.3
สามารถใช้ได้กับ APC 3.0.10 "1" รายการการเปลี่ยนแปลง apc.write_lock
สามารถใช้ได้กับ APC 3.0.11 "0" รายการการเปลี่ยนแปลง apc.write_lock
apc.report_autofilter apc.ซีเรียลไลเซอร์ รายการการเปลี่ยนแปลง "ค่าเริ่มต้น"
สามารถใช้ได้กับ APC 3.1.0 "0" รายการการเปลี่ยนแปลง apc.include_once_override
สามารถใช้ได้กับ APC 3.0.12 "0" รายการการเปลี่ยนแปลง apc.rfc1867
สามารถใช้ได้กับ APC 3.0.13 apc.rfc1867_prefix รายการการเปลี่ยนแปลง
"อัปโหลด_" apc.rfc1867_name รายการการเปลี่ยนแปลง
"APC_UPLOAD_PROGRESS" "0" รายการการเปลี่ยนแปลง
apc.rfc1867_freq "3600" รายการการเปลี่ยนแปลง apc.rfc1867_ttl
สามารถใช้ได้กับ APC 3.1.1 "0" รายการการเปลี่ยนแปลง
apc.localcache "512" รายการการเปลี่ยนแปลง apc.localcache.size
มีอยู่ใน APC 3.0.14 - 3.1.11 "0" รายการการเปลี่ยนแปลง apc.coredump_unmap
สามารถใช้ได้กับ APC 3.0.16 "0" รายการการเปลี่ยนแปลง apc.rfc1867
apc.stat_ctime PHP_INI_SYSTEM ใน APC รายการการเปลี่ยนแปลง apc.rfc1867_ttl
apc.preload_path "0" รายการการเปลี่ยนแปลง apc.rfc1867_ttl
apc.file_md5 "1" รายการการเปลี่ยนแปลง apc.rfc1867_ttl
apc.canonicalize 0 รายการการเปลี่ยนแปลง apc.use_request_time
apc.lazy_functions 0 รายการการเปลี่ยนแปลง apc.use_request_time
apc.lazy_classes

สำหรับคำอธิบายโดยละเอียดของค่าคงที่ PHP_INI_* โปรดดูส่วนที่สามารถตั้งค่าตัวเลือกการกำหนดค่าได้

คำอธิบายสั้น ๆ เกี่ยวกับคำสั่งการกำหนดค่า apc.เปิดใช้งานแล้วหากคุณติดตั้ง ตั้งค่าเป็น 0 จะไม่สามารถเปิดใช้งาน APC ได้วี php.ini.

Apc.shm_segments จำนวนเต็ม

จำนวนเซ็กเมนต์หน่วยความจำแบบแบ่งใช้ที่จัดสรรสำหรับแคช apc.shm_sizeหาก APC ใช้หน่วยความจำที่ใช้ร่วมกันที่มีอยู่ทั้งหมดและ

ใหญ่เท่าที่ระบบอนุญาต การเพิ่มพารามิเตอร์นี้อาจช่วยได้ Apc.shm_size

เชือก

ขนาดของเซ็กเมนต์หน่วยความจำที่ใช้ร่วมกัน ระบุไว้ในรูปแบบย่อ (ดูคำถามที่พบบ่อยนี้) Apc.shm_size

ตามค่าเริ่มต้น บางระบบ (รวมถึงตัวแปร BSD ส่วนใหญ่) จะจำกัดค่านี้ให้มีค่าน้อยมาก

Apc.shm_strings_buffer จำนวนเต็ม

จำนวนหน่วยความจำที่จัดสรรให้กับแคชสตริงที่ใช้ร่วมกันซึ่งใช้โดยกระบวนการ APC ภายใน ขนาดต้องลงท้ายด้วยส่วนต่อท้าย M หรือ G เพื่อระบุเมกะไบต์และกิกะไบต์ ตามลำดับ การใช้ตัวเลือกนี้สามารถลดขนาดหน่วยความจำของกระบวนการของผู้ปฏิบัติงาน PHP-FPM ได้ เนื่องจากสตริงเดียวกันจะถูกจัดเก็บไว้ในหน่วยความจำเพียงครั้งเดียวและกระบวนการของผู้ปฏิบัติงานทั้งหมดสามารถใช้ได้

การเพิ่มประสิทธิภาพ Apc จำนวนเต็ม

ระดับการเพิ่มประสิทธิภาพ ศูนย์ปิดใช้งานการเพิ่มประสิทธิภาพ

ยิ่งค่านี้สูงเท่าใด ระบบจะใช้การเพิ่มประสิทธิภาพเชิงรุกมากขึ้นเท่านั้น อย่าคาดหวังว่าความเร็วจะเพิ่มขึ้นอย่างมาก นี่คือฟังก์ชันการทดลอง จำนวนเต็ม Apc.num_files_hint จำนวนเต็ม

คำแนะนำเกี่ยวกับจำนวนไฟล์ที่ไม่ซ้ำที่ใช้ในเว็บไซต์ของคุณ ตั้งค่าเป็นศูนย์หรือไม่ต้องระบุเลยหากคุณไม่แน่ใจ การตั้งค่านี้มีประโยชน์เมื่อคุณมีไฟล์หลายพันไฟล์ Apc.user_entries_hint apc.file_update_protection, เมื่อไฟล์เปลี่ยนแปลงอย่างรวดเร็ว ไฟล์นั้นควรเกิดขึ้นในลักษณะอะตอมมิก นั่นคือก่อนอื่นจะต้องเขียนลงในไฟล์ชั่วคราวแล้วจึงย้าย ( MV apc.file_update_protection) ไปยังตำแหน่งเป้าหมายของเขา โปรแกรมแก้ไขข้อความจำนวนมากซีพี ทาร์และคนอื่นไม่ทำเช่นนี้ ซึ่งอาจส่งผลให้มีการร้องขอไฟล์ (และแคช) ในขณะที่กำลังเขียน การตั้งค่า

ตั้งค่าความล่าช้าในการแคชสำหรับไฟล์ใหม่ทั้งหมด ค่าเริ่มต้นคือ 2 วินาที ซึ่งหมายความว่าหากประทับเวลาการแก้ไขไฟล์ ( จำนวนเต็ม

เพิ่มเติมสำหรับการทดสอบและการดีบัก การตั้งค่านี้อนุญาตให้ APC สำหรับ PHP เวอร์ชัน CLI ในการทำงานปกติ การเรียกใช้ APC ซึ่งจะสร้าง เติม และทำลายแคชทุกครั้งที่คุณเรียกใช้สคริปต์ในคอนโซลจะไม่ใช่ความคิดที่ดีที่สุด แต่เพื่อวัตถุประสงค์ในการทดสอบและแก้ไขจุดบกพร่อง คุณสามารถเปิดใช้งาน APC สำหรับ CLI ได้อย่างง่ายดาย

Apc.max_file_size จำนวนเต็ม

ไม่แคชไฟล์ที่มีขนาดใหญ่กว่าขนาดที่ระบุโดยการตั้งค่านี้

ค่าเริ่มต้นคือ 1M จำนวนเต็ม

Apc.stat

โปรดใช้ความระมัดระวังเมื่อเปลี่ยนการตั้งค่านี้ สิ่งนี้ถูกเปิดใช้งานตามค่าเริ่มต้น ทำให้ APC ตรวจสอบไฟล์สคริปต์ในทุกคำขอเพื่อดูว่าได้รับการแก้ไขหรือไม่ หากมีการเปลี่ยนแปลง พวกเขาจะถูกคอมไพล์ใหม่และแคชอีกครั้ง หากคุณปิดใช้งานการตั้งค่านี้ APC จะไม่ทำการตรวจสอบดังกล่าว และหากไฟล์ถูกแคชไว้แล้วและมีการเปลี่ยนแปลง เวอร์ชันใหม่จะไม่เข้าไปในแคช การกู้คืนจะต้องรีสตาร์ทเว็บเซิร์ฟเวอร์

โปรดทราบว่าเว็บเซิร์ฟเวอร์ที่กำหนดค่าให้ใช้ FastCGI อาจไม่ล้างแคชเมื่อรีสตาร์ท ในสภาพแวดล้อมทางอุตสาหกรรมที่การเปลี่ยนแปลงไฟล์เกิดขึ้นน้อยมาก การปิดใช้งานตัวเลือกนี้สามารถปรับปรุงประสิทธิภาพได้อย่างมาก สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

Apc.write_lock

บูลีน สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

บนเซิร์ฟเวอร์ที่มีการโหลดจำนวนมาก เมื่อเซิร์ฟเวอร์เริ่มทำงาน หรือเมื่อมีการแก้ไขไฟล์จำนวนมากในเวลาเดียวกัน APC อาจพยายามคอมไพล์และแคชไฟล์เดียวกันหลายครั้งในเวลาเดียวกัน การล็อกการเขียนช่วยให้มั่นใจได้ว่ามีเพียงกระบวนการเดียวเท่านั้นที่พยายามรวบรวมและแคชไฟล์ที่ไม่ได้แคช กระบวนการอื่นๆ ที่จำเป็นต้องใช้ไฟล์นี้จะใช้เวอร์ชันที่ไม่ได้แคช แทนที่จะรอให้ปรากฏในแคช

Apc.report_autofilter Apc.shm_size

บันทึกสคริปต์ใดๆ ที่ถูกแยกออกจากการแคชเนื่องจากปัญหาการเชื่อมโยงเร็วหรือช้า

Apc.ซีเรียลไลเซอร์ สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

แจ้งให้ APC ใช้โปรแกรมสร้างซีเรียลไลเซอร์ของบริษัทอื่น Apc.include_once_overrideการตั้งค่าเหล่านี้ถูกควบคุมโดยพารามิเตอร์ เพิ่มประสิทธิภาพการโทรรวม_ครั้งเดียว

need_once

เพื่อป้องกันการโทรของระบบที่มีราคาแพง ความสนใจ- ลักษณะการทำงานของคำสั่งนี้ ชื่อ และเอกสารประกอบอาจเปลี่ยนแปลงได้โดยไม่ต้องแจ้งให้ทราบใน APC เวอร์ชันอนาคต ใช้มันเป็นความเสี่ยงของคุณเอง

Apc.rfc1867 สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

ตัวสกัดกั้นความคืบหน้าการดาวน์โหลดไฟล์ RFC1867 มีเฉพาะใน APC หากสร้างด้วย PHP 5.2.0 หรือสูงกว่า หากได้รับอนุญาต ไฟล์ใดๆ ก็ตามที่อัปโหลดไปยังเซิร์ฟเวอร์ที่มีในแบบฟอร์ม ก่อนที่ฟิลด์ไฟล์จะเป็นฟิลด์ที่มีชื่อ APC_UPLOAD_PROGRESSจะบังคับให้ APC สร้างรายการแคชที่กำหนดเองโดยอัตโนมัติ เช่น upload_ สำคัญ, ที่ไหน สำคัญคือค่าของฟิลด์ APC_UPLOAD_PROGRESS.

จำไว้ว่าสนามที่ซ่อนอยู่ APC_UPLOAD_PROGRESSต้องลงสนามพร้อมไฟล์ ไม่เช่นนั้นงานจะผิดพลาด

โปรดทราบว่าการติดตามการดาวน์โหลดไฟล์นั้นไม่ปลอดภัยสำหรับเธรด ดังนั้นหากในระหว่างการดาวน์โหลดครั้งแรก มีไฟล์ใหม่เกิดขึ้นพร้อมกับคีย์เดียวกัน การติดตามไฟล์แรกจะหยุดลง

โปรดทราบว่า ประเมินจะใช้ได้ก็ต่อเมื่อการดาวน์โหลดปัจจุบันทั้งหมดเสร็จสิ้นแล้วเท่านั้น

ตัวอย่าง #1 ตัวอย่างการใช้ apc.rfc1867

print_r (apc_fetch ( "อัปโหลด_ $_POST [ APC_UPLOAD_PROGRESS ] " ));
?>

ผลลัพธ์ของการรันตัวอย่างนี้จะเป็นดังนี้:

อาร์เรย์ ( => 1142543 => 1142543 => 1828068.8 => ทดสอบ => ไฟล์ => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefix Apc.shm_size

คำนำหน้าคีย์เพื่อใช้ในรายการแคชผู้ใช้ที่สร้างโดยฟังก์ชันการติดตามความคืบหน้าการดาวน์โหลด rfc1867

Apc.rfc1867_name Apc.shm_size

ระบุชื่อสำหรับฟิลด์ฟอร์มที่ซ่อนอยู่ซึ่งจะช่วยให้กระบวนการดาวน์โหลด APC และระบุส่วนต่อท้ายคีย์แคชของผู้ใช้

Apc.rfc1867_freq Apc.shm_size

ความถี่ที่รายการแคชของผู้ใช้จะถูกอัพเดตระหว่างการดาวน์โหลดไฟล์ สามารถระบุเป็นเปอร์เซ็นต์หรือระบุขนาดเป็นไบต์ก็ได้ คุณสามารถใช้ส่วนต่อท้ายได้หากต้องการ "เค", "ม"และ "ก"(ไม่คำนึงถึงขนาดตัวพิมพ์) สำหรับกิโลไบต์ เมกะไบต์ และกิกะไบต์ ตามลำดับ หากคุณระบุเป็นศูนย์ การอัปเดตจะเกิดขึ้นโดยเร็วที่สุด แต่อาจทำให้เวลาในการโหลดช้าลง

Apc.rfc1867_ttl จำนวนเต็ม

TTL สำหรับบันทึก rfc1867

Apc.localcache สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

เปิดใช้งานแคชเงากระบวนการภายในเครื่องที่ไม่ปิดกั้น ซึ่งจะช่วยลดปริมาณการบล็อกระหว่างการเขียนแคช

Apc.localcache.size จำนวนเต็ม

ขนาดของแคชเงากระบวนการโลคัลควรมีขนาดค่อนข้างใหญ่ ประมาณครึ่งหนึ่งของ apc.num_files_hint

Apc.coredump_unmap สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

ช่วยให้ APC สามารถสกัดกั้นสัญญาณ เช่น SIGSEGV ซึ่งเขียน coredump เมื่อออก เมื่อรับสัญญาณเหล่านี้ APC จะพยายามเพิ่มหน่วยความจำที่ใช้ร่วมกันทั้งหมดให้ว่างเพื่อไม่ให้รวมไว้ใน coredump การตั้งค่านี้สามารถเพิ่มเสถียรภาพของระบบได้เมื่อได้รับสัญญาณวิกฤติและ APC ได้รับการกำหนดค่าให้ใช้หน่วยความจำจำนวนมาก

need_once

คุณลักษณะนี้อาจเป็นอันตราย การเพิ่มเซ็กเมนต์หน่วยความจำที่ใช้ร่วมกันเมื่อได้รับสัญญาณวิกฤติอาจส่งผลให้เกิดพฤติกรรมที่ไม่สามารถคาดเดาได้

ความคิดเห็น:

แม้ว่าเคอร์เนลบางตัวจะมีความสามารถในการละเว้นเซ็กเมนต์หน่วยความจำที่ใช้ร่วมกันบางส่วนเมื่อเขียนไฟล์หลัก การใช้งานเหล่านี้ยังสามารถละเว้นเซ็กเมนต์หน่วยความจำที่สำคัญ เช่น Apache Scoreboard

apc.stat_ctime จำนวนเต็ม

ตรวจสอบตามเวลา ctime เพื่อหลีกเลี่ยงปัญหาที่เกิดจากโปรแกรม เช่น svn หรือ rsync ตรวจสอบให้แน่ใจว่า inode ไม่มีการเปลี่ยนแปลงนับตั้งแต่การรวบรวมสถิติครั้งล่าสุด โดยทั่วไปแล้ว APC จะตรวจสอบเฉพาะเวลาทำงานเท่านั้น

Apc.canonicalize บูล

หากปิดใช้งาน เส้นทางสัมพัทธ์จะถูกแปลงเป็นรูปแบบบัญญัติในโหมดไม่มีสถิติ หากเปิดใช้งาน ไฟล์ที่เชื่อมต่อผ่าน wrapper สตรีมจะไม่ถูกแคช เนื่องจากเส้นทางจริง()

ไม่รองรับการห่อสตรีม Apc.shm_size

Apc.preload_path

ไม่จำเป็น. ระบุเส้นทางที่ APC ใช้ในการโหลดข้อมูลแคชระหว่างการเริ่มต้นระบบ บูล

Apc.use_request_time

ใช้เวลาเริ่มต้นคำขอ SAPI สำหรับ TTL บูล

Apc.file_md5

เขียนแฮชไฟล์ md5 จำนวนเต็ม

Apc.lazy_functions

อนุญาตให้โหลดฟังก์ชันแบบ Lazy Loading จำนวนเต็ม

Apc.lazy_classes

ลักษณะการทำงานของฟังก์ชันเหล่านี้ขึ้นอยู่กับการตั้งค่าใน php.ini

แม้ว่าการตั้งค่าเริ่มต้นของ APC จะเหมาะสมกับการติดตั้งส่วนใหญ่ แต่แอปพลิเคชันบางตัวอาจต้องมีการปรับแต่งเพิ่มเติม

เมื่อกำหนดค่า APC มีสองประเด็นหลักที่ต้องคำนึงถึง อย่างแรกคือจำนวนหน่วยความจำที่จะทำให้ APC ใช้งานได้ และอย่างที่สองคือ APC จะตรวจสอบว่าไฟล์ได้รับการแก้ไขในแต่ละคำขอหรือไม่ apc.shm_sizeการตั้งค่าเหล่านี้ถูกควบคุมโดยพารามิเตอร์ apc.statและ

ตามลำดับ โปรดอ่านส่วนที่เกี่ยวข้องกับการตั้งค่าพารามิเตอร์เหล่านี้อย่างละเอียด เมื่อเซิร์ฟเวอร์เริ่มทำงานแล้ว สคริปต์ apc.php ที่มาพร้อมกับส่วนขยายนี้ จะต้องคัดลอกไปยัง "docroot" และสิทธิ์ในส่วนขยายนี้จะต้องอนุญาตให้เปิดใช้งานผ่านเบราว์เซอร์ สคริปต์นี้ให้ข้อมูลโดยละเอียดเกี่ยวกับวิธีการทำงานของ APC หากเปิดใช้งาน GD ใน PHP สคริปต์นี้จะแสดงกราฟที่มีประโยชน์ด้วย แน่นอนว่าสิ่งแรกที่น่าสนใจคือ APC จะแคชอะไรหรือไม่ ถ้า APC กำลังทำงานอยู่ ค่านั้นก็จะตามมา(ซ้าย) จะแสดงจำนวนครั้งที่แคชเต็มและถูกบังคับให้ลบรายการที่ไม่ได้เข้าถึงครั้งล่าสุด apc.ttlวินาที ยิ่งตัวเลขนี้ต่ำ แคชก็จะยิ่งได้รับการกำหนดค่าได้ดีขึ้น หากจำนวนนี้เพิ่มขึ้นอย่างต่อเนื่อง APC จะต้องล้างรายการเก่าออกอย่างต่อเนื่อง และจุดแคชทั้งหมดจะหายไป วิธีที่ดีที่สุดในการลดจำนวนนี้คือการเพิ่มหน่วยความจำให้กับ APC หากไม่สามารถทำได้ คุณจะต้องกำหนดค่าใหม่ apc.ตัวกรอง

เพื่อจำกัดชุดของสคริปต์ที่แคชไว้ หาก APC ถูกสร้างขึ้นด้วยการสนับสนุน mmap (Memory Mapping) จะใช้เพียงส่วนหน่วยความจำเดียว ในทางกลับกัน หาก APC ถูกสร้างขึ้นด้วยการสนับสนุน SHM (SysV Shared Memory) ก็จะใช้หลายส่วน MMAP ไม่มีขีดจำกัดสูงสุด ต่างจาก SHM ที่ถูกจำกัด/proc/sys/เคอร์เนล/shmmax

- โดยทั่วไปขอแนะนำให้ใช้ MMAP เนื่องจากจะจัดสรรหน่วยความจำได้เร็วกว่ามากเมื่อรีสตาร์ทเว็บเซิร์ฟเวอร์ ซึ่งส่งผลต่อความเร็วในการเริ่มต้นเซิร์ฟเวอร์
พารามิเตอร์การกำหนดค่า APC ชื่อ ค่าเริ่มต้น ตำแหน่งของการเปลี่ยนแปลง
apc.เปิดใช้งานแล้ว "1" รายการการเปลี่ยนแปลง PHP_INI_SYSTEM<= 3.0.12.
apc.shm_segments "1" รายการการเปลี่ยนแปลง
apc.shm_size PHP_INI_SYSTEM ใน APC 2. PHP_INI_ALL ใน APC รายการการเปลี่ยนแปลง
"32M" apc.shm_strings_buffer รายการการเปลี่ยนแปลง "4เอ็ม"
สามารถใช้ได้กับ APC 3.1.4 "0" apc.การเพิ่มประสิทธิภาพ PHP_INI_ALL
apc.num_files_hint "1000" รายการการเปลี่ยนแปลง
apc.user_entries_hint "4096" รายการการเปลี่ยนแปลง PHP_INI_SYSTEM ใน APC 2 ถูกลบออกใน APC 3.0.13
apc.ttl "0" รายการการเปลี่ยนแปลง PHP_INI_SYSTEM ใน APC 2 ถูกลบออกใน APC 3.0.13
apc.user_ttl "0" รายการการเปลี่ยนแปลง PHP_INI_SYSTEM ใน APC 2 ถูกลบออกใน APC 3.0.13
สามารถใช้ได้กับ APC 3.0.0 "3600" รายการการเปลี่ยนแปลง
apc.gc_ttl "1" apc.การเพิ่มประสิทธิภาพ apc.cache_by_default<= 3.0.12. Доступно с APC 3.0.0.
หากจำนวนนี้เพิ่มขึ้นอย่างต่อเนื่อง APC จะต้องล้างรายการเก่าออกอย่างต่อเนื่อง และจุดแคชทั้งหมดจะหายไป วิธีที่ดีที่สุดในการลดจำนวนนี้คือการเพิ่มหน่วยความจำให้กับ APC หากไม่สามารถทำได้ คุณจะต้องกำหนดค่าใหม่ PHP_INI_SYSTEM ใน APC รายการการเปลี่ยนแปลง
โมฆะ PHP_INI_SYSTEM ใน APC รายการการเปลี่ยนแปลง
apc.mmap_file_mask "1" รายการการเปลี่ยนแปลง apc.slam_defense "0" สามารถใช้ได้กับ APC 3.0.0 ก่อน APC 3.1.4 ค่าเริ่มต้น
apc.file_update_protection "2" รายการการเปลี่ยนแปลง (พิการ).
สามารถใช้ได้กับ APC 3.0.6 "0" รายการการเปลี่ยนแปลง apc.enable_cli
apc.max_file_size สามารถใช้ได้กับ APC 3.0.7 รายการการเปลี่ยนแปลง apc.enable_cli
"1เอ็ม" "1" apc.การเพิ่มประสิทธิภาพ apc.use_request_time
apc.stat "1" รายการการเปลี่ยนแปลง สามารถใช้ได้กับ APC 3.1.3
สามารถใช้ได้กับ APC 3.0.10 "1" รายการการเปลี่ยนแปลง apc.write_lock
สามารถใช้ได้กับ APC 3.0.11 "0" รายการการเปลี่ยนแปลง apc.write_lock
apc.report_autofilter apc.ซีเรียลไลเซอร์ รายการการเปลี่ยนแปลง "ค่าเริ่มต้น"
สามารถใช้ได้กับ APC 3.1.0 "0" รายการการเปลี่ยนแปลง apc.include_once_override
สามารถใช้ได้กับ APC 3.0.12 "0" รายการการเปลี่ยนแปลง apc.rfc1867
สามารถใช้ได้กับ APC 3.0.13 apc.rfc1867_prefix รายการการเปลี่ยนแปลง
"อัปโหลด_" apc.rfc1867_name รายการการเปลี่ยนแปลง
"APC_UPLOAD_PROGRESS" "0" รายการการเปลี่ยนแปลง
apc.rfc1867_freq "3600" รายการการเปลี่ยนแปลง apc.rfc1867_ttl
สามารถใช้ได้กับ APC 3.1.1 "0" รายการการเปลี่ยนแปลง
apc.localcache "512" รายการการเปลี่ยนแปลง apc.localcache.size
มีอยู่ใน APC 3.0.14 - 3.1.11 "0" รายการการเปลี่ยนแปลง apc.coredump_unmap
สามารถใช้ได้กับ APC 3.0.16 "0" รายการการเปลี่ยนแปลง apc.rfc1867
apc.stat_ctime PHP_INI_SYSTEM ใน APC รายการการเปลี่ยนแปลง apc.rfc1867_ttl
apc.preload_path "0" รายการการเปลี่ยนแปลง apc.rfc1867_ttl
apc.file_md5 "1" รายการการเปลี่ยนแปลง apc.rfc1867_ttl
apc.canonicalize 0 รายการการเปลี่ยนแปลง apc.use_request_time
apc.lazy_functions 0 รายการการเปลี่ยนแปลง apc.use_request_time
apc.lazy_classes

สำหรับคำอธิบายโดยละเอียดของค่าคงที่ PHP_INI_* โปรดดูส่วนที่สามารถตั้งค่าตัวเลือกการกำหนดค่าได้

คำอธิบายสั้น ๆ เกี่ยวกับคำสั่งการกำหนดค่า apc.เปิดใช้งานแล้วหากคุณติดตั้ง ตั้งค่าเป็น 0 จะไม่สามารถเปิดใช้งาน APC ได้วี php.ini.

Apc.shm_segments จำนวนเต็ม

จำนวนเซ็กเมนต์หน่วยความจำแบบแบ่งใช้ที่จัดสรรสำหรับแคช apc.shm_sizeหาก APC ใช้หน่วยความจำที่ใช้ร่วมกันที่มีอยู่ทั้งหมดและ

ใหญ่เท่าที่ระบบอนุญาต การเพิ่มพารามิเตอร์นี้อาจช่วยได้ Apc.shm_size

เชือก

ขนาดของเซ็กเมนต์หน่วยความจำที่ใช้ร่วมกัน ระบุไว้ในรูปแบบย่อ (ดูคำถามที่พบบ่อยนี้) Apc.shm_size

ตามค่าเริ่มต้น บางระบบ (รวมถึงตัวแปร BSD ส่วนใหญ่) จะจำกัดค่านี้ให้มีค่าน้อยมาก

Apc.shm_strings_buffer จำนวนเต็ม

จำนวนหน่วยความจำที่จัดสรรให้กับแคชสตริงที่ใช้ร่วมกันซึ่งใช้โดยกระบวนการ APC ภายใน ขนาดต้องลงท้ายด้วยส่วนต่อท้าย M หรือ G เพื่อระบุเมกะไบต์และกิกะไบต์ ตามลำดับ การใช้ตัวเลือกนี้สามารถลดขนาดหน่วยความจำของกระบวนการของผู้ปฏิบัติงาน PHP-FPM ได้ เนื่องจากสตริงเดียวกันจะถูกจัดเก็บไว้ในหน่วยความจำเพียงครั้งเดียวและกระบวนการของผู้ปฏิบัติงานทั้งหมดสามารถใช้ได้

การเพิ่มประสิทธิภาพ Apc จำนวนเต็ม

ระดับการเพิ่มประสิทธิภาพ ศูนย์ปิดใช้งานการเพิ่มประสิทธิภาพ

ยิ่งค่านี้สูงเท่าใด ระบบจะใช้การเพิ่มประสิทธิภาพเชิงรุกมากขึ้นเท่านั้น อย่าคาดหวังว่าความเร็วจะเพิ่มขึ้นอย่างมาก นี่คือฟังก์ชันการทดลอง จำนวนเต็ม Apc.num_files_hint จำนวนเต็ม

คำแนะนำเกี่ยวกับจำนวนไฟล์ที่ไม่ซ้ำที่ใช้ในเว็บไซต์ของคุณ ตั้งค่าเป็นศูนย์หรือไม่ต้องระบุเลยหากคุณไม่แน่ใจ การตั้งค่านี้มีประโยชน์เมื่อคุณมีไฟล์หลายพันไฟล์ Apc.user_entries_hint apc.file_update_protection, เมื่อไฟล์เปลี่ยนแปลงอย่างรวดเร็ว ไฟล์นั้นควรเกิดขึ้นในลักษณะอะตอมมิก นั่นคือก่อนอื่นจะต้องเขียนลงในไฟล์ชั่วคราวแล้วจึงย้าย ( MV apc.file_update_protection) ไปยังตำแหน่งเป้าหมายของเขา โปรแกรมแก้ไขข้อความจำนวนมากซีพี ทาร์และคนอื่นไม่ทำเช่นนี้ ซึ่งอาจส่งผลให้มีการร้องขอไฟล์ (และแคช) ในขณะที่กำลังเขียน การตั้งค่า

ตั้งค่าความล่าช้าในการแคชสำหรับไฟล์ใหม่ทั้งหมด ค่าเริ่มต้นคือ 2 วินาที ซึ่งหมายความว่าหากประทับเวลาการแก้ไขไฟล์ ( จำนวนเต็ม

เพิ่มเติมสำหรับการทดสอบและการดีบัก การตั้งค่านี้อนุญาตให้ APC สำหรับ PHP เวอร์ชัน CLI ในการทำงานปกติ การเรียกใช้ APC ซึ่งจะสร้าง เติม และทำลายแคชทุกครั้งที่คุณเรียกใช้สคริปต์ในคอนโซลจะไม่ใช่ความคิดที่ดีที่สุด แต่เพื่อวัตถุประสงค์ในการทดสอบและแก้ไขจุดบกพร่อง คุณสามารถเปิดใช้งาน APC สำหรับ CLI ได้อย่างง่ายดาย

Apc.max_file_size จำนวนเต็ม

ไม่แคชไฟล์ที่มีขนาดใหญ่กว่าขนาดที่ระบุโดยการตั้งค่านี้

ค่าเริ่มต้นคือ 1M จำนวนเต็ม

Apc.stat

โปรดใช้ความระมัดระวังเมื่อเปลี่ยนการตั้งค่านี้ สิ่งนี้ถูกเปิดใช้งานตามค่าเริ่มต้น ทำให้ APC ตรวจสอบไฟล์สคริปต์ในทุกคำขอเพื่อดูว่าได้รับการแก้ไขหรือไม่ หากมีการเปลี่ยนแปลง พวกเขาจะถูกคอมไพล์ใหม่และแคชอีกครั้ง หากคุณปิดใช้งานการตั้งค่านี้ APC จะไม่ทำการตรวจสอบดังกล่าว และหากไฟล์ถูกแคชไว้แล้วและมีการเปลี่ยนแปลง เวอร์ชันใหม่จะไม่เข้าไปในแคช การกู้คืนจะต้องรีสตาร์ทเว็บเซิร์ฟเวอร์

โปรดทราบว่าเว็บเซิร์ฟเวอร์ที่กำหนดค่าให้ใช้ FastCGI อาจไม่ล้างแคชเมื่อรีสตาร์ท ในสภาพแวดล้อมทางอุตสาหกรรมที่การเปลี่ยนแปลงไฟล์เกิดขึ้นน้อยมาก การปิดใช้งานตัวเลือกนี้สามารถปรับปรุงประสิทธิภาพได้อย่างมาก สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

Apc.write_lock

บูลีน สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

บนเซิร์ฟเวอร์ที่มีการโหลดจำนวนมาก เมื่อเซิร์ฟเวอร์เริ่มทำงาน หรือเมื่อมีการแก้ไขไฟล์จำนวนมากในเวลาเดียวกัน APC อาจพยายามคอมไพล์และแคชไฟล์เดียวกันหลายครั้งในเวลาเดียวกัน การล็อกการเขียนช่วยให้มั่นใจได้ว่ามีเพียงกระบวนการเดียวเท่านั้นที่พยายามรวบรวมและแคชไฟล์ที่ไม่ได้แคช กระบวนการอื่นๆ ที่จำเป็นต้องใช้ไฟล์นี้จะใช้เวอร์ชันที่ไม่ได้แคช แทนที่จะรอให้ปรากฏในแคช

Apc.report_autofilter Apc.shm_size

บันทึกสคริปต์ใดๆ ที่ถูกแยกออกจากการแคชเนื่องจากปัญหาการเชื่อมโยงเร็วหรือช้า

Apc.ซีเรียลไลเซอร์ สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

แจ้งให้ APC ใช้โปรแกรมสร้างซีเรียลไลเซอร์ของบริษัทอื่น Apc.include_once_overrideการตั้งค่าเหล่านี้ถูกควบคุมโดยพารามิเตอร์ เพิ่มประสิทธิภาพการโทรรวม_ครั้งเดียว

need_once

เพื่อป้องกันการโทรของระบบที่มีราคาแพง ความสนใจ- ลักษณะการทำงานของคำสั่งนี้ ชื่อ และเอกสารประกอบอาจเปลี่ยนแปลงได้โดยไม่ต้องแจ้งให้ทราบใน APC เวอร์ชันอนาคต ใช้มันเป็นความเสี่ยงของคุณเอง

Apc.rfc1867 สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

ตัวสกัดกั้นความคืบหน้าการดาวน์โหลดไฟล์ RFC1867 มีเฉพาะใน APC หากสร้างด้วย PHP 5.2.0 หรือสูงกว่า หากได้รับอนุญาต ไฟล์ใดๆ ก็ตามที่อัปโหลดไปยังเซิร์ฟเวอร์ที่มีในแบบฟอร์ม ก่อนที่ฟิลด์ไฟล์จะเป็นฟิลด์ที่มีชื่อ APC_UPLOAD_PROGRESSจะบังคับให้ APC สร้างรายการแคชที่กำหนดเองโดยอัตโนมัติ เช่น upload_ สำคัญ, ที่ไหน สำคัญคือค่าของฟิลด์ APC_UPLOAD_PROGRESS.

จำไว้ว่าสนามที่ซ่อนอยู่ APC_UPLOAD_PROGRESSต้องลงสนามพร้อมไฟล์ ไม่เช่นนั้นงานจะผิดพลาด

โปรดทราบว่าการติดตามการดาวน์โหลดไฟล์นั้นไม่ปลอดภัยสำหรับเธรด ดังนั้นหากในระหว่างการดาวน์โหลดครั้งแรก มีไฟล์ใหม่เกิดขึ้นพร้อมกับคีย์เดียวกัน การติดตามไฟล์แรกจะหยุดลง

โปรดทราบว่า ประเมินจะใช้ได้ก็ต่อเมื่อการดาวน์โหลดปัจจุบันทั้งหมดเสร็จสิ้นแล้วเท่านั้น

ตัวอย่าง #1 ตัวอย่างการใช้ apc.rfc1867

print_r (apc_fetch ( "อัปโหลด_ $_POST [ APC_UPLOAD_PROGRESS ] " ));
?>

ผลลัพธ์ของการรันตัวอย่างนี้จะเป็นดังนี้:

อาร์เรย์ ( => 1142543 => 1142543 => 1828068.8 => ทดสอบ => ไฟล์ => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefix Apc.shm_size

คำนำหน้าคีย์เพื่อใช้ในรายการแคชผู้ใช้ที่สร้างโดยฟังก์ชันการติดตามความคืบหน้าการดาวน์โหลด rfc1867

Apc.rfc1867_name Apc.shm_size

ระบุชื่อสำหรับฟิลด์ฟอร์มที่ซ่อนอยู่ซึ่งจะช่วยให้กระบวนการดาวน์โหลด APC และระบุส่วนต่อท้ายคีย์แคชของผู้ใช้

Apc.rfc1867_freq Apc.shm_size

ความถี่ที่รายการแคชของผู้ใช้จะถูกอัพเดตระหว่างการดาวน์โหลดไฟล์ สามารถระบุเป็นเปอร์เซ็นต์หรือระบุขนาดเป็นไบต์ก็ได้ คุณสามารถใช้ส่วนต่อท้ายได้หากต้องการ "เค", "ม"และ "ก"(ไม่คำนึงถึงขนาดตัวพิมพ์) สำหรับกิโลไบต์ เมกะไบต์ และกิกะไบต์ ตามลำดับ หากคุณระบุเป็นศูนย์ การอัปเดตจะเกิดขึ้นโดยเร็วที่สุด แต่อาจทำให้เวลาในการโหลดช้าลง

Apc.rfc1867_ttl จำนวนเต็ม

TTL สำหรับบันทึก rfc1867

Apc.localcache สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

เปิดใช้งานแคชเงากระบวนการภายในเครื่องที่ไม่ปิดกั้น ซึ่งจะช่วยลดปริมาณการบล็อกระหว่างการเขียนแคช

Apc.localcache.size จำนวนเต็ม

ขนาดของแคชเงากระบวนการโลคัลควรมีขนาดค่อนข้างใหญ่ ประมาณครึ่งหนึ่งของ apc.num_files_hint

Apc.coredump_unmap สำหรับไฟล์ที่โหลดผ่านรวม/จำเป็น ตัวเลือกนี้ใช้งานได้ดี แต่โปรดจำไว้ว่า หากคุณรวมไฟล์ไว้ในพาธแบบสัมพันธ์ (บน Unix นี่คือพาธใดๆ ที่ไม่ได้ขึ้นต้นด้วย /) APC จะตรวจสอบความเป็นเอกลักษณ์ หากใช้เส้นทางสัมบูรณ์ APC จะข้ามการตรวจสอบนี้ และใช้เส้นทางสัมบูรณ์เป็นตัวระบุไฟล์ที่ไม่ซ้ำกัน

ช่วยให้ APC สามารถสกัดกั้นสัญญาณ เช่น SIGSEGV ซึ่งเขียน coredump เมื่อออก เมื่อรับสัญญาณเหล่านี้ APC จะพยายามเพิ่มหน่วยความจำที่ใช้ร่วมกันทั้งหมดให้ว่างเพื่อไม่ให้รวมไว้ใน coredump การตั้งค่านี้สามารถเพิ่มเสถียรภาพของระบบได้เมื่อได้รับสัญญาณวิกฤติและ APC ได้รับการกำหนดค่าให้ใช้หน่วยความจำจำนวนมาก

need_once

คุณลักษณะนี้อาจเป็นอันตราย การเพิ่มเซ็กเมนต์หน่วยความจำที่ใช้ร่วมกันเมื่อได้รับสัญญาณวิกฤติอาจส่งผลให้เกิดพฤติกรรมที่ไม่สามารถคาดเดาได้

ความคิดเห็น:

แม้ว่าเคอร์เนลบางตัวจะมีความสามารถในการละเว้นเซ็กเมนต์หน่วยความจำที่ใช้ร่วมกันบางส่วนเมื่อเขียนไฟล์หลัก การใช้งานเหล่านี้ยังสามารถละเว้นเซ็กเมนต์หน่วยความจำที่สำคัญ เช่น Apache Scoreboard

apc.stat_ctime จำนวนเต็ม

ตรวจสอบตามเวลา ctime เพื่อหลีกเลี่ยงปัญหาที่เกิดจากโปรแกรม เช่น svn หรือ rsync ตรวจสอบให้แน่ใจว่า inode ไม่มีการเปลี่ยนแปลงนับตั้งแต่การรวบรวมสถิติครั้งล่าสุด โดยทั่วไปแล้ว APC จะตรวจสอบเฉพาะเวลาทำงานเท่านั้น

Apc.canonicalize บูล

หากปิดใช้งาน เส้นทางสัมพัทธ์จะถูกแปลงเป็นรูปแบบบัญญัติในโหมดไม่มีสถิติ หากเปิดใช้งาน ไฟล์ที่เชื่อมต่อผ่าน wrapper สตรีมจะไม่ถูกแคช เนื่องจากเส้นทางจริง()

ไม่รองรับการห่อสตรีม Apc.shm_size

Apc.preload_path

ไม่จำเป็น. ระบุเส้นทางที่ APC ใช้ในการโหลดข้อมูลแคชระหว่างการเริ่มต้นระบบ บูล

Apc.use_request_time

ใช้เวลาเริ่มต้นคำขอ SAPI สำหรับ TTL บูล

Apc.file_md5

เขียนแฮชไฟล์ md5 จำนวนเต็ม

Apc.lazy_functions

อนุญาตให้โหลดฟังก์ชันแบบ Lazy Loading จำนวนเต็ม

Apc.lazy_classes

อนุญาตให้โหลดคลาสแบบขี้เกียจ

10 ปีที่แล้ว

โค้ดตัวอย่าง apc.rfc1867 ข้างต้นจะเร็วและหลวมเล็กน้อยสำหรับผู้ที่ทำงานในสภาพแวดล้อมที่ APC RFC1867 อาจมีหรือไม่มีให้ใช้งาน นี่เป็นการแสดงออกมากกว่านี้เล็กน้อย:
// ถ้าเรามี PHP และ APC
$havePHP = (1 === version_compare (PHP_VERSION, "5.2.0" ) ? true : false );
$haveAPC = (extension_loaded ("apc" ) && 1 === version_compare (phpversion ( "apc" ), "3.0.13" ) ? true : false );
ถ้า ($havePHP && $haveAPC ) (
// หากเปิดใช้งาน APC และการติดตามการอัปโหลด
ถ้า (ini_get ("apc.enabled" ) && ini_get ("apc.rfc1867" )) (
// รับสถิติ
$key = ini_get ("apc.rfc1867_prefix") . $_REQUEST["apcid"];
}
}