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

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

RUK-COM PAAS / APPLICATION SETTINGS

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

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

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

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

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

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

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

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

  1. เช่นเรามี Environment ที่มีอาปาเช่ PHPApplication Server ภายใน (Cloudlet 16 อัน).

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

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

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

หลักการเดียวกันนี้ใช้กับ Application Server PHP อื่นๆทั้งหมด

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

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

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

ในปัจจุบันคุณต้องดำเนินการต่อไปนี้ตามประเภท Application Server PHP ของคุณ:

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

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

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

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หลังจากลบสตริงที่เกี่ยวข้องแล้วค่าของ Parameter จะไม่ได้รับการกำหนดค่าอัตโนมัติโดยกลไกการเพิ่มประสิทธิภาพ Platform เพื่อให้คุณสามารถระบุ Parameter ที่กำหนดเองได้อย่าลืมที่จะบันทึกไฟล์เพื่อใช้การกำหนดค่าใหม่

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

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

อาปาเช่ PHP

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

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

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

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

MaxRequestWorkers=Server จำกัด= นาที({Container ราม}/ 30MiB,{คอร์นับ}* 5 )

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

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

ด้วยวิธีนี้ Parameter จะเปลี่ยนแปลงแบบไดนามิกตามจำนวน Cloudlet ที่จัดสรรแต่จะไม่ขยายเกินขีดจำกัดของ Hardware

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

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

NGINX PHP

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

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

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

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

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

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

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

LiteSpeed ​​(LLSMP)

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

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