ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บนแพลตฟอร์ม

RUK-COM PAAS / APPLICATION SETTINGS

คู่มือ PHP Auto-Configuration สำหรับ การตั้งค่า Application

คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี

ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง

คู่มือภาษาไทย

คำสั่ง ชื่อเมนู พารามิเตอร์ และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง

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

ตัวอย่างการกำหนดค่าอัตโนมัติ

เรามาตรวจสอบว่าพารามิเตอร์มีการเปลี่ยนแปลงอย่างไรตามทรัพยากรที่จัดสรร

  1. เช่นเรามี Environment ที่มีอาปาเช่ PHPแอปพลิเคชันเซิร์ฟเวอร์ภายใน (คลาวด์เล็ต 16 อัน).

ค่านิยมของเตรียมส้อมการกำหนดค่าโมดูลใน/etc/httpd/conf/httpd.confไฟล์มีดังนี้:

Image 37: Apache PHP auto-configuration 16 cloudlets2. ตอนนี้ถ้าเราตั้งค่าขีดจำกัดทรัพยากรใหม่สำหรับเซิร์ฟเวอร์ Apache PHP (ก้อนเมฆ 32 ก้อน) และรีเฟรชไฟล์/etc/httpd/conf/httpd.confไฟล์:

Image 38: Apache PHP auto-configuration 32 cloudletsดังที่คุณเห็นค่าคำสั่งจะถูกปรับโดยอัตโนมัติเนื่องจากจำนวนทรัพยากรที่มีอยู่ที่เปลี่ยนแปลง

หลักการเดียวกันนี้ใช้กับเซิร์ฟเวอร์แอปพลิเคชัน PHP อื่นๆทั้งหมด

ปิดใช้งานการเพิ่มประสิทธิภาพอัตโนมัติ

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

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

ในปัจจุบันคุณต้องดำเนินการต่อไปนี้ตามประเภทเซิร์ฟเวอร์แอปพลิเคชัน PHP ของคุณ:

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

การกำหนดค่าอัตโนมัติอัจฉริยะ

หากคุณต้องการเปลี่ยนการตั้งค่าที่กำหนดโดยอัตโนมัติด้วยตนเองคุณจะต้องตั้งค่ารักคอม PaaS_AUTOCONFIGตัวแปร Environmentถึงเท็จ(พิการ).

Image 41: PHP auto-config variable

การดำเนินการแบบเดิม

ลบบรรทัดที่มีเครื่องหมายการปรับให้เหมาะสมที่จุดเริ่มต้นของไฟล์การกำหนดค่าที่เหมาะสม:

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

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

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

การตั้งค่าที่ปรับได้อัตโนมัติ

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

อาปาเช่ PHP

การจัดการคำขอแบบไดนามิกใน Apache PHP ได้รับการ Deploy ด้วยความช่วยเหลือของเตรียมส้อมMulti-Processing Module (MPM) ซึ่งช่วยเปิดเผยศักยภาพของเซิร์ฟเวอร์เต็มรูปแบบคำสั่ง MPM แสดงอยู่ใน Apache หลัก/etc/httpd/conf/httpd.confไฟล์การกำหนดค่า

Image 46: Apache PHP httpd.conf fileนี่คือรายการพารามิเตอร์ทั้งหมดที่แพลตฟอร์มกำหนดค่าไว้เตรียมส้อมโมดูล:

  • เริ่มเซิร์ฟเวอร์- กำหนดจำนวนกระบวนการเซิร์ฟเวอร์ลูกที่สร้างขึ้นเมื่อเริ่มต้น
  • MinSpareServers(MaxSpareServers) - กำหนดจำนวนกระบวนการเซิร์ฟเวอร์ขั้นต่ำ (สูงสุด) ที่ถูกเก็บไว้
  • เซิร์ฟเวอร์จำกัด- ตั้งค่าสูงสุดที่อนุญาตสำหรับMaxRequestWorkersคำสั่ง
  • MaxRequestWorkers- กำหนดค่าขีดจำกัดของคำขอพร้อมกันที่ต้องดำเนินการ
  • MaxConnectionsPerChild- กำหนดจำนวนคำขอที่กระบวนการลูกเดียวสามารถให้บริการได้

Image 47: Apache PHP prefork module configsขึ้นอยู่กับทรัพยากรที่ได้รับการจัดสรร (เช่นจำนวนไดนามิกก้อนเมฆสงวนไว้สำหรับเซิร์ฟเวอร์ Apache PHP) และความจุของ CPU ที่ผู้ให้บริการโฮสต์ของคุณให้มาแพลตฟอร์มจะปรับโดยอัตโนมัติเซิร์ฟเวอร์จำกัดและMaxRequestWorkersพารามิเตอร์:

MaxRequestWorkers=เซิร์ฟเวอร์จำกัด= นาที({คอนเทนเนอร์ราม}/ 30MiB,{คอร์นับ}* 5 )

เนื่องจากคำสั่งนี้คำสั่งทั้งสองจึงระบุไว้เท่ากับค่าที่ต่ำกว่าระหว่าง:

  • จัดสรรให้กับจำนวน Node ของ RAM หารด้วย 30
  • จำนวนคอร์ของฟิสิคัลเซิร์ฟเวอร์ของผู้โฮสต์ที่วางคอนเทนเนอร์ไว้คูณ 5 ครั้ง

ด้วยวิธีนี้พารามิเตอร์จะเปลี่ยนแปลงแบบไดนามิกตามจำนวนคลาวด์เล็ตที่จัดสรรแต่จะไม่ขยายเกินขีดจำกัดของฮาร์ดแวร์

บันทึก:หากคุณต้องการระบุค่าที่กำหนดเองสำหรับคำสั่งเหล่านี้โปรดทราบว่าค่าที่ไม่ถูกต้องอาจทำให้เซิร์ฟเวอร์ Apache PHP ของคุณไม่เสถียร:

  • ถ้าเซิร์ฟเวอร์จำกัดสูงกว่าที่จำเป็นมากมีการจัดสรรหน่วยความจำที่ใช้ร่วมกันที่ไม่ได้ใช้ในขณะที่การระบุพารามิเตอร์ต่ำเกินไปจะไม่เปิดเผยศักยภาพด้านประสิทธิภาพของเซิร์ฟเวอร์ทั้งหมด
  • MaxRequestWorkersควรใหญ่พอที่จะรองรับคำขอพร้อมกันได้มากเท่าที่คุณคาดว่าจะได้รับและเล็กพอที่จะรับประกันว่ามี RAM เพียงพอ

NGINX PHP

การจัดการคำขอในแอปพลิเคชันเซิร์ฟเวอร์ NGINX PHP ได้รับการจัดการโดยผู้จัดการกระบวนการ FastCGI(FPM) ซึ่งสามารถกำหนดค่าได้ผ่านทาง/ฯลฯ/php-fpm.confไฟล์. มันจะถูกเพิ่มเข้าไปโดยอัตโนมัติรายการโปรดรายการในตัวจัดการไฟล์คอนเทนเนอร์เพื่อการเข้าถึงที่รวดเร็ว:

Image 48: NGINX PHP php-fpm.conf fileFPM ทำงานในตามความต้องการโหมด (คำสั่ง) โดยค่าเริ่มต้นมันสร้างกระบวนการใหม่เมื่อจำเป็น (เช่นตามความต้องการ) และลบกระบวนการที่ไม่ได้ใช้งานออกพารามิเตอร์เพิ่มเติมเพียงอย่างเดียวสำหรับโหมดนี้คือ:

  • pm.max_children- กำหนดจำนวนสูงสุดของกระบวนการลูก (เท่ากับจำนวนแกน CPU ที่มีอยู่สำหรับคอนเทนเนอร์แต่ไม่น้อยกว่า 2)

เคล็ดลับ:ค่าที่แน่นอนขึ้นอยู่กับความจุของ CPU ที่ผู้ให้บริการโฮสติ้งของคุณให้ไว้และจำนวนคลาวด์เล็ตที่จัดสรรสำหรับคอนเทนเนอร์ของคุณด้วยวิธีนี้การขยายจำนวน cloudlet ส่งผลให้มีการเติบโตโดยอัตโนมัติของpm.max_childrenพารามิเตอร์.

คำสั่งนี้สามารถกำหนดได้อย่างชัดเจนโดยไม่ต้องปิดการใช้งานการเพิ่มประสิทธิภาพอัตโนมัติผ่านทางที่เหมาะสมPHPFPM_MAX_CHILDRENตัวแปร.

  • pm.process_idle_timeout- ตั้งค่าความล่าช้าก่อนที่จะฆ่ากระบวนการที่ไม่ได้ใช้งาน (60วินาที)

Image 49: NGINX PHP FastCGI process manager configsนอกจากนี้เพื่อให้ได้ประสิทธิภาพขั้นสูงผู้ฟัง PHP FPM ใช้ซ็อกเก็ตโดเมน UNIX แทน TCP ทั่วไปโซลูชันดังกล่าวเหมาะสมกว่าสำหรับการสื่อสารภายในโฮสต์เดียวกันทำให้สามารถข้ามการตรวจสอบและดำเนินการได้ (เช่นการกำหนดเส้นทาง)

LiteSpeed ​​(LLSMP)

แพลตฟอร์มจะปรับจำนวนกระบวนการของผู้ปฏิบัติงาน LiteSpeed ​​ให้เหมาะสมโดยอัตโนมัติตาม RAM ที่จัดสรรและจำนวนคอร์ CPU ที่รักคอม PaaS_AUTOCONFIGตัวแปร Environmentกำหนดว่าควรเปิดใช้งานคุณสมบัติการกำหนดค่าอัตโนมัติหรือไม่ (จริงตามค่าเริ่มต้น) หรือปิดใช้งาน (เท็จ).

อ้างถึงเว็บเซิร์ฟเวอร์ LiteSpeedคู่มือสำหรับรายละเอียดเพิ่มเติม