การเพิ่มประสิทธิภาพการทำงานของ Apache2

หลายคนใช้ apache2 เป็นเว็บเซิร์ฟเวอร์ อย่างไรก็ตาม มีเพียงไม่กี่คนที่คิดที่จะเพิ่มประสิทธิภาพการทำงาน ซึ่งส่งผลโดยตรงต่อความเร็วในการโหลดหน้าเว็บไซต์ ความเร็วของสคริปต์การประมวลผล (โดยเฉพาะ PHP) รวมถึงการเพิ่มภาระของ CPU และจำนวน RAM ที่ใช้เพิ่มขึ้น

ดังนั้นคู่มือต่อไปนี้ควรช่วยเหลือผู้ใช้มือใหม่ (และไม่เพียงเท่านั้น)
ตัวอย่างทั้งหมดด้านล่างนี้ใช้กับ Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3

ดังนั้นขอเริ่มต้น

1. ปิดการใช้งานโมดูลที่ไม่ได้ใช้

วิธีแรกคือการปิดการใช้งานโมดูลที่คุณไม่ได้ใช้:

รายการโมดูลที่ใช้อยู่ในปัจจุบันสามารถดูได้ด้วยคำสั่ง:

apache2ctl -M

หากต้องการปิดการใช้งานโมดูลให้ใช้คำสั่ง:

a2dismod *название модуля*

ดังนั้น หากต้องการเปิดใช้งานโมดูล ให้ใช้คำสั่ง:

a2enmod *название модуля*

โปรดทราบว่าเมื่อใช้ a2dismodจะต้องเขียนชื่อของโมดูลโดยไม่มีโมดูลคำ

เช่น หากคุณอยู่ในเอาท์พุตของคำสั่ง apache2ctl -M ได้เห็น พร็อกซี_โมดูลจากนั้นหากต้องการปิดการใช้งานคุณต้องใช้คำสั่ง - พร็อกซี a2dismod

โมดูลที่โหลดระบบมากที่สุด (จากประสบการณ์ส่วนตัว) คือ:

  • PHP, Ruby, Perl และโมดูลอื่นๆ สำหรับภาษาสคริปต์ต่างๆ
  • SSL
  • เขียนใหม่
  • CGI

ดังนั้นในกรณีที่คุณไม่ต้องการโมดูลเหล่านี้ ฉันขอแนะนำให้ปิดการใช้งานโมดูลเหล่านี้

นอกจากนี้หลังจากปิดการใช้งานโมดูลใด ๆ ฉันขอแนะนำให้ใช้คำสั่ง - การกำหนดค่า apache2ctlซึ่งจะตรวจสอบการกำหนดค่าของไซต์ที่ใช้ และหากโมดูลที่ปิดใช้งานใดๆ จำเป็นสำหรับไซต์เหล่านั้น ก็จะทำให้เกิดข้อผิดพลาด

2. การเปลี่ยน MPM (Multi-Processing Module) และใช้ php-fpm

ตามค่าเริ่มต้นหลังการติดตั้ง apache2 จะใช้ MPM Prefork (1 เธรดต่อ 1 การเชื่อมต่อ) ซึ่งจะลดประสิทธิภาพลงอย่างมาก แต่ในขณะเดียวกันก็ปรับปรุงความเสถียรและความปลอดภัย

แต่เพื่อเพิ่มประสิทธิภาพ ฉันขอแนะนำให้ใช้ MPM Worker ซึ่งช่วยให้คุณสามารถใช้หลายเธรดต่อการเชื่อมต่อได้

เพื่อเปิดใช้งานเราใช้คำสั่งต่อไปนี้:

a2dismod mpm_prefork  //Отключаем prefork
a2dismod php7.3  //Отключаем модуль php, который зависит от prefork
a2enmod mpm_worker  //Включаем worker

อย่างไรก็ตาม เมื่อใช้ Worker คุณอาจประสบปัญหาเนื่องจาก... โมดูล php7.3 ขึ้นอยู่กับโมดูล Prefork

เพื่อแก้ปัญหานี้ มาติดตั้งโมดูล php7.3-fpm ซึ่งจะใช้ในการรันสคริปต์ PHP:

apt-get update && apt-get install php7.3-fpm  //Устанавливаем
systemctl enable php7.3-fpm && systemctl start php7.3-fpm  //Добавляем в автозагрузку и запускаем
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf  //Включаем модуль и конфиг для него

เป็นที่น่าสังเกตว่าการใช้ php-fpm จะลดจำนวน RAM ที่ใช้โดยกระบวนการ apache2 และเพิ่มความเร็วในการประมวลผลสคริปต์ PHP เล็กน้อย

3 ข้อสรุป

ดังนั้น ด้วยการกระทำง่ายๆ ดังกล่าว เราจึงสามารถเพิ่มประสิทธิภาพและลดภาระบนเครื่องจักรได้ (ในกรณีนี้คือ RPI3)

แน่นอนว่ามีตัวเลือกการเพิ่มประสิทธิภาพอื่น ๆ อีกหลายร้อยตัวเลือก เช่น การเปิดใช้งานการบีบอัด (ซึ่งมีประโยชน์จริงๆ แต่ส่วนใหญ่เปิดใช้งานไว้ตามค่าเริ่มต้นแล้ว) การเปลี่ยนการตั้งค่า MPM (ไฟล์การกำหนดค่า) การปิดใช้งาน HostnameLookups ฯลฯ แต่ในบทความนี้ ฉันพยายาม สะท้อน นี่คือประเด็นที่ช่วยฉันได้มากที่สุด และฉันหวังว่าจะช่วยเหลือผู้อื่นได้

ที่มา: will.com

เพิ่มความคิดเห็น