เพิ่มขีดจำกัดหน่วยความจำของคอนเทนเนอร์ CODE โดยไม่ต้องเดา

หากต้องการเพิ่มหน่วยความจำให้กับคอนเทนเนอร์ Collabora Online CODE ให้เพิ่มขีดจำกัดของ Docker ในการกำหนดค่าที่สร้างคอนเทนเนอร์นั้น จากนั้นสร้างคอนเทนเนอร์ใหม่และตรวจสอบขีดจำกัดที่ใช้งานได้จริงด้วยคำ สั่ง `docker run` หรือ docker inspect` docker statsdocker run` การเพิ่มการตั้งค่าแอปพลิเคชันจะไม่เพิ่มขีดจำกัดสูงสุดของคอนเทนเนอร์ Docker และโฮสต์หรือเครื่องเสมือน Docker Desktop ต้องมีหน่วยความจำเพียงพอที่จะรองรับขีดจำกัดที่สูงขึ้น

ตัวอย่างสมมติที่ใช้ตลอดทั้งบทความ:ไรลีย์ดูแลการใช้งาน Docker Compose บนโฮสต์เดียว สมมติว่าdocker statsแสดงขีดจำกัด 2 GiB และมีการใช้งานใกล้ถึงขีดจำกัดนั้นในขณะที่เปิดเอกสารหลายฉบับ ไรลีย์กำลังพิจารณาที่จะเพิ่มขีดจำกัดเป็น 4 GiB ตัวเลขเหล่านี้เป็นเพียงตัวอย่างเท่านั้น ไม่ใช่คำแนะนำเกี่ยวกับการกำหนดขนาดของ Collabora การอ้างอิงประสิทธิภาพ หรือผลการทดสอบ ขีดจำกัดของคุณควรมาจากปริมาณการใช้งานและความจุของโฮสต์ที่สังเกตได้

1. ตรวจสอบให้แน่ใจว่าภาชนะนั้นชนกับฝาปิดจริง ๆ

รันคำสั่งเหล่านี้บนโฮสต์ Docker โดยแทนที่collaboraด้วยชื่อคอนเทนเนอร์จริง:

docker stats --no-stream collabora
docker inspect --format 'Memory={{.HostConfig.Memory}} OOMKilled={{.State.OOMKilled}}' collabora

docker statsแสดงการใช้งานปัจจุบันและขีดจำกัดของคอนเทนเนอร์ เอาต์พุตการตรวจสอบจะรายงานขีดจำกัดหน่วยความจำที่กำหนดค่าไว้เป็นไบต์ และแสดงว่า Docker บันทึกคอนเทนเนอร์นั้นว่าถูกฆ่าเนื่องจาก0หน่วยความจำไม่เพียงพอหรือไม่ ค่าการตรวจสอบที่เป็นศูนย์หมายความว่า Docker ไม่มีขีดจำกัดที่ชัดเจนสำหรับคอนเทนเนอร์นั้น ไม่ได้หมายความว่าเครื่องมี RAM ไม่จำกัด การอ่านค่าสูงเพียงอย่างเดียวไม่ใช่หลักฐานยืนยันเหตุการณ์หน่วยความจำไม่เพียงพอ ดังนั้นควรเปรียบเทียบกับประวัติการเริ่มต้นใหม่ บันทึก และเวลาที่ผู้ใช้พบความล้มเหลว

ภาพประกอบในเทอร์มินัลแสดงสถิติของ Docker โดยแสดงคอนเทนเนอร์ Collabora สมมุติที่ใช้พื้นที่ 1.8 GiB ภายใต้ขีดจำกัด 2 GiB โดยมีป้ายกำกับว่าเป็นตัวอย่าง
ตัวอย่างการวินิจฉัยสมมติฐาน: คอนเทนเนอร์ CODE กำลังจะเต็มความจุตามที่กำหนดไว้ที่ 2 GiB แล้ว

ก่อนที่จะเพิ่มขีดจำกัด โปรดตรวจสอบว่ามี RAM เหลืออยู่เท่าใดสำหรับระบบปฏิบัติการและบริการอื่นๆคำแนะนำด้านทรัพยากรของ Dockerแนะนำให้ทดสอบความต้องการของแอปพลิเคชันและเรียกใช้คอนเทนเนอร์บนโฮสต์ที่มีทรัพยากรเพียงพอ สำหรับ Docker Desktop โปรดตรวจสอบการตั้งค่า > ทรัพยากรด้วย: หน่วยความจำที่จัดสรรให้กับ Docker VM เป็นขีดจำกัดที่แยกต่างหากซึ่งใช้ร่วมกันโดยคอนเทนเนอร์ การเพิ่มขีดจำกัดของ CODE เกินกว่าการจัดสรรนั้นจะไม่สามารถสร้างหน่วยความจำทางกายภาพเพิ่มเติมได้ โปรดดูการตั้งค่าทรัพยากรของ Docker Desktop

2. เปลี่ยนขีดจำกัดบริการ Compose

แก้ไขบริการ CODE ที่มีอยู่แล้วในไฟล์ Compose ของคุณ คงค่าแท็กรูปภาพ พอร์ต สภาพแวดล้อม วอลุ่ม เครือข่าย และนโยบายการรีสตาร์ทปัจจุบันไว้ เพิ่มหรืออัปเดตเฉพาะการตั้งค่าหน่วยความจำเท่านั้น สำหรับตัวอย่างสมมติ 4 GiB ของ Riley:

services:
  collabora:
    image: collabora/code:your-current-tag
    mem_limit: 4g
    # Keep the service’s existing settings below
สร้างภาพประกอบตัวแก้ไข YAML โดยเน้น mem_limit: 4g ภายใต้บริการ Collabora โดยใช้แท็กรูปภาพที่มีอยู่
ตัวอย่างการเขียนโค้ด: กำหนดขีดจำกัดหน่วยความจำระดับบริการโดยคงแท็กอิมเมจ CODE ที่ใช้งานอยู่

ตัวอย่างนี้ใช้Docker image อย่างเป็นทางการของ Collabora ที่ชื่อ CODE ; โปรดใช้แท็กที่ใช้แล้วในการปรับใช้ของคุณmem_limitเป็นขีดจำกัดสูงสุด ไม่ใช่การสำรอง: Docker อนุญาตให้คอนเทนเนอร์ใช้ได้ไม่เกินจำนวนนั้น แต่การตั้งค่านี้ไม่ได้สำรอง RAM จำนวนนั้นบนโฮสต์เอกสารอ้างอิงบริการ Docker Composeกำหนดmem_limitและระบุว่าต้องตรงกันdeploy.resources.limits.memoryหากมีทั้งสองอย่าง หากการปรับใช้ของคุณใช้ orchestrator หรือไฟล์ Compose ที่จัดการโดยแพลตฟอร์ม ให้ใช้ฟิลด์ทรัพยากรที่รองรับของแพลตฟอร์มนั้นและรักษาค่าขีดจำกัดที่ซ้ำกันให้สอดคล้องกัน

หากคุณเริ่มใช้งาน CODE โดยตรงด้วยdocker runคำสั่ง `docker run` ให้สร้างใหม่จากคำสั่งเดิมด้วยคำ สั่ง --memory=4g`docker run` และคงตัวเลือกทั้งหมดที่มีอยู่ไว้ สำหรับการเปลี่ยนแปลงรันไทม์อย่างรวดเร็วในคอนเทนเนอร์ Linux ที่มีอยู่ Docker ยังรองรับคำ สั่ง `docker docker update --memory 4g <container_name>run` ด้วย ให้ถือว่าไฟล์ Compose หรือคำสั่งรันเดิมเป็นแหล่งข้อมูลที่ถูกต้อง เพื่อไม่ให้การแทนที่ในภายหลังคืนค่าความสามารถเดิม ดูข้อมูลอ้างอิงการอัปเดตคอนเทนเนอร์ Docker

3. สร้างโค้ดใหม่เพื่อให้ค่าจำกัดที่บันทึกไว้มีผล

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

docker compose config
docker compose up -d --no-deps --force-recreate collabora

ใช้คีย์บริการจากไฟล์ของคุณแทนที่collaboraตรวจสอบการกำหนดค่าที่แสดงผลสำหรับขีดจำกัดใหม่ก่อนที่จะนำไปใช้ การสร้าง CODE ใหม่จะขัดจังหวะเซสชันการแก้ไขที่ขึ้นอยู่กับคอนเทนเนอร์นั้นชั่วครู่ ดังนั้นให้กำหนดเวลาการเปลี่ยนแปลงเมื่อการขัดจังหวะบริการสั้นๆ เป็นที่ยอมรับได้ อย่าลบวอลุ่มหรือเรียกใช้docker compose down -v; การดำเนินการเหล่านั้นไม่จำเป็นสำหรับการเปลี่ยนแปลงขีดจำกัดหน่วยความจำและอาจลบข้อมูลถาวรที่เป็นของบริการอื่นๆ ได้

ภาพประกอบในเทอร์มินัลแสดงคำสั่ง `docker compose config` ตามด้วย `docker compose up` โดยไม่มีการพึ่งพาใดๆ และบังคับให้สร้างบริการ Collabora ใหม่
ใช้การตั้งค่า Compose ที่แก้ไขแล้ว และสร้างบริการ CODE ขึ้นใหม่เท่านั้น

4. ตรวจสอบฝาครอบใหม่และตรวจสอบพฤติกรรมภายใต้โหลด

หลังจากบริการกลับมาทำงานแล้ว ให้ตรวจสอบคอนเทนเนอร์จริง ไม่ใช่แค่ไฟล์ YAML เท่านั้น:

docker inspect --format 'Memory={{.HostConfig.Memory}} OOMKilled={{.State.OOMKilled}}' collabora
docker stats --no-stream collabora

สำหรับค่าตัวอย่าง4gผลลัพธ์การตรวจสอบควรแสดงขนาดประมาณ 4 GiB ในหน่วยไบต์ และdocker statsควรแสดงขีดจำกัดใกล้เคียง 4 GiB ภาพด้านล่างใช้ผลลัพธ์ตัวอย่างเพื่อเป็นตัวอย่างเท่านั้น จากนั้นสังเกตโค้ดขณะเปิดประเภทเอกสารและจำนวนเซสชันพร้อมกันโดยประมาณที่สำคัญต่อการใช้งานของคุณ ตรวจสอบให้แน่ใจว่าคอนเทนเนอร์ยังคงทำงานอยู่ ข้อผิดพลาดที่ผู้ใช้มองเห็นหยุดลง และโฮสต์ยังคงมีหน่วยความจำสำหรับกระบวนการอื่นๆ

ภาพประกอบในเทอร์มินัลแสดงรายงานจากคำสั่ง Docker inspect ที่ระบุว่าหน่วยความจำถูกจำกัดไว้ที่ 4294967296 ไบต์ และคำสั่ง docker stats ที่แสดงขีดจำกัดที่ 4 GiB โดยระบุว่าเป็นผลลัพธ์ตัวอย่างที่คาดหวัง ไม่ใช่การทดสอบ
รูปแบบการตรวจสอบที่คาดหวังสำหรับการตั้งค่าสมมติขนาด 4 GiB ค่าที่แสดงเหล่านี้เป็นตัวอย่างผลลัพธ์ ไม่ใช่ค่าที่วัดได้จากการใช้งานจริง

หากปัญหายังคงอยู่

หากมีการตั้งค่าขีดจำกัดใหม่แล้ว แต่ CODE ยังคงรีสตาร์ท ให้ตรวจสอบdocker inspectสถานะdocker logsและเหตุการณ์เคอร์เนลหรือ Docker ของโฮสต์เพื่อหาบันทึกเกี่ยวกับหน่วยความจำไม่เพียงพอ หากคอนเทนเนอร์ยังคงทำงานได้ดี แต่การประมวลผลเอกสารยังคงกระตุ้นการล้างข้อมูล Docker อาจไม่ใช่คอขวดที่แท้จริง การกำหนดค่าของ Collabora เอง มีพฤติกรรมการจัดการหน่วยความจำที่แยกต่างหากจากขีดจำกัด cgroup ของ Docker เทมเพลตการกำหนดค่าcoolwsdของโครงการจะบันทึกการควบคุมฝั่งเซิร์ฟเวอร์ ตรวจสอบการกำหนดค่าสำหรับ CODE เวอร์ชันที่ติดตั้งของคุณก่อนที่จะเปลี่ยนแปลง

อย่าแก้ปัญหาความไม่แน่นอนด้วยการตั้งค่าคอนเทนเนอร์ให้มีหน่วยความจำไม่จำกัด หรือปิดใช้งานตัวจัดการหน่วยความจำไม่เพียงพอ (out-of-memory killer) Docker เตือนว่าคอนเทนเนอร์ที่ไม่มีขีดจำกัดอาจทำให้หน่วยความจำของโฮสต์หมดลงและส่งผลกระทบต่อบริการที่ไม่เกี่ยวข้อง หากโฮสต์ไม่มีพื้นที่เหลือเฟือ วิธีแก้ไขที่แท้จริงคือการเพิ่มความจุของโฮสต์หรือ Docker VM ลดปริมาณงานพร้อมกัน หรือกระจายงาน ไม่ใช่การเพิ่มขีดจำกัดเกินกว่า RAM ที่มีอยู่

ฝากความเห็น

เพิ่มขีดจำกัดหน่วยความจำของคอนเทนเนอร์ CODE โดยไม่ต้องเดา

เพิ่มขีดจำกัดหน่วยความจำของคอนเทนเนอร์ CODE โดยไม่ต้องเดา

ตรวจสอบว่า Docker จำกัดการใช้งานหน่วยความจำของ Collabora CODE หรือไม่ เพิ่มขีดจำกัดหน่วยความจำของ Compose อย่างปลอดภัย และยืนยันว่าคอนเทนเนอร์ที่กำลังทำงานอยู่ได้รับขีดจำกัดใหม่แล้ว

ปรับแต่งแถบเครื่องมือ Collabora CODE โดยไม่ต้องแก้ไขซอร์สโค้ด

ปรับแต่งแถบเครื่องมือ Collabora CODE โดยไม่ต้องแก้ไขซอร์สโค้ด

ลดความซับซ้อนของ Collabora CODE ด้วยโหมดกะทัดรัดหรือโหมดแท็บ และตัวควบคุม WOPI PostMessage เพื่อซ่อนปุ่ม คำสั่ง และแท็บที่เลือกได้อย่างปลอดภัย

เรียกใช้งาน Collabora CODE เบื้องหลัง Nginx พร้อมการยุติการเชื่อมต่อ TLS

เรียกใช้งาน Collabora CODE เบื้องหลัง Nginx พร้อมการยุติการเชื่อมต่อ TLS

กำหนดให้ Nginx ดูแล HTTPS สำหรับคอนเทนเนอร์ Collabora CODE ส่งต่อการแก้ไข WebSockets อย่างถูกต้อง และตรวจสอบปลายทางสาธารณะโดยไม่ต้องเปิดพอร์ต 9980

แสดงข้อความเมื่อแป้นพิมพ์ Collabora Mobile เปิดขึ้น

แสดงข้อความเมื่อแป้นพิมพ์ Collabora Mobile เปิดขึ้น

แก้ไขปัญหาแป้นพิมพ์ในเบราว์เซอร์บนมือถือที่บังข้อความใน Collabora Online พร้อมวิธีแก้ปัญหาอย่างรวดเร็วและการตรวจสอบแยกต่างหากสำหรับเบราว์เซอร์, WebView ที่ฝังอยู่ และหน้าเว็บหลัก

หยุดการพิมพ์และการดาวน์โหลดที่ไม่ต้องการใน ONLYOFFICE

หยุดการพิมพ์และการดาวน์โหลดที่ไม่ต้องการใน ONLYOFFICE

ตั้งค่าขีดจำกัดการพิมพ์และการดาวน์โหลดสำหรับลิงก์ ONLYOFFICE สมาชิกห้อง หรือเซสชัน Docs API จากนั้นตรวจสอบข้อจำกัดจากบัญชีผู้รับ

กำหนดเวลาสำรองข้อมูลที่เชื่อถือได้สำหรับ ONLYOFFICE Workspace

กำหนดเวลาสำรองข้อมูลที่เชื่อถือได้สำหรับ ONLYOFFICE Workspace

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

ติดตั้ง ONLYOFFICE Docs Enterprise พร้อมไฟล์เขียนเอกสารอย่างเป็นทางการ

ติดตั้ง ONLYOFFICE Docs Enterprise พร้อมไฟล์เขียนเอกสารอย่างเป็นทางการ

เริ่มต้นใช้งาน Enterprise Docker Compose stack บันทึกใบอนุญาตและข้อมูลต่างๆ กำหนดค่า JWT อย่างปลอดภัย และตรวจสอบว่าโปรแกรมแก้ไขพร้อมสำหรับการผสานรวมแล้ว

ทำความสะอาดข้อความในสเปรดชีตด้วยมาโคร ONLYOFFICE ที่สามารถนำกลับมาใช้ใหม่ได้

ทำความสะอาดข้อความในสเปรดชีตด้วยมาโคร ONLYOFFICE ที่สามารถนำกลับมาใช้ใหม่ได้

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

เปลี่ยนตำแหน่งจัดเก็บข้อมูลเริ่มต้นของ ONLYOFFICE Workspace

เปลี่ยนตำแหน่งจัดเก็บข้อมูลเริ่มต้นของ ONLYOFFICE Workspace

ย้ายข้อมูลพอร์ทัลจากดิสก์เริ่มต้นไปยังผู้ให้บริการพื้นที่จัดเก็บข้อมูลบนคลาวด์ที่รองรับ หรือย้ายข้อมูล Docker อย่างปลอดภัยโดยการเปลี่ยนการแมปวอลุ่มโฮสต์

ลบ ONLYOFFICE Document Server ออกจาก Linux อย่างสมบูรณ์

ลบ ONLYOFFICE Document Server ออกจาก Linux อย่างสมบูรณ์

ตรวจสอบว่า Document Server ใช้แพ็กเกจ Linux หรือ Docker ลบเฉพาะส่วนประกอบของมัน และตรวจสอบข้อมูลที่เหลืออยู่โดยไม่ลบบริการที่ใช้ร่วมกันโดยไม่ได้ตั้งใจ