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

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

RUK-COM PAAS / APPLICATION SETTINGS

การกำหนดค่าอัตโนมัติสำหรับ 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

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

รายการสำหรับ Parameter ทั้งหมดที่กำหนดค่าสำหรับเตรียมส้อมโมดูล:

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

ขึ้นอยู่กับ 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 สำหรับการเข้าถึงอย่างรวดเร็ว:

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

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 วินาที)
ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

หากจำเป็น คุณสามารถปิดใช้งานการเพิ่มประสิทธิภาพอัตโนมัติเพื่อเปลี่ยนโหมด 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

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS
ค่าของคำสั่งสำหรับ cloudlets ปัจจุบันกรณีนี้คือ 16

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

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

อย่างที่คุณเห็น ค่าของคำสั่งเพิ่มขึ้นโดยอัตโนมัติเนื่องจากมีการจัดสรร Resource ที่พร้อมใช้งานมากขึ้น ดังนั้นการเพิ่มประสิทธิภาพอัตโนมัติจึงทำงานในทำนองเดียวกัน เมื่อลดจำนวน cloudlets ลงค่า Parameter เหล่านี้จะลดลงไปด้วย

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

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

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

หากต้องการเปลี่ยนการตั้งค่าที่กำหนดค่าอัตโนมัติด้วยตนเองคุณต้องตั้งค่าตัวแปร environmentRuk-Com PaaS_AUTOCONFIGให้เป็น false

ภาพประกอบขั้นตอนการใช้งาน Ruk-Com Cloud PaaS

การใช้งานแบบเดิม

ใน Container เก่า คุณต้องลบบรรทัดที่มีเครื่องหมายการเพิ่มประสิทธิภาพ Ruk-Com PaaS ที่จุดเริ่มต้นของไฟล์การกำหนดค่าที่เกี่ยวข้อง:

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

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