คำตอบสั้นๆ: ติดตั้งแอป Preview Generator เปิดใช้งาน เรียกใช้การสร้างตัวอย่างเบื้องต้นที่กำหนดขอบเขตอย่างระมัดระวัง จากนั้นกำหนดเวลาการทำงานocc preview:pre-generateในช่วงเวลาที่ไม่ค่อยมีการใช้งาน นอกจากนี้ ควรจำกัดขนาดของตัวอย่างและจำนวนตัวอย่างใหม่ที่ Nextcloud สร้างขึ้นในแต่ละครั้ง แอปนี้จะย้ายการทำงานออกไปจากช่วงเวลาที่ผู้ใช้เปิดไฟล์ มันไม่ได้กำหนดขีดจำกัดการใช้งาน CPU ที่แน่นอน และอาจทำให้การใช้งานดิสก์เพิ่มขึ้น
การตั้งค่านี้เหมาะสำหรับเซิร์ฟเวอร์ Nextcloud ที่คุณติดตั้งเอง ซึ่งภาพขนาดย่ออาจทำให้ CPU ทำงานหนักขึ้นอย่างเห็นได้ชัดระหว่างการเรียกดู โดยเฉพาะอย่างยิ่งบนเซิร์ฟเวอร์ขนาดเล็กที่มีคลังภาพหรือเอกสารอยู่แล้ว การตั้งค่านี้จะมีประโยชน์น้อยลงหากอินสแตนซ์ของคุณใช้การเข้ารหัสฝั่งเซิร์ฟเวอร์: โครงการ Preview Generator ระบุว่าการเข้ารหัสเป็นสิ่งที่เข้ากันไม่ได้ การโฮสต์แบบจัดการ, Nextcloud AIO, Docker และการติดตั้งแพ็กเกจก็ใช้เส้นทางคำสั่งที่แตกต่างกัน ดังนั้นโปรดปรับคำสั่งให้เข้ากับการใช้งานของคุณ อย่าเรียกใช้คำสั่งจากไดเร็กทอรีที่คาดเดาเอาเอง
คำแนะนำการใช้งานแอปในปัจจุบันแนะนำให้ติดตั้งและเปิดใช้งานแอป เรียกใช้งานpreview:generate-allเพียงครั้งเดียว และตั้งเวลาpreview:pre-generateสำหรับการเปลี่ยนแปลงไฟล์ในภายหลัง คำสั่งแรกอาจใช้ทรัพยากรมากหากมีไลบรารีขนาดใหญ่ ควรเริ่มต้นด้วยผู้ใช้หรือโฟลเดอร์เดียวและผู้ทำงานหนึ่งรายตรวจสอบ README ของโปรเจ็กต์ Preview Generator และตัวเลือกคำสั่ง แล้วเลือกเวอร์ชันที่เข้ากันได้กับเวอร์ชัน Nextcloud ของคุณในNextcloud App Store
1. ยืนยันว่านี่คือวิธีแก้ไขที่ถูกต้อง
ขั้นแรก ให้ตรวจสอบว่า CPU ทำงานหนักขึ้นเมื่อใด หากเกิดขึ้นเมื่อผู้ใช้เปิดโฟลเดอร์ที่มีรูปภาพจำนวนมากหรือเอกสารที่ต้องการดูตัวอย่าง การสร้างตัวอย่างล่วงหน้าอาจช่วยย้ายงานส่วนใหญ่ไปเป็นงานที่กำหนดเวลาไว้ได้ หาก CPU ทำงานหนักอยู่ตลอดเวลาแม้ไม่มีใครกำลังใช้งาน หรือการทำงานที่พุ่งสูงขึ้นเกิดขึ้นพร้อมกับบริการอื่น โปรแกรมสร้างตัวอย่างอาจไม่สามารถแก้ไขสาเหตุได้ ตรวจสอบโปรแกรมตรวจสอบกระบวนการทำงานและบันทึกของ Nextcloud ก่อนเปลี่ยนแปลงการตั้งค่า
โปรแกรมสร้างตัวอย่าง (Preview Generator) จะบันทึกไฟล์ที่ถูกเพิ่มหรือเปลี่ยนแปลง และประมวลผลในงานเบื้องหลัง ตัวอย่างที่มีอยู่แล้วจะช่วยลดต้นทุนในการขอตัวอย่างในภายหลัง แต่ตัวอย่างที่ขาดหายไปยังสามารถสร้างได้ตามต้องการก่อนที่งานที่กำหนดไว้จะถึงคิว นั่นหมายความว่าแอปจะลดการใช้งาน CPU ที่ผู้ใช้พบเจอเมื่อคิวถูกจัดการเรียบร้อยแล้ว แต่ไม่สามารถรับประกันได้ว่าจะไม่มีการใช้งาน CPU สูงเลย นอกจากนี้ยังแลกพื้นที่จัดเก็บข้อมูลกับการส่งตัวอย่างที่เร็วขึ้น ห้องสมุดขนาดเล็กที่มีการเรียกดูไม่บ่อยนักอาจเหมาะสมกับการทำงานแบบตามความต้องการของ Nextcloud
2. ติดตั้งแอปเวอร์ชันที่เข้ากันได้ หน้าผู้ดูแลระบบคลาวด์ทั่วไปจะแสดงการ์ดแอปที่มีรูปภาพตัวอย่างเปิดใช้งานอยู่ ซึ่งแสดงขั้นตอนการติดตั้งและการเปิดใช้งาน โดยเค้าโครงนี้ไม่ใช่ภาพหน้าจอเฉพาะเวอร์ชัน
ลงชื่อเข้าใช้ในฐานะผู้ดูแลระบบ Nextcloud เปิดพื้นที่แอป ค้นหาPreview Generator แล้วติดตั้งและเปิดใช้งาน ก่อนดำเนินการต่อ โปรดตรวจสอบให้แน่ใจว่า App Store มีเวอร์ชันเสถียรสำหรับ Nextcloud เวอร์ชันหลักที่คุณติดตั้งไว้ หลีกเลี่ยงการคัดลอกโฟลเดอร์แอปเวอร์ชันล่าสุดทับเวอร์ชันที่ App Store ระบุว่าไม่เข้ากัน
ผู้ดูแลระบบที่มีสิทธิ์เข้าถึงเชลล์สามารถตรวจสอบหรือเปิดใช้งานแอปได้ผ่านทางoccคำสั่งการติดตั้งแพ็กเกจทั่วไปแสดงอยู่ด้านล่าง โปรดเปลี่ยนไบนารี PHP และเส้นทาง Nextcloud ให้ตรงกับโฮสต์ของคุณ สำหรับ Docker หรือ AIO ให้ใช้คำสั่งคอนเทนเนอร์ที่รองรับหรือคำแนะนำตัวกำหนดเวลาสำหรับการปรับใช้ดังกล่าวแทน
sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator
3. ตั้งค่าการทำงานเบื้องหลังของ Nextcloud เป็น Cron
ในการตั้งค่าการดูแลระบบ Nextcloud ให้เลือกCron เป็นโหมดงานเบื้องหลัง และตรวจสอบว่า cron ของระบบ Nextcloud ทำงานอยู่จริงหรือไม่ เอกสาร README ของแอปนี้ระบุว่างานเบื้องหลังแบบพรีวิวในตัวของแอปนี้ต้องการโหมด Cron โหมด Webcron และ AJAX ไม่ได้รับการสนับสนุนสำหรับงานที่ใช้เวลานานนั้น หาก cron ปกติของคุณเสีย การติดตั้งแอปนี้เพียงอย่างเดียวจะไม่ทำให้คิวงานดำเนินต่อไปได้
อย่าสับสนระหว่างการตั้งเวลา cron.php ปกติของ Nextcloud กับpreview:pre-generateการตั้งเวลาเฉพาะที่เป็นตัวเลือกเสริมของแอป ทั้งสองเป็นกลไกที่แยกจากกัน คุณสามารถใช้การทำงานเบื้องหลังในตัวของแอปหรือคำสั่ง cron ของระบบโดยเฉพาะ หากคุณเลือกใช้คำสั่งเฉพาะ โครงการแนะนำให้ปิดใช้งานการทำงานเบื้องหลังแบบพรีวิวในตัวเพื่อหลีกเลี่ยงการเรียกใช้ทั้งสองวิธีสำหรับคิวเดียวกัน
หน้ากำหนดการจะแสดงงานที่เกิดขึ้นซ้ำๆ หนึ่งงาน ซึ่งจะส่งตัวอย่างงานไปยังหน้าต่างคำสั่งและส่งคืนผลลัพธ์ในรูปแบบภาพขนาดย่อ
4. ลดปริมาณงานทดสอบก่อนการรันแบบกลุ่มครั้งแรก แผงการกำหนดค่าทั่วไปจะจับคู่การตั้งค่าที่คล้ายกับโค้ดกับการควบคุมขนาดภาพและโปรเซสเซอร์ ซึ่งแสดงให้เห็นถึงข้อจำกัดสองประการที่ผู้ดูแลระบบควรปรับแต่ง
สำหรับการสร้างภาพตัวอย่างที่ใช้ CPU มาก ควรลดจำนวนภาพตัวอย่างใหม่ที่ทำงานพร้อมกัน ในเอกสารอ้างอิงการกำหนดค่าของ Nextcloud 35 preview_concurrency_newจะมีการควบคุมการสร้างภาพตัวอย่างใหม่พร้อมกัน โดยค่าเริ่มต้นที่ระบุไว้คือสี่ และคู่มือแนะนำให้ตั้งค่าไม่เกินจำนวนคอร์ของ CPU บนโฮสต์ขนาดเล็ก ให้ทดสอบค่าเช่นสอง หรือหนึ่งหากเซิร์ฟเวอร์หยุดทำงาน การทำเช่นนี้จะจำกัดการทำงานพร้อมกัน แต่ภาพหรือวิดีโอขนาดใหญ่เพียงภาพเดียวยังคงใช้ CPU จำนวนมากได้
ขนาดของภาพตัวอย่างก็สำคัญเช่นกัน Nextcloud 35 กำหนดความกว้างและความสูงสูงสุดเริ่มต้นที่ 4096 พิกเซล การลดค่าpreview_max_xเหล่าpreview_max_yนี้config/config.phpสามารถลดความต้องการในการประมวลผลและหน่วยความจำได้ แต่จะทำให้ภาพตัวอย่างมีขนาดเล็ลง สำรองไฟล์การกำหนดค่าและผสานการตั้งค่าเข้ากับอาร์เรย์ PHP ที่มีอยู่ อย่าแทนที่ไฟล์ด้วยโค้ดสั้นๆ ตัวอย่างเช่น ผู้ดูแลระบบอาจตั้งค่าทั้งสองค่าเป็น 2048 และทดสอบคุณภาพในมุมมองไฟล์และรูปภาพ
แอปนี้ยังสามารถสร้างขนาดตัวอย่างได้หลายแบบ ไฟล์ README ของแอปมีโปรไฟล์ขนาดเล็กสำหรับใช้งานทั่วไปในแอปไฟล์ รูปภาพ และกิจกรรมต่างๆ ได้แก่ ขนาดสี่เหลี่ยมจัตุรัส64 256ขนาดเต็มความกว้างและความสูง256 4096และแบบว่างเปล่าwidthSizesและheightSizesหากต้องการข้ามกลุ่มขนาดตัวอย่างเหล่านั้น ควรใช้การตั้งค่าเหล่านี้เฉพาะเมื่อเหมาะสมกับแอปที่ผู้ใช้ของคุณใช้งานเป็นประจำเท่านั้น ไทม์ไลน์ความทรงจำหรือแอปอื่นๆ อาจต้องการขนาดเพิ่มเติม โครงการระบุว่าขนาดตัวอย่างต้องเป็นไปตามกฎขนาดที่ยอมรับได้และต้องไม่เกินขนาดสูงสุดที่กำหนดไว้โปรดตรวจสอบการตั้งค่าขนาดและคุณภาพตัวอย่างของ Nextcloud และข้อมูลอ้างอิงการกำหนดค่า เฉพาะ รุ่น
5. สร้างตัวอย่างที่มีอยู่แล้วในชุดแรกจำนวนน้อย
หลังจากเปิดใช้งานแอปและตั้งค่าข้อจำกัดแล้ว ให้เรียกใช้ตัวสร้างเริ่มต้นกับโฟลเดอร์ทดสอบหรือผู้ใช้รายเดียวแทนที่จะใช้กับทั้งระบบ แอปนี้รองรับการกรองตามรหัสผู้ใช้หรือพาธ และคำสั่งนี้ยอมรับจำนวนเวิร์กเกอร์ ใช้เวิร์กเกอร์หนึ่งตัวสำหรับการทดสอบเบื้องต้นแบบระมัดระวัง:
sudo -u www-data php /var/www/nextcloud/occ preview:generate-all --workers=1 --path="/alice/files/Photos"หน้าการตั้งค่างานเบื้องหลังจะแสดงตัวเลือกงานที่กำหนดเวลาไว้ที่เลือกไว้ โดยป้ายกำกับและตัวเลือกที่มีให้ใช้งานจะแตกต่างกันไปตามเวอร์ชันของ Nextcloud
แทนที่alice`path` และ `installation path` ด้วยค่าจริงจากเซิร์ฟเวอร์ของคุณ ตัวเลือก `path` ใช้รูปแบบ `<path> /[username]/files/[folder path]` หากคุณละเว้นตัวเลือก `path` และตัวกรองผู้ใช้ คำสั่งอาจสำรวจไลบรารีทั้งหมด เรียกใช้ชุดคำสั่งเมื่อผู้ใช้ใช้งานน้อย ตรวจสอบการใช้งาน CPU หน่วยความจำ และพื้นที่ดิสก์ และหยุดเพื่อประเมินผลอีกครั้งหากเซิร์ฟเวอร์ไม่เสถียร อย่าเพิ่มจำนวนผู้ทำงานเพียงเพื่อให้เสร็จเร็วขึ้นจนกว่าคุณจะวัดผลกระทบแล้ว
6. กำหนดเวลาสำหรับไฟล์ที่เพิ่มหรือแก้ไขใหม่
เมื่อชุดทดสอบทำงานได้ดีแล้ว ให้เพิ่มลงpreview:pre-generateในกำหนดการ cron ของระบบ ในไฟล์ README ของแอป ระบุว่าทุกๆ สิบนาทีเป็นเพียงตัวอย่าง ไม่ใช่ข้อกำหนด เลือกช่วงเวลาที่สอดคล้องกับปริมาณการอัปโหลดและเวลาว่างที่มีอยู่ ตัวอย่างเช่น ไฟล์ crontab ที่เป็นของบัญชีเว็บเซิร์ฟเวอร์อาจมีบรรทัดต่อไปนี้ โดยปรับเส้นทางให้เหมาะสมกับการติดตั้ง:
*/10 * * * * cd /var/www/nextcloud && /usr/bin/php -f occ preview:pre-generateหน้าต่างแบบเทอร์มินัลจะแสดงโฟลเดอร์ที่เลือก ตามด้วยภาพขนาดย่อ ซึ่งแสดงถึงการทำงานรอบแรกของพนักงานคนเดียวบนเส้นทางที่จำกัด
หากคุณใช้ cron ของระบบเฉพาะนี้ โปรดปิดใช้งานงานพื้นหลังแสดงตัวอย่างในตัวของแอปตามคำแนะนำของโครงการ การตั้งค่าแอปที่ระบุไว้ในเอกสารมีดังนี้:
sudo -u www-data php /var/www/nextcloud/occ config:app:set --value=true --type=boolean previewgenerator job_disabled
เปิดใช้งานงาน cron.php ปกติของ Nextcloud ไว้ สำหรับคอนเทนเนอร์และแพลตฟอร์มที่โฮสต์ ให้ใช้ตัวกำหนดเวลาที่แพลตฟอร์มนั้นรองรับแทนการใส่พาธโฮสต์ลงในรายการ cron ของคอนเทนเนอร์ หากติดตั้งแอปโดยเปิดใช้งานการเข้ารหัส ให้หยุดที่นี่และปรึกษาผู้ดูแลระบบหรือผู้ให้บริการโฮสติ้งของคุณ โครงการนี้ระบุว่าการกำหนดค่าดังกล่าวไม่ได้รับการสนับสนุนในขณะนี้
7. ติดตามตรวจสอบคิวและยืนยันความคืบหน้า แผงควบคุมการตรวจสอบทั่วไปจะรวมกราฟแสดงการใช้งาน CPU เข้ากับแถบแสดงความคืบหน้าของคิว เพื่อใช้เปรียบเทียบภาระงานของเซิร์ฟเวอร์และดูตัวอย่างคิวงานค้าง
เรียกใช้occ preview:queue-statsเพื่อตรวจสอบคิวการสร้างงานล่วงหน้าและตัวอย่างที่ล้าสมัย คิวที่ลดลงระหว่างการเรียกใช้ตามกำหนดเวลาแสดงว่าตัวประมวลผลกำลังทำงานทัน หากคิวเพิ่มขึ้นอย่างต่อเนื่อง แสดงว่าผู้ใช้เพิ่มไฟล์เร็วกว่าที่งานที่กำหนดไว้จะประมวลผลได้ เพิ่มความถี่ในการเรียกใช้หรือขีดจำกัดงานที่อนุญาตอย่างระมัดระวัง หลังจากตรวจสอบแล้วว่าภาระ CPU ที่เพิ่มขึ้นนั้นยอมรับได้ แอปแสดงข้อจำกัดสำหรับเวลาในการดำเนินการงานและตัวอย่างต่อการเรียกใช้หนึ่งครั้ง ในไฟล์ README ระบุว่าศูนย์หมายถึงไม่จำกัด ดังนั้นอย่าเลือกศูนย์อย่างไม่ระมัดระวังบนโฮสต์ที่มีทรัพยากรจำกัด
เปรียบเทียบการใช้งาน CPU สูงสุดก่อนและหลังการปรับใช้ในเวลาที่ใกล้เคียงกัน จากนั้นเปิดโฟลเดอร์รูปภาพและตัวอย่างเอกสารในฐานะผู้ใช้ทั่วไป ตรวจสอบว่าภาพขนาดย่อปรากฏขึ้น หน้าเว็บยังคงตอบสนอง และการใช้งาน CPU กลับสู่ระดับปกติหลังจากการประมวลผลตามกำหนดการเสร็จสิ้นแล้ว โปรไฟล์การใช้งาน CPU ที่ราบเรียบในช่วงกลางวันพร้อมกับความคืบหน้าของคิวที่เพียงพอถือเป็นผลลัพธ์ที่ดี การสะสมงานค้างที่เพิ่มขึ้นอย่างต่อเนื่องหรือเซสชันผู้ใช้ที่ช้าลงหมายความว่ากำหนดการ โปรไฟล์ขนาด หรือผู้ให้บริการแสดงตัวอย่างพื้นฐานจำเป็นต้องได้รับการตรวจสอบอีกครั้ง
แกลเลอรีในรูปแบบเดียวกับที่ใช้ในไฟล์ จะแสดงภาพขนาดย่อ ซึ่งเป็นการตรวจสอบด้วยสายตาว่าภาพตัวอย่างที่ร้องขอจะโหลดได้หรือไม่
ข้อจำกัดที่สำคัญและการทำความสะอาดอย่างปลอดภัย
รูปแบบการแสดงตัวอย่างบางประเภทขึ้นอยู่กับโปรแกรมฝั่งเซิร์ฟเวอร์: คู่มือของ Nextcloud ระบุว่า FFmpeg ใช้สำหรับการแสดงตัวอย่างวิดีโอ และ LibreOffice ใช้สำหรับการแสดงตัวอย่างเอกสารสำนักงาน รูปแบบเหล่านี้อาจทำงานแตกต่างจากภาพขนาดย่อทั่วไป และการรองรับรูปแบบเหล่านี้ขึ้นอยู่กับการกำหนดค่าของผู้ให้บริการ เริ่มต้นด้วยการลดจำนวนการทำงานพร้อมกันและทดสอบกับไฟล์จำนวนน้อยก่อนที่จะเปลี่ยนผู้ให้บริการหรือเพิ่มบริการ
หากคุณเปลี่ยนขนาดการแสดงตัวอย่างหรือประเภทไฟล์ที่รองรับ และต้องการลบตัวอย่างที่แคชไว้ Nextcloud เวอร์ชัน 31 และใหม่กว่ามีocc preview:cleanupฟังก์ชันนี้ ตามที่ระบุไว้ในไฟล์ README ของโครงการ ฟังก์ชันนี้จะลบไฟล์ตัวอย่างที่สร้างขึ้นทั้งหมด จากนั้น Nextcloud จะสร้างตัวอย่างใหม่ตามความต้องการเมื่อผู้ใช้เข้าถึงไฟล์ ซึ่งอาจทำให้เกิดการใช้งาน CPU สูงขึ้นชั่วคราวอย่างที่คุณพยายามลดลง ควรสำรองข้อมูลหากจำเป็น กำหนดเวลาการล้างข้อมูลอย่างรอบคอบ และหลีกเลี่ยงการลบไดเร็กทอรีแสดงตัวอย่างใน appdata ด้วยตนเองเป็นประจำ ไฟล์ README ของตัวสร้างตัวอย่างยังอธิบายถึง.nomediaวิธีการข้ามโฟลเดอร์และโฟลเดอร์ย่อยเมื่อเหมาะสมอีกด้วย
สัญลักษณ์โฟลเดอร์และไฟล์ที่ซ่อนอยู่จะปรากฏอยู่ข้างๆ โล่และกุญแจ เพื่อแสดงข้อจำกัดของการเข้ารหัสและตัวเลือกในการข้ามโฟลเดอร์
ในทางปฏิบัติ Preview Generator เหมาะอย่างยิ่งสำหรับกรณีที่การแสดงตัวอย่างแบบออนดีมานด์ที่ช้าทำให้เกิดภาระสูงสุดที่เห็นได้ชัด คุณสามารถกำหนดเวลาการทำงานเบื้องหลังได้ และคุณมีพื้นที่ดิสก์สำหรับขนาดแคช ควรใช้ร่วมกับการจำกัดการทำงานพร้อมกันในระดับปานกลาง ขนาดการแสดงตัวอย่างที่ตรงกับความต้องการในการแสดงผลจริง และการทดสอบก่อนใช้งานจริง หากอินสแตนซ์มีการเข้ารหัส จัดการโดยไม่มีการกำหนดเวลาผ่านเชลล์ หรือมีการใช้งาน CPU มากเกินไปเนื่องจากสาเหตุที่ไม่เกี่ยวข้องกับคำขอแสดงตัวอย่าง ควรตรวจสอบข้อจำกัดเหล่านั้นก่อนการใช้งานจริง
เอกสารอ้างอิงอย่างเป็นทางการ