ไดเรกทอรีบทความ
ความเร็วคือชีวิต หากเว็บไซต์ช้าไปแม้เพียงเสี้ยววินาที ผู้ใช้ก็จะหันหลังกลับและออกจากเว็บไซต์ไป
这就是为什么在 เฮสเทียซีพี การเพิ่มประสิทธิภาพ OPcache เป็นสิ่งสำคัญอย่างยิ่งต่อความสำเร็จหรือความล้มเหลวของเว็บไซต์ใดๆ ที่ใช้ PHP
OPcache คืออะไร?
OPcache เป็นกลไกการแคชไบต์โค้ดในตัวของ PHP
หน้าที่ของมันนั้นง่ายมาก คือ แคชสคริปต์ PHP ที่คอมไพล์แล้วไว้ในหน่วยความจำ และเรียกใช้แคชโดยตรงเมื่อต้องการเข้าถึงอีกครั้ง แทนที่จะคอมไพล์ใหม่
วิธีนี้ช่วยเพิ่มความเร็วในการตอบสนองของเว็บไซต์ ลดภาระการทำงานของ CPU และลดภาระของเซิร์ฟเวอร์ได้ทันที
ตามเอกสารอย่างเป็นทางการของ PHP:
"OPcache ช่วยเพิ่มประสิทธิภาพการทำงานได้อย่างมาก โดยลดเวลาในการประมวลผลด้วยการหลีกเลี่ยงการคอมไพล์สคริปต์ซ้ำซ้อน"
โดยสรุป: OPcache คือตัวเร่งความเร็ว PHP
เหตุใดจึงควรปรับแต่ง OPcache ใน HestiaCP?

HestiaCP เป็นแผงควบคุมขนาดเล็กที่ผู้คนจำนวนมากใช้ในการจัดการ VPS หรือเซิร์ฟเวอร์เฉพาะ
OPcache เปิดใช้งานโดยค่าเริ่มต้น แต่ค่าพารามิเตอร์มักจะค่อนข้างระมัดระวัง
หากไม่มีการปรับเปลี่ยน การปรับปรุงประสิทธิภาพก็จะจำกัดอยู่เพียงระดับหนึ่ง
ตัวอย่างเช่น:
บนเซิร์ฟเวอร์ที่มี 4 คอร์และหน่วยความจำ 8GB หน่วยความจำ OPcache เริ่มต้นมีเพียง 64MB และจำนวนไฟล์ที่แคชได้มีเพียง 4000 ไฟล์
นี่สำหรับขนาดกลาง WordPress สำหรับเว็บไซต์แล้ว แค่นั้นไม่เพียงพออย่างแน่นอน
ผลที่ตามมาคือแคชจะถูกล้างอยู่ตลอดเวลา ทำให้ประสิทธิภาพการทำงานผันผวนซ้ำไปซ้ำมา
ตรวจสอบสถานะ OPcache ปัจจุบัน
รันคำสั่งต่อไปนี้:
php -i | grep opcache.enable
คุณจะเห็นผลลัพธ์ที่คล้ายกับ:
- opcache.enable => On: หมายความว่า OPcache ถูกเปิดใช้งานใน PHP-FPM แล้ว
- opcache.enable_cli => ปิด: ไม่ได้เปิดใช้งานในโหมดบรรทัดคำสั่ง
- opcache.enable_file_override => ปิด: ฟังก์ชันการแทนที่ไฟล์ไม่ได้เปิดใช้งาน
นั่นหมายความว่าถึงแม้ OPcache จะใช้งานได้แล้ว แต่ก็ยังมีโอกาสที่จะปรับปรุงให้ดียิ่งขึ้นได้อีก
แก้ไขไฟล์การกำหนดค่า PHP
ใน HestiaCP เส้นทางของไฟล์การกำหนดค่า PHP มักจะเป็น:
/etc/php/8.x/fpm/php.ini
เพื่อเปิดใช้งานโหมด CLI:
/etc/php/8.x/cli/php.ini
ค้นหาส่วน [opcache] และเพิ่มหรือแก้ไขพารามิเตอร์ต่อไปนี้:
[opcache] ; 启用 OPcache opcache.enable=1 opcache.enable_cli=1 ; 内存与缓存设置 opcache.memory_consumption=256 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=10000 ; 文件更新检测 opcache.validate_timestamps=0 opcache.revalidate_freq=60 ; 其他优化参数 opcache.save_comments=1 opcache.fast_shutdown=1 opcache.enable_file_override=1
รายละเอียดพารามิเตอร์และตรรกะการปรับให้เหมาะสม
การใช้หน่วยความจำของ opcache = 256
การจัดสรรหน่วยความจำ 256MB ให้กับ OPcache นั้นเหมาะสมสำหรับเว็บไซต์ขนาดกลางถึงขนาดใหญ่
สำหรับเว็บไซต์ขนาดเล็ก คุณสามารถตั้งค่าเป็น 128MB ได้opcache.interned_strings_buffer=16
มีแคชสตริงขนาด 16MB เพื่อลดการใช้สตริงซ้ำซ้อนopcache.max_accelerated_files=10000
ในสภาพแวดล้อม WordPress ที่มีปลั๊กอินเพิ่มเติม แนะนำให้ตั้งค่าจำนวนไฟล์แคชสูงสุดอย่างน้อย 10000 ไฟล์opcache.revalidate_freq=60
ระบบจะตรวจสอบไฟล์เพื่อหาการอัปเดตทุกๆ 60 วินาที เพื่อลดการอ่าน/เขียนไฟล์ที่เกิดขึ้นบ่อยครั้งopcache.enable_cli=1
การเปิดใช้งานการแคช CLI เหมาะสำหรับการใช้งานเครื่องมือบรรทัดคำสั่ง เช่น Artisan และ WP-CLIopcache.enable_file_override=1
อนุญาตให้ OPcache เข้ามาควบคุมแคชของระบบไฟล์ ซึ่งจะช่วยลดการเข้าถึงดิสก์ลงได้อีก- opcache.validate_timestamps=0
- ปิดใช้งานการตรวจจับแบบเรียลไทม์ลดปริมาณการอ่านเขียนไฟล์และเพิ่มประสิทธิภาพการทำงาน
อย่างไรก็ตาม นั่นหมายความว่าคุณต้องล้างแคชด้วยตนเอง (รีสตาร์ทบริการ PHP) หลังจากแก้ไขไฟล์ PHP เสร็จแล้ว
หลังจากแก้ไขการตั้งค่าแล้ว คุณต้องรีสตาร์ทบริการ PHP เพื่อให้การเปลี่ยนแปลงมีผล
sudo systemctl restart php<版本>-fpmการผสมผสานพารามิเตอร์เหล่านี้ทำให้เว็บไซต์มีความเสถียรแม้ในสภาวะที่มีผู้ใช้งานจำนวนมากพร้อมกัน
รีสตาร์ทบริการ PHP-FPM
หลังจากทำการเปลี่ยนแปลงแล้ว อย่าลืมรีสตาร์ทบริการ:
sudo systemctl restart php8.x-fpm
จากนั้นลองรันอีกครั้ง:
php -i | grep opcache
พารามิเตอร์ต่างๆ ได้รับการยืนยันว่ามีการอัปเดตแล้ว
แนวปฏิบัติที่ดีที่สุดในสภาพแวดล้อมการผลิต
ในสภาพแวดล้อมการใช้งานจริง การเพิ่มประสิทธิภาพ OPcache ไม่ได้เกี่ยวข้องแค่เพียงการปรับพารามิเตอร์เท่านั้น แต่ยังรวมถึงกลยุทธ์ต่อไปนี้ด้วย:
1. ล้างแคชระหว่างการติดตั้งใช้งาน
หลังจากอัปเดตโค้ดทุกครั้ง จะต้องล้าง OPcache มิเช่นนั้นอาจจะโหลดเวอร์ชันเก่าขึ้นมาแทน
คุณสามารถเพิ่มข้อความต่อไปนี้ลงในสคริปต์ CI/CD ได้:
<?php opcache_reset();
หรืออีกทางเลือกหนึ่งคือ เรียกใช้คำสั่งนี้ภายในกระบวนการติดตั้ง:
systemctl reload php8.x-fpm
2. หลีกเลี่ยงการทำความสะอาดบ่อยเกินไป
การล้างแคชบ่อยเกินไปอาจทำให้ประสิทธิภาพการทำงานลดลง
แนะนำให้ล้างข้อมูลเฉพาะเมื่อมีการอัปเดตโค้ดเท่านั้น แทนที่จะล้างข้อมูลเป็นประจำ
3. ตรวจสอบการใช้งาน OPcache
คุณสามารถตรวจสอบอัตราการเข้าถึงแคชแบบเรียลไทม์ได้โดยใช้คำสั่ง `php -i | grep opcache` หรือโดยการติดตั้งปลั๊กอิน Opcache Control Panel
อัตราความถูกต้องมากกว่า 95% บ่งชี้ว่าการตั้งค่ามีความเหมาะสม
จากผลการทดสอบประสิทธิภาพอย่างเป็นทางการของ Zend พบว่า การเปิดใช้งาน OPcache สามารถเพิ่มความเร็วในการประมวลผลสคริปต์ PHP ได้สูงสุดถึง 3 เท่า และลดการใช้งาน CPU ลงได้ 50%
นี่ไม่ใช่ทฤษฎีลึกลับอะไรหรอก มันเป็นข้อมูลที่พิสูจน์ได้
สรุป: มุมมองและคำคมสำคัญของผม
ในความคิดของผม OPcache เปรียบเสมือน "เทอร์โบชาร์จเจอร์" สำหรับเว็บไซต์ หากไม่มีมัน PHP ก็เหมือนรถยนต์ที่ไม่มีเทอร์โบชาร์จเจอร์ วิ่งช้าและสิ้นเปลืองน้ำมัน
การเพิ่มประสิทธิภาพ OPcache ไม่ใช่แค่รายละเอียดทางเทคนิค แต่ยังเป็นทางเลือกเชิงกลยุทธ์สำหรับการดำเนินงานของเว็บไซต์อีกด้วย
เพราะความเร็วเท่ากับอัตราการเปลี่ยนลูกค้าเป้าหมายเป็นลูกค้าจริง และประสิทธิภาพเท่ากับความสามารถในการแข่งขัน
คำคมสำคัญ: อนาคตของเว็บไซต์ไม่ได้อยู่ที่ว่าโค้ดนั้นซับซ้อนแค่ไหน แต่ขึ้นอยู่กับว่ามันสามารถตอบสนองได้อย่างรวดเร็วเพียงใด จนผู้ใช้ไม่มีเวลาแม้แต่จะกระพริบตา
ดังนั้น จงหยุดปล่อยให้เซิร์ฟเวอร์สิ้นเปลืองทรัพยากรในลูปที่ไม่เกิดประสิทธิภาพ
ปรับแต่ง HestiaCP OPcache ของคุณให้เหมาะสมตอนนี้ แล้วเว็บไซต์ของคุณจะทำงานได้เร็วขึ้น
คุณต้องการให้ฉันเขียนเทมเพลตการตั้งค่า OPcache ที่ดีที่สุดสำหรับสภาพแวดล้อมการใช้งานจริงของคุณ ซึ่งคุณสามารถคัดลอกและนำไปใช้ในไฟล์ php.ini ได้โดยตรงหรือไม่?
หวัง Chen Weiliang บล็อก ( https://www.chenweiliang.com/ บทความเรื่อง "วิธีเพิ่มประสิทธิภาพ OPcache ใน HestiaCP? การแคช Opcode และการคอมไพล์โค้ด PHP เพื่อให้เว็บไซต์ของคุณทำงานได้เร็วขึ้น" ที่แชร์ไว้ที่นี่ อาจเป็นประโยชน์สำหรับคุณ
ยินดีต้อนรับสู่การแบ่งปันลิงค์ของบทความนี้:https://www.chenweiliang.com/cwl-34197.html
