การกำหนดค่าอัตโนมัติสำหรับ Application Server PHP
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
วัตถุประสงค์
บทความนี้อธิบายการกำหนดค่าอัตโนมัติสำหรับ Application Server PHP บน Ruk-Com Cloud PaaS โดยจัดลำดับขั้นตอนและจุดตรวจสอบสำหรับการนำไปใช้งานจริง
ก่อนเริ่มดำเนินการ
- เข้าสู่ระบบด้วยบัญชีที่มีสิทธิ์จัดการ Environment ที่เกี่ยวข้อง
- ตรวจสอบชื่อ Environment, Region และ Resource เป้าหมายก่อนบันทึกการเปลี่ยนแปลง
- สำรองข้อมูลหรือกำหนดแผนย้อนกลับก่อนแก้ไขระบบ Production
การจัดระเบียบองค์ประกอบ Resource แบบ dynamic ให้สมบูรณ์และเสริม PHP เพื่อเพิ่มประสิทธิภาพสูงสุดสำหรับการรวม PHP เข้ากับ PaaS เมื่อเปลี่ยนจำนวน Resource ที่จัดสรรสำหรับ environment ของคุณ (เช่นจำนวน cloudlets) โดยจะปรับคำสั่ง PHP ที่เหมาะสมอัตโนมัติเพื่อให้เหมาะสมกับเงื่อนไขใหม่ อย่างไรก็ตาม คุณยังคงกำหนดค่า Parameter ได้ด้วยตนเองภายใน file กำหนดค่า uration
ประเภทของระบบการจัดการคำขอพื้นฐานและระบบการส่งที่แตกต่างกันไปตาม PHP Application Server ที่ต่างกันดังนั้นคำสั่งที่ใช้ก็จะแตกต่างกันด้วย อย่างไรก็ตามฟังก์ชันของ Parameter ดังกล่าวอาจคล้ายคลึงกัน หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่งเหล่านี้สำหรับ Application Server ให้ดูส่วนที่เกี่ยวข้องด้านล่าง:
นอกจากนี้คุณสามารถเรียนรู้วิธีการทำงานของ Auto-Configuration หรือวิธีปิดใช้งานการเพิ่มประสิทธิภาพอัตโนมัติโดยการกำหนดค่าใหม่ด้วยตนเองสำหรับคำสั่งเหล่านี้
Apache PHP การตั้งค่าที่ปรับได้อัตโนมัติ
การจัดการคำขอแบบไดนามิกใน Apache PHP โดยใช้เตรียมส้อมMulti-Processing Module (MPM) ซึ่งช่วยเปิดเผยการเพิ่มศักยภาพของ Server ได้อย่างเต็มที่ คำสั่ง MPM แสดงอยู่ในไฟล์ กำหนดค่า uration หลักของ Apache/etc/httpd/conf/httpd.conf

รายการสำหรับ Parameter ทั้งหมดที่กำหนดค่าสำหรับเตรียมส้อมโมดูล:
- เริ่ม Server- เซ็ตจำนวนของกระบวน child server ที่สร้างขึ้นเมื่อเริ่มต้น
- MinSpareServers(MaxSpareServers) - กำหนดจำนวนการประมวลผล Server ขั้นต่ำ (สูงสุด) ที่เก็บไว้สำรอง
- Server จำกัด- ตั้งค่าสูงสุดที่อนุญาตสำหรับคำสั่ง MaxRequestWorkers
- MaxConnectionsPerChild- กำหนดจำนวนคำขอที่กระบวนการ single child สามารถให้บริการได้

ขึ้นอยู่กับ Resource ที่จัดสรร (เช่น dynamic cloudlets ที่จองไว้สำหรับ Apache PHP server) และความจุของ CPU ที่ผู้ให้บริการ Host ของคุณจัดหาโดยเฉพาะ Platform จะปรับ ParameterServer จำกัดและMaxRequestWorkersโดยอัตโนมัติ:
MaxRequestWorkers=Server จำกัด= นาที({Container ราม}/ 30MiB, {คอร์นับ}* 5 )
เนื่องจากคำสั่งนี้ คำสั่งทั้งสองจะถูกระบุเท่ากับค่าที่ต่ำกว่าระหว่าง:
- จัดสรรให้กับจำนวน node ของ RAM หารด้วย 30
- จำนวนคอร์ของ Server จริงของ Host ที่ Container วางอยู่ คูณด้วย 5
ด้วยวิธีนี้ Parameter จะเปลี่ยนแปลงแบบไดนามิกตามจำนวน cloudlets ที่จัดสรรแต่จะไม่ขยายเกินขีดจำกัดของ Hardware
หมายเหตุ:หากคุณต้องการระบุค่าที่กำหนดเองสำหรับคำสั่งเหล่านี้ โปรดระวังว่าค่าที่ไม่ถูกต้องอาจทำให้ Apache PHP server ไม่เสถียร
- ถ้าServer จำกัดสูงกว่าที่จำเป็นมาก shared memory ที่ไม่ได้ใช้จะถูกจัดสรร; ถ้าระบุ Parameter ต่ำเกินไปจะไม่แสดงให้เห็นประสิทธิภาพของ Server ทั้งหมดที่อาจเกิดขึ้นได้
-MaxRequestWorkersควรใหญ่พอที่จะรองรับคำขอพร้อมกันได้มากเท่าที่คุณต้องการและมีขนาดเล็กพอที่จะรับรองว่ามี RAM เพียงพอ
คุณอาจสนใจวิธีการทำงานของ Auto-Configuration หรือวิธีปิดใช้งานการเพิ่มประสิทธิภาพอัตโนมัติเพื่อตั้งค่าที่คุณกำหนดเองสำหรับคำสั่งเหล่านี้
การตั้งค่าที่ปรับได้อัตโนมัติ NGINX PHP
การจัดการคำขอใน NGINX PHP Application Server ได้รับการจัดการโดย FastCGI Process Manager (FPM) ซึ่งสามารถกำหนดค่าผ่านไฟล์ /etc/php-fpm.conf ซึ่งถูกเพิ่มโดยอัตโนมัติในรายการโปรดที่ file manager Container สำหรับการเข้าถึงอย่างรวดเร็ว:

FPM ทำงานในโหมดตามคำขอตามความต้องการ(คำสั่งน) ค่าเริ่มต้น โดยจะสร้างกระบวนการใหม่เมื่อจำเป็น (เช่น ตามคำขอ) และกำจัดกระบวนการที่ไม่ได้ใช้งาน Parameter เพิ่มเติมสำหรับโหมดนี้คือ:
- pm.max_children- กำหนดจำนวนสูงสุดของ child processes (เท่ากับจำนวนของ CPU core ที่พร้อมใช้งานสำหรับ Container แต่ไม่น้อยกว่า 2)
เคล็ดลับ:ค่าที่แน่นอนขึ้นอยู่กับความจุของ CPU ที่ให้บริการโดยผู้ให้บริการ Host ของคุณโดยเฉพาะและจำนวน cloudlets ที่จัดสรรสำหรับ Container ด้วยวิธีนี้ การขยายจำนวน cloudlets จะส่งผลให้ Parameter pm.max_children เพิ่มขึ้นโดยอัตโนมัติ
คำสั่งนี้สามารถกำหนดได้อย่างชัดเจนโดยไม่ต้องปิดใช้งานการเพิ่มประสิทธิภาพอัตโนมัติผ่านตัวแปรที่เหมาะสมPHPFPM_MAX_CHILDREN
- pm.process_idle_timeout- ตั้งค่า delay ก่อนที่จะทำลายการดำเนินการที่ไม่ได้ใช้งาน (60 วินาที)

หากจำเป็น คุณสามารถปิดใช้งานการเพิ่มประสิทธิภาพอัตโนมัติเพื่อเปลี่ยนโหมด FPM และปรับคำสั่งอื่นๆ (โปรดระวัง ค่าที่ไม่ถูกต้องอาจทำให้ Server NGINX PHP ไม่เสถียร)
นอกจากนี้เพื่อให้ได้ประสิทธิภาพสูง ตัวฟัง PHP FPM ใช้ UNIX domain socket แทน TCP ทั่วไป โซลูชันดังกล่าวเหมาะสมกว่าสำหรับการสื่อสารภายใน Host เดียวกันทำให้สามารถข้ามการตรวจสอบและการดำเนินการบางอย่างได้ (เช่น การกำหนดเส้นทาง)
วิธีการทำงานของ PHP Auto-Configuration
คุณสามารถตรวจสอบ Parameter ที่กล่าวถึงข้างต้นว่ามีการเปลี่ยนแปลงอย่างไรตาม Resource ที่จัดสรร ยกตัวอย่างเช่น Apache PHP server:
1.สร้างPHP environment ใหม่ด้วยอาปาเช่ PHPApplication Server ภายใน (หากคุณยังไม่มี)
จากนั้นคลิกปุ่มการกำหนดค่าสำหรับ Node นี้และค้นหาการกำหนดค่าโมดูลเตรียมส้อมในไฟล์/etc/httpd/conf/httpd.conf

2. ตอนนี้ใช้ปุ่มเปลี่ยน TopologyEnvironmentเพื่อตั้งค่าขีดจำกัด Resource ใหม่สำหรับ Apache PHP server (เช่น 32 cloudlets) Refresh ไฟล์/etc/httpd/conf/httpd.confและเปรียบเทียบค่าของ Parameter prefork กับค่าในขั้นตอนก่อนหน้า

อย่างที่คุณเห็น ค่าของคำสั่งเพิ่มขึ้นโดยอัตโนมัติเนื่องจากมีการจัดสรร Resource ที่พร้อมใช้งานมากขึ้น ดังนั้นการเพิ่มประสิทธิภาพอัตโนมัติจึงทำงานในทำนองเดียวกัน เมื่อลดจำนวน cloudlets ลงค่า Parameter เหล่านี้จะลดลงไปด้วย
วิธีปิดใช้งานการเพิ่มประสิทธิภาพอัตโนมัติ
หากต้องการระบุค่าที่กำหนดเองแทนคำสั่งที่กำหนดค่าโดยอัตโนมัติ คุณต้องปิดใช้งานการเพิ่มประสิทธิภาพอัตโนมัติ มิฉะนั้นการเปลี่ยนแปลงที่คุณกำหนดเองจะถูกเปลี่ยนกลับระหว่างการ Restart/อัปเดต Container
เพิ่มเติม:ค่าคำสั่งที่ไม่เหมาะสมอาจทำให้ Server ของคุณไม่เสถียร ดังนั้นจึงไม่แนะนำให้ใช้การเปลี่ยนแปลงด้วยตนเองเว้นแต่คุณจะรู้ว่ากำลังทำอะไรอยู่
หากต้องการเปลี่ยนการตั้งค่าที่กำหนดค่าอัตโนมัติด้วยตนเองคุณต้องตั้งค่าตัวแปร environmentRuk-Com PaaS_AUTOCONFIGให้เป็น false

การใช้งานแบบเดิม
ใน Container เก่า คุณต้องลบบรรทัดที่มีเครื่องหมายการเพิ่มประสิทธิภาพ Ruk-Com PaaS ที่จุดเริ่มต้นของไฟล์การกำหนดค่าที่เกี่ยวข้อง:
- อาปาเช่ PHP- “# เครื่องหมายการกำหนดค่าอัตโนมัติ Ruk-Com PaaS” ภายในไฟล์/etc/httpd/conf/httpd.conf

- NGINX PHP- “; เครื่องหมายการกำหนดค่าอัตโนมัติ Ruk-Com PaaS” ภายในไฟล์/etc/php-fpm.conf

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