แก้ปัญหา CPU กระชากเร็วใน Nextcloud Preview ด้วยคิวที่กำหนดเวลาไว้
ย้ายการสร้างภาพขนาดย่อไปไว้ในกำหนดการพื้นหลังที่ควบคุมได้ ตัดขนาดภาพตัวอย่างที่ไม่ได้ใช้ และตรวจสอบคิวโดยไม่ทำให้เซิร์ฟเวอร์ Nextcloud ของคุณทำงานหนักเกินไป
เพื่อล้างคำเตือน “PHP OPcache ไม่ได้ถูกกำหนดค่าอย่างถูกต้อง” ของ Nextcloud ให้เปิดคำเตือนแบบเต็มใน การตั้งค่าการดูแลระบบ → ภาพรวม จากนั้นเพิ่มเฉพาะขีดจำกัด OPcache ที่ระบุในไฟล์การกำหนดค่า PHP ที่เว็บเซิร์ฟเวอร์ใช้งานอยู่ รีสตาร์ทบริการ PHP ที่เกี่ยวข้อง และตรวจสอบคำเตือนอีกครั้ง การแก้ไขการกำหนดค่า PHP ผ่านบรรทัดคำสั่งเพียงอย่างเดียวอาจไม่เปลี่ยนแปลงสิ่งที่ Nextcloud ใช้งาน
ตัวอย่างเช่น หาก Nextcloud แจ้งว่าบัฟเฟอร์สตริงที่จัดเก็บไว้ใกล้เต็ม การเพิ่มขนาดopcache.interned_strings_bufferจาก 16 เป็น 32 MB ถือเป็นการปรับค่าเบื้องต้นที่เหมาะสมเมื่อเซิร์ฟเวอร์มี RAM เพียงพอ แต่หากมีคำเตือนอื่นเกี่ยวกับสคริปต์ที่แคชไว้หรือหน่วยความจำที่ใช้ร่วมกัน จะต้องตั้งค่าที่แตกต่างออกไป
OPcache จัดเก็บไบต์โค้ด PHP ที่คอมไพล์แล้วไว้ในหน่วยความจำที่ใช้ร่วมกัน ซึ่งช่วยลดปริมาณการคอมไพล์ที่จำเป็นสำหรับการร้องขอเว็บซ้ำๆ นอกจากนี้ยังสงวนพื้นที่สำหรับสตริงที่จัดเก็บไว้ภายใน ซึ่งช่วยให้ PHP สามารถนำสตริงที่เหมือนกันกลับมาใช้ใหม่ได้ ความจุเหล่านี้เป็นข้อจำกัดที่แยกจากกัน ดังนั้นการขยายความจุหนึ่งจึงไม่จำเป็นต้องแก้ปัญหาการแจ้งเตือนเกี่ยวกับอีกความจุหนึ่ง
ตามเอกสารการปรับแต่งเซิร์ฟเวอร์ Nextcloud 35 แผงควบคุมการดูแลระบบจะแจ้งเตือนเมื่อขนาดของ OPcache เกิน 90% ของความจุที่จัดสรรไว้ ข้อความอาจระบุถึงบัฟเฟอร์สตริงที่จัดเก็บไว้เกือบเต็ม จำนวนสคริปต์ที่แคชไว้มีจำกัด หรือหน่วยความจำที่ใช้ร่วมกันไม่เพียงพอ รายละเอียดเหล่านั้นจะเป็นตัวกำหนดวิธีการแก้ไข
Nextcloud ต้องการ OPcache ด้วยเช่นกันopcache.save_comments=1เพราะมันขึ้นอยู่กับการเก็บรักษาคอมเมนต์ในโค้ด PHP ดังนั้น การปิดใช้งานส่วนขยาย OPcache หรือการปิดใช้งานการเก็บรักษาคอมเมนต์ จึงเป็นปัญหาด้านการตั้งค่า ไม่ใช่เพียงแค่ปัญหาเรื่องขนาดแคชเท่านั้น
ลงชื่อเข้าใช้ในฐานะผู้ดูแลระบบ ไปที่การตั้งค่าการดูแลระบบ → ภาพรวมและอ่านคำเตือน OPcache ทั้งหมด บันทึกคำสั่งที่ถูกต้องหากมีการระบุชื่อไว้ อย่าคิดว่าคำเตือน OPcache ทุกข้อหมายความว่าบัฟเฟอร์สตริงที่จัดเก็บไว้มีขนาดเล็กเกินไป
opcache.interned_strings_bufferสอบopcache.memory_consumptionสอบopcache.max_accelerated_filesสอบopcache.enableและopcache.save_comments.บนเซิร์ฟเวอร์ Debian หรือ Ubuntu ที่ใช้ PHP-FPM การกำหนดค่า PHP มักจะจัดเรียงตามเวอร์ชัน PHP และ API ของเซิร์ฟเวอร์ ตัวอย่างเช่น PHP 8.3 FPM อาจอ่านไฟล์ภายใต้/etc/php/8.3/fpm/conf.d/ในขณะที่โมดูล PHP ของ Apache อาจ/etc/php/8.3/apache2/conf.d/ใช้
หากต้องการดูว่ามีบริการ PHP-FPM ใดบ้างบนโฮสต์ systemd ให้รันคำสั่งต่อไปนี้:
systemctl list-units --type=service 'php*-fpm.service'
ตรวจสอบไฟล์ OPcache ที่เกี่ยวข้อง โดยแทนที่ด้วยเวอร์ชัน PHP ที่ติดตั้งไว้:
sudo ls -l /etc/php/8.3/fpm/conf.d/*opcache*
sudo grep -R 'opcache\.' /etc/php/8.3/fpm/conf.d/
หากไม่พบไฟล์ใด ๆ ให้ตรวจสอบข้อกำหนดหลักphp.iniและข้อกำหนดการบรรจุสำหรับระบบปฏิบัติการของคุณ คำสั่งนี้php --iniมีประโยชน์สำหรับการระบุ การกำหนดค่า PHP แบบ CLIแต่ CLI และ PHP-FPM อาจโหลดการตั้งค่าที่แตกต่างกัน
สำหรับ Docker หรือ Nextcloud All-in-One ให้ตรวจสอบการตั้งค่า PHP ภายในคอนเทนเนอร์ Nextcloudและใช้วิธีการตั้งค่าแบบถาวรที่รองรับ การแก้ไข/etc/phpไฟล์ hosts โดยทั่วไปจะไม่สามารถตั้งค่า PHP ภายในคอนเทนเนอร์ได้ และการแก้ไขไฟล์คอนเทนเนอร์ที่สร้างขึ้นอาจถูกยกเลิกได้เมื่อสร้างคอนเทนเนอร์ใหม่
สำรองไฟล์การกำหนดค่าที่เกี่ยวข้องก่อนทำการเปลี่ยนแปลงใดๆ สำหรับการติดตั้ง PHP-FPM บน Debian/Ubuntu ทั่วไป วิธีการดูแลรักษาวิธีหนึ่งคือการเพิ่มการแทนที่เฉพาะที่ในconf.dไดเร็กทอรี FPM ของ PHP เวอร์ชันนั้นๆ ตรวจสอบให้แน่ใจว่าไดเร็กทอรีนี้ถูกโหลดโดยการติดตั้ง PHP-FPM ของคุณแล้วก่อนดำเนินการต่อ
สำหรับ ตัวอย่าง บัฟเฟอร์สตริงที่จัดเก็บไว้ภายในให้สร้างหรือแก้ไขการแทนที่ภายใน เช่น/etc/php/8.3/fpm/conf.d/99-nextcloud-opcache.ini:
; Example for a warning about interned strings
opcache.interned_strings_buffer=32
ในที่นี้32หมายถึง 32 เมกะไบต์ ไม่ใช่ 32 ไบต์ กำหนดค่าสุดท้ายให้เหมาะสมกับการใช้งานจริงและหน่วยความจำ RAM ที่มีอยู่
หากคำเตือนระบุถึงข้อจำกัดอื่น ให้ใช้ตัวอย่างที่เกี่ยวข้องแทนที่จะบวกทั้งสามอย่างโดยไม่พิจารณาให้ดี:
; Example only: larger shared bytecode cache
opcache.memory_consumption=256
; Example only: allow more cached script keys
opcache.max_accelerated_files=20000
ค่าต่างๆ สำหรับopcache.memory_consumptionมีหน่วยเป็นเมกะไบต์ ในขณะที่opcache.max_accelerated_filesระบุขีดจำกัดของคีย์สคริปต์ เอกสารอ้างอิงการกำหนดค่า OPcache อย่างเป็นทางการของ PHPอธิบายหน่วย ค่าเริ่มต้น และความสามารถในการเปลี่ยนแปลงของค่าเหล่านี้
เมื่อคำเตือนชี้ไปที่ OPcache ที่ถูกปิดใช้งานหรือขาดความคิดเห็น แทนที่จะเป็นปัญหาเรื่องความจุ ให้ตรวจสอบการตั้งค่าเหล่านี้แทน:
opcache.enable=1
opcache.save_comments=1
อย่าปิดเครื่องopcache.validate_timestampsหรือยืดเวลาการใช้งานออกไปมากเกินไปopcache.revalidate_freqเพียงเพื่อละเลยคำเตือนนี้ Nextcloud เตือนว่าการตรวจสอบความถูกต้องของแคชที่ล่าช้าอาจทำให้การเปลี่ยนแปลงการตั้งค่าและการอัปเกรดไม่มีผลทันที
สำหรับตัวอย่างเซิร์ฟเวอร์ที่ใช้งาน PHP 8.3 ผ่าน PHP-FPM ขั้นแรกให้ตรวจสอบความถูกต้องของการกำหนดค่าบริการ จากนั้นรีสตาร์ทบริการที่เกี่ยวข้องในช่วงเวลาการบำรุงรักษาอันสั้น:
sudo php-fpm8.3 -t
sudo systemctl restart php8.3-fpm
แทนที่8.3ด้วยเวอร์ชัน PHP-FPM ที่ติดตั้งไว้ และตรวจสอบชื่อไฟล์ปฏิบัติการและชื่อบริการก่อนเรียกใช้คำสั่งใดคำสั่งหนึ่ง การรีสตาร์ทจะขัดจังหวะคำขอที่จัดการโดยพูลนั้น บน Apache ที่มีmod_phpบริการที่เกี่ยวข้องคือ Apache ไม่ใช่ PHP-FPM สำหรับคอนเทนเนอร์ ให้ใช้ขั้นตอนการรีสตาร์ทหรือการสร้างใหม่ที่ระบุไว้ในเอกสารของการปรับใช้ของคุณโดยรักษาการกำหนดค่าไว้
หากบริการไม่สามารถเริ่มต้นใหม่ได้ ให้กู้คืนการกำหนดค่าที่สำรองไว้ และตรวจสอบบันทึกข้อผิดพลาดของ PHP-FPM หรือเว็บเซิร์ฟเวอร์
หลังจากที่ PHP worker เริ่มทำงานใหม่แล้ว ให้โหลดการตั้งค่าการดูแลระบบ → ภาพรวมอีกครั้ง หากยังคงมีคำเตือนเดิมอยู่ ให้ตรวจสอบว่าคำสั่งที่เปลี่ยนแปลงนั้นถูกโหลดโดย PHP runtime ของเว็บ จริง ๆ ไม่ใช่แค่จาก CLI ตรวจสอบ.iniไฟล์ที่โหลดในภายหลังหรือการแทนที่พูล PHP-FPM ที่มีผลเหนือกว่าค่าของคุณ
บนเซิร์ฟเวอร์ที่คุณควบคุม คุณสามารถตรวจสอบค่า PHP ของเว็บชั่วคราวได้โดยใช้เอนด์พอยต์การวินิจฉัยที่มีการจำกัดการเข้าถึงอย่างเข้มงวดและini_get()ฟังก์ชันของ PHP ห้ามปล่อยให้phpinfo()หน้าเว็บสาธารณะออนไลน์ทิ้งไว้โดยเด็ดขาด เพราะอาจเปิดเผยสภาพแวดล้อม เส้นทาง โมดูล และรายละเอียดการกำหนดค่าที่ละเอียดอ่อนอื่นๆ ลบเอนด์พอยต์การวินิจฉัยออกทันทีหลังจากตรวจสอบเสร็จสิ้น
สำหรับการแจ้งเตือนเรื่องขนาดหน่วยความจำอย่างต่อเนื่อง ให้ตรวจสอบการใช้งาน OPcache จริงภายใต้ปริมาณการใช้งานปกติ แทนที่จะคูณค่าด้วยสองซ้ำ ๆเอกสารประกอบของ PHPopcache_get_status()อธิบายสถิติเกี่ยวกับหน่วยความจำ สตริงที่จัดเก็บไว้ และสคริปต์ที่แคชไว้ ซึ่งมีให้สำหรับกระบวนการ PHP ที่กำลังทำงานอยู่
อิมเมจ Docker อย่างเป็นทางการของ Nextcloud และการติดตั้งแบบ All-in-One มีค่าเริ่มต้นของ PHP เฉพาะตัว อย่าคิดว่าการแก้ไขระดับโฮสต์หรือค่าที่แนะนำจากการติดตั้งอื่นจะคงอยู่ โปรดตรวจสอบที่เก็บ Docker อย่างเป็นทางการของ Nextcloudหรือที่เก็บ All-in-One อย่างเป็นทางการเพื่อดูรูปแบบการกำหนดค่าที่ตรงกับการติดตั้งของคุณ
กลับไปที่การตั้งค่าการดูแลระบบ → ภาพรวมและตรวจสอบให้แน่ใจว่าคำเตือน OPcache ที่ระบุไว้หายไปแล้ว เปิดและโหลดหน้าเว็บ Nextcloud สองสามหน้าเพื่อให้แน่ใจว่าแอปพลิเคชันยังคงตอบสนองได้ตามปกติ หากคำเตือนกลับมาอีกครั้งหลังจากใช้งานตามปกติ ให้ตรวจสอบขีดจำกัดที่วัดได้และการกำหนดค่า PHP ของเว็บอีกครั้ง เป้าหมายคือการเว้นพื้นที่ว่างให้เพียงพอโดยไม่ต้องจัดสรรหน่วยความจำที่ไม่จำเป็นให้กับ OPcache
ย้ายการสร้างภาพขนาดย่อไปไว้ในกำหนดการพื้นหลังที่ควบคุมได้ ตัดขนาดภาพตัวอย่างที่ไม่ได้ใช้ และตรวจสอบคิวโดยไม่ทำให้เซิร์ฟเวอร์ Nextcloud ของคุณทำงานหนักเกินไป
ค้นหาไฟล์ กฎการยกเว้น ปัญหาการเชื่อมต่อ หรือสถานะฐานข้อมูลไคลเอ็นต์ที่ทำให้การซิงค์ Nextcloud หยุดชะงัก จากนั้นตรวจสอบการอัปโหลดและดาวน์โหลดอย่างปลอดภัย
ค้นหาข้อจำกัดของ PHP OPcache ที่ทำให้เกิดคำเตือนของ Nextcloud อัปเดตการตั้งค่า PHP สำหรับเว็บให้ถูกต้อง รีสตาร์ทอย่างปลอดภัย และตรวจสอบผลลัพธ์
เปรียบเทียบ CODE ที่ติดตั้งมากับระบบและ CODE ที่ใช้ Docker จากนั้นเชื่อมต่อ Collabora Online กับ Nextcloud ผ่านพร็อกซีแบบย้อนกลับ HTTPS ที่ปลอดภัย
วางแผนการใช้งาน Nextcloud HA ที่เชื่อถือได้ โดยใช้พื้นที่จัดเก็บข้อมูลร่วมกัน การล็อก Redis การกำหนดเส้นทาง MariaDB ที่คำนึงถึงจำนวนเสียงข้างมาก และการตรวจสอบการทำงานล้มเหลวที่ใช้งานได้จริง
กำหนดค่าและตรวจสอบรีเลย์ TURN ที่สามารถเข้าถึงได้สำหรับ Nextcloud Talk เมื่อไฟร์วอลล์หรือ NAT ที่จำกัดปิดกั้นสื่อการโทรโดยตรง
ใช้รายงานไฟล์ที่ไม่ถูกต้องเพื่อระบุโค้ด Nextcloud ที่เปลี่ยนแปลง หายไป หรือเกินมา กู้คืนไฟล์ที่เชื่อถือได้อย่างปลอดภัย และตรวจสอบผลลัพธ์
ตั้งค่า OAuth2 สำหรับ Nextcloud Mail กับ Gmail หรือ Microsoft 365 ตรวจสอบการรับและส่ง และแก้ไขปัญหาการขอความยินยอมและข้อผิดพลาด SMTP ทั่วไป
ใช้ OCC เพื่อกู้คืนการเข้าถึง Nextcloud ตรวจสอบสถานะการย้ายฐานข้อมูล และเลือกคำสั่งที่ถูกต้องสำหรับการติดตั้งแบบเก็บถาวร Docker หรือ Snap
เชื่อมต่อ Nextcloud กับ LDAP หรือ Active Directory จำกัดการเข้าถึงด้วยตัวกรองผู้ใช้และกลุ่ม และตรวจสอบการรับรองความถูกต้องที่ปลอดภัยก่อนเปิดใช้งาน