คู่มือ PHP Auto-Configuration สำหรับ การตั้งค่า Application
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
การเพิ่มประสิทธิภาพทรัพยากรแบบไดนามิกของแพลตฟอร์มช่วยเสริมการใช้งานพื้นฐานที่ได้รับจากเซิร์ฟเวอร์ PHP เพื่อให้เกิดประสิทธิภาพสูงสุดโดยพื้นฐานแล้วเมื่อเปลี่ยนจำนวนทรัพยากร RAM และ CPU ที่จัดสรร (นับเมฆ) แพลตฟอร์มจะปรับคำสั่ง PHP ที่เหมาะสมโดยอัตโนมัติเพื่อให้เหมาะสมกับเงื่อนไขใหม่อย่างไรก็ตามหากจำเป็นคุณสามารถปิดใช้งานการกำหนดค่าอัตโนมัติและระบุพารามิเตอร์ด้วยตนเองภายในไฟล์การกำหนดค่าของเซิร์ฟเวอร์ของคุณได้
ตัวอย่างการกำหนดค่าอัตโนมัติ
เรามาตรวจสอบว่าพารามิเตอร์มีการเปลี่ยนแปลงอย่างไรตามทรัพยากรที่จัดสรร
- เช่นเรามี Environment ที่มีอาปาเช่ PHPแอปพลิเคชันเซิร์ฟเวอร์ภายใน (คลาวด์เล็ต 16 อัน).
ค่านิยมของเตรียมส้อมการกำหนดค่าโมดูลใน/etc/httpd/conf/httpd.confไฟล์มีดังนี้:
2. ตอนนี้ถ้าเราตั้งค่าขีดจำกัดทรัพยากรใหม่สำหรับเซิร์ฟเวอร์ Apache PHP (ก้อนเมฆ 32 ก้อน) และรีเฟรชไฟล์/etc/httpd/conf/httpd.confไฟล์:
ดังที่คุณเห็นค่าคำสั่งจะถูกปรับโดยอัตโนมัติเนื่องจากจำนวนทรัพยากรที่มีอยู่ที่เปลี่ยนแปลง
หลักการเดียวกันนี้ใช้กับเซิร์ฟเวอร์แอปพลิเคชัน PHP อื่นๆทั้งหมด
ปิดใช้งานการเพิ่มประสิทธิภาพอัตโนมัติ
หากต้องการระบุค่าที่กำหนดเองของคุณแทนคำสั่งที่กำหนดค่าโดยอัตโนมัติคุณต้องปิดใช้งานการปรับให้เหมาะสมอัตโนมัติมิฉะนั้นการเปลี่ยนแปลงที่คุณกำหนดเองจะถูกเปลี่ยนกลับในระหว่างการรีสตาร์ท/อัปเดตคอนเทนเนอร์
เคล็ดลับ:คุณสามารถใช้PHP_MEMORY_LIMITและPHP_MAX_EXECUTION_TIMEตัวแปรเพื่อตั้งค่าขีดจำกัดหน่วยความจำ PHP และเวลาดำเนินการสูงสุดโดยไม่ต้องปิดการเพิ่มประสิทธิภาพอัตโนมัติ
ในปัจจุบันคุณต้องดำเนินการต่อไปนี้ตามประเภทเซิร์ฟเวอร์แอปพลิเคชัน PHP ของคุณ:
บันทึก:ค่าคำสั่งที่ไม่เหมาะสมอาจทำให้เซิร์ฟเวอร์ของคุณไม่เสถียรดังนั้นจึงเป็นเช่นนั้นไม่แนะนำเพื่อใช้การเปลี่ยนแปลงด้วยตนเองเว้นแต่คุณจะรู้แน่ชัดว่ากำลังทำอะไรอยู่
การกำหนดค่าอัตโนมัติอัจฉริยะ
หากคุณต้องการเปลี่ยนการตั้งค่าที่กำหนดโดยอัตโนมัติด้วยตนเองคุณจะต้องตั้งค่ารักคอม PaaS_AUTOCONFIGตัวแปร Environmentถึงเท็จ(พิการ).
การดำเนินการแบบเดิม
ลบบรรทัดที่มีเครื่องหมายการปรับให้เหมาะสมที่จุดเริ่มต้นของไฟล์การกำหนดค่าที่เหมาะสม:
- อาปาเช่ PHP- “# เครื่องหมายกำหนดค่าอัตโนมัติ Ruk-Com PaaS” ภายใน/etc/httpd/conf/httpd.confไฟล์
*NGINX PHP- “; เครื่องหมายกำหนดค่าอัตโนมัติ Ruk-Com PaaS” ภายใน/etc/php-fpm.confไฟล์
หลังจากลบสตริงที่เกี่ยวข้องแล้วค่าของพารามิเตอร์จะไม่ได้รับการกำหนดค่าอัตโนมัติโดยกลไกการเพิ่มประสิทธิภาพแพลตฟอร์มเพื่อให้คุณสามารถระบุพารามิเตอร์ที่กำหนดเองได้อย่าลืมที่จะบันทึกไฟล์เพื่อใช้การกำหนดค่าใหม่
การตั้งค่าที่ปรับได้อัตโนมัติ
ประเภทของระบบจัดการและจัดส่งคำขอพื้นฐานจะแตกต่างกันไปตามเซิร์ฟเวอร์แอปพลิเคชัน PHP ที่แตกต่างกันดังนั้นคำสั่งที่ใช้จึงแตกต่างกันเช่นกันอย่างไรก็ตามฟังก์ชันการทำงานของพารามิเตอร์ดังกล่าวอาจคล้ายคลึงกันหากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคำสั่งเหล่านี้สำหรับแอปพลิเคชันเซิร์ฟเวอร์เฉพาะให้ไปที่ส่วนที่เกี่ยวข้องด้านล่าง:
อาปาเช่ PHP
การจัดการคำขอแบบไดนามิกใน Apache PHP ได้รับการ Deploy ด้วยความช่วยเหลือของเตรียมส้อมMulti-Processing Module (MPM) ซึ่งช่วยเปิดเผยศักยภาพของเซิร์ฟเวอร์เต็มรูปแบบคำสั่ง MPM แสดงอยู่ใน Apache หลัก/etc/httpd/conf/httpd.confไฟล์การกำหนดค่า
นี่คือรายการพารามิเตอร์ทั้งหมดที่แพลตฟอร์มกำหนดค่าไว้เตรียมส้อมโมดูล:
- เริ่มเซิร์ฟเวอร์- กำหนดจำนวนกระบวนการเซิร์ฟเวอร์ลูกที่สร้างขึ้นเมื่อเริ่มต้น
- MinSpareServers(MaxSpareServers) - กำหนดจำนวนกระบวนการเซิร์ฟเวอร์ขั้นต่ำ (สูงสุด) ที่ถูกเก็บไว้
- เซิร์ฟเวอร์จำกัด- ตั้งค่าสูงสุดที่อนุญาตสำหรับMaxRequestWorkersคำสั่ง
- MaxRequestWorkers- กำหนดค่าขีดจำกัดของคำขอพร้อมกันที่ต้องดำเนินการ
- MaxConnectionsPerChild- กำหนดจำนวนคำขอที่กระบวนการลูกเดียวสามารถให้บริการได้
ขึ้นอยู่กับทรัพยากรที่ได้รับการจัดสรร (เช่นจำนวนไดนามิกก้อนเมฆสงวนไว้สำหรับเซิร์ฟเวอร์ Apache PHP) และความจุของ CPU ที่ผู้ให้บริการโฮสต์ของคุณให้มาแพลตฟอร์มจะปรับโดยอัตโนมัติเซิร์ฟเวอร์จำกัดและMaxRequestWorkersพารามิเตอร์:
MaxRequestWorkers=เซิร์ฟเวอร์จำกัด= นาที({คอนเทนเนอร์ราม}/ 30MiB,{คอร์นับ}* 5 )
เนื่องจากคำสั่งนี้คำสั่งทั้งสองจึงระบุไว้เท่ากับค่าที่ต่ำกว่าระหว่าง:
- จัดสรรให้กับจำนวน Node ของ RAM หารด้วย 30
- จำนวนคอร์ของฟิสิคัลเซิร์ฟเวอร์ของผู้โฮสต์ที่วางคอนเทนเนอร์ไว้คูณ 5 ครั้ง
ด้วยวิธีนี้พารามิเตอร์จะเปลี่ยนแปลงแบบไดนามิกตามจำนวนคลาวด์เล็ตที่จัดสรรแต่จะไม่ขยายเกินขีดจำกัดของฮาร์ดแวร์
บันทึก:หากคุณต้องการระบุค่าที่กำหนดเองสำหรับคำสั่งเหล่านี้โปรดทราบว่าค่าที่ไม่ถูกต้องอาจทำให้เซิร์ฟเวอร์ Apache PHP ของคุณไม่เสถียร:
- ถ้าเซิร์ฟเวอร์จำกัดสูงกว่าที่จำเป็นมากมีการจัดสรรหน่วยความจำที่ใช้ร่วมกันที่ไม่ได้ใช้ในขณะที่การระบุพารามิเตอร์ต่ำเกินไปจะไม่เปิดเผยศักยภาพด้านประสิทธิภาพของเซิร์ฟเวอร์ทั้งหมด
- MaxRequestWorkersควรใหญ่พอที่จะรองรับคำขอพร้อมกันได้มากเท่าที่คุณคาดว่าจะได้รับและเล็กพอที่จะรับประกันว่ามี RAM เพียงพอ
NGINX PHP
การจัดการคำขอในแอปพลิเคชันเซิร์ฟเวอร์ NGINX PHP ได้รับการจัดการโดยผู้จัดการกระบวนการ FastCGI(FPM) ซึ่งสามารถกำหนดค่าได้ผ่านทาง/ฯลฯ/php-fpm.confไฟล์. มันจะถูกเพิ่มเข้าไปโดยอัตโนมัติรายการโปรดรายการในตัวจัดการไฟล์คอนเทนเนอร์เพื่อการเข้าถึงที่รวดเร็ว:
FPM ทำงานในตามความต้องการโหมด (นคำสั่ง) โดยค่าเริ่มต้นมันสร้างกระบวนการใหม่เมื่อจำเป็น (เช่นตามความต้องการ) และลบกระบวนการที่ไม่ได้ใช้งานออกพารามิเตอร์เพิ่มเติมเพียงอย่างเดียวสำหรับโหมดนี้คือ:
- pm.max_children- กำหนดจำนวนสูงสุดของกระบวนการลูก (เท่ากับจำนวนแกน CPU ที่มีอยู่สำหรับคอนเทนเนอร์แต่ไม่น้อยกว่า 2)
เคล็ดลับ:ค่าที่แน่นอนขึ้นอยู่กับความจุของ CPU ที่ผู้ให้บริการโฮสติ้งของคุณให้ไว้และจำนวนคลาวด์เล็ตที่จัดสรรสำหรับคอนเทนเนอร์ของคุณด้วยวิธีนี้การขยายจำนวน cloudlet ส่งผลให้มีการเติบโตโดยอัตโนมัติของpm.max_childrenพารามิเตอร์.
คำสั่งนี้สามารถกำหนดได้อย่างชัดเจนโดยไม่ต้องปิดการใช้งานการเพิ่มประสิทธิภาพอัตโนมัติผ่านทางที่เหมาะสมPHPFPM_MAX_CHILDRENตัวแปร.
- pm.process_idle_timeout- ตั้งค่าความล่าช้าก่อนที่จะฆ่ากระบวนการที่ไม่ได้ใช้งาน (60วินาที)
นอกจากนี้เพื่อให้ได้ประสิทธิภาพขั้นสูงผู้ฟัง PHP FPM ใช้ซ็อกเก็ตโดเมน UNIX แทน TCP ทั่วไปโซลูชันดังกล่าวเหมาะสมกว่าสำหรับการสื่อสารภายในโฮสต์เดียวกันทำให้สามารถข้ามการตรวจสอบและดำเนินการได้ (เช่นการกำหนดเส้นทาง)
LiteSpeed (LLSMP)
แพลตฟอร์มจะปรับจำนวนกระบวนการของผู้ปฏิบัติงาน LiteSpeed ให้เหมาะสมโดยอัตโนมัติตาม RAM ที่จัดสรรและจำนวนคอร์ CPU ที่รักคอม PaaS_AUTOCONFIGตัวแปร Environmentกำหนดว่าควรเปิดใช้งานคุณสมบัติการกำหนดค่าอัตโนมัติหรือไม่ (จริงตามค่าเริ่มต้น) หรือปิดใช้งาน (เท็จ).
อ้างถึงเว็บเซิร์ฟเวอร์ LiteSpeedคู่มือสำหรับรายละเอียดเพิ่มเติม
