Aumenta il limite di memoria del contenitore CODE senza fare supposizioni

Per assegnare più memoria a un container Collabora Online CODE, aumenta il limite di Docker nella configurazione che lo crea, quindi ricrea il container e verifica il limite effettivo con docker inspecto docker stats. L'aumento di un'impostazione dell'applicazione non aumenta il limite dei container di Docker e l'host o la macchina virtuale Docker Desktop devono disporre di memoria sufficiente per rispettare un limite superiore.

Esempio ipotetico utilizzato in tutto il testo: Riley gestisce un'implementazione Docker Compose su un singolo host. Supponiamo che docker statsvenga visualizzato un limite di 2 GiB e che l'utilizzo si avvicini a tale limite mentre sono aperti diversi documenti. Riley sta valutando un limite di 4 GiB. Questi numeri sono solo esempi e non costituiscono una raccomandazione di dimensionamento di Collabora, una dichiarazione sulle prestazioni o un risultato di test; il limite effettivo dovrebbe essere determinato dal carico osservato e dalla capacità dell'host.

1. Verificare che il contenitore stia effettivamente raggiungendo il suo limite massimo.

Esegui questi comandi sull'host Docker, sostituendo collaboracon il nome effettivo del container:

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

docker statsMostra l'utilizzo corrente e il limite del container. L'output di inspect riporta il limite di memoria configurato in byte e se Docker registra il container come terminato per esaurimento della memoria (OOM-killed). Un valore di inspect pari a 0significa che Docker non ha un limite rigido esplicito per quel container; non significa che la macchina abbia RAM illimitata. Un valore elevato da solo non è prova di un evento di esaurimento della memoria, quindi confrontalo con la cronologia dei riavvii, i log e l'ora in cui gli utenti hanno riscontrato errori.

Illustrazione del terminale delle statistiche di Docker che mostra un ipotetico container Collabora che utilizza 1,8 GiB rispetto a un limite di 2 GiB, etichettato come esempio.
Esempio diagnostico ipotetico: il contenitore CODE si sta avvicinando al limite massimo configurato di 2 GiB.

Prima di aumentare il limite, verifica quanta RAM rimane disponibile per il sistema operativo e gli altri servizi. Le linee guida di Docker sulle risorse raccomandano di testare il fabbisogno di memoria dell'applicazione ed eseguire i container su host con risorse adeguate. Con Docker Desktop, controlla anche Impostazioni > Risorse : la memoria assegnata alla VM Docker rappresenta un limite separato condiviso dai suoi container. Aumentare il limite di CODE oltre tale allocazione non può creare ulteriore memoria fisica; consulta le impostazioni delle risorse di Docker Desktop .

2. Modificare il limite del servizio Compose

Modifica il servizio CODE esistente nel tuo file Compose. Mantieni il tag immagine, le porte, l'ambiente, i volumi, le reti e i criteri di riavvio correnti; aggiungi o aggiorna solo l'impostazione della memoria. Per l'esempio ipotetico di Riley da 4 GiB:

services:
  collabora:
    image: collabora/code:your-current-tag
    mem_limit: 4g
    # Keep the service’s existing settings below
Composizione dell'editor YAML, illustrazione che evidenzia mem_limit: 4g sotto un servizio collaborativo utilizzando il tag immagine esistente.
Esempio di composizione: impostare il limite di memoria a livello di servizio mantenendo il tag dell'immagine CODE distribuita.

Questo esempio utilizza l'immagine Docker CODE ufficiale di Collabora ; mantieni il tag già utilizzato dalla tua distribuzione. mem_limitè un limite massimo, non una prenotazione: Docker può consentire al container di utilizzare fino a tale quantità, ma l'impostazione non riserva tale quantità di RAM sull'host. Il riferimento al servizio Docker Compose definisce mem_limite afferma che deve essere coerente con deploy.resources.limits.memoryse entrambi sono presenti. Se la tua distribuzione utilizza un orchestratore o un file Compose gestito dalla piattaforma, utilizza il campo delle risorse supportate da tale piattaforma e mantieni coerenti i valori dei limiti duplicati.

Se hai avviato CODE direttamente con docker run, ricrealo dal comando originale con --memory=4ge mantieni tutte le sue opzioni correnti. Per una rapida modifica in fase di esecuzione di un container Linux esistente, Docker supporta anche docker update --memory 4g <container_name>. Considera il file Compose o il comando di esecuzione originale come fonte di verità in modo che una successiva sostituzione non ripristini il vecchio cap. Consulta la documentazione di riferimento sull'aggiornamento dei container Docker .

3. Ricrea il CODICE affinché il limite salvato abbia effetto

Dalla directory contenente il file Compose attivo, convalida la configurazione unita, quindi ricrea solo il servizio CODE:

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

Utilizzare la chiave di servizio dal file al posto di collabora. Rivedere la configurazione renderizzata per il nuovo limite prima di applicarlo. La ricreazione di CODE interrompe brevemente le sessioni di modifica che dipendono da quel contenitore, quindi pianificare la modifica quando una breve interruzione del servizio è accettabile. Non rimuovere volumi o eseguire docker compose down -v; tali operazioni non sono necessarie per una modifica del limite di memoria e possono eliminare dati persistenti appartenenti ad altri servizi.

Illustrazione del terminale che mostra l'esecuzione di `docker compose config` seguita da `docker compose up` senza dipendenze e con la ricreazione forzata del servizio Collabora.
Applica la configurazione di Compose modificata e ricrea solo il servizio CODE.

4. Verificare il nuovo condensatore e controllarne il comportamento sotto carico

Una volta che il servizio torna disponibile, verifica il contenitore effettivo, non solo il file YAML:

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

Per il valore di esempio 4g, l'output di ispezione dovrebbe rappresentare circa 4 GiB in byte e docker statsdovrebbe mostrare un limite vicino a 4 GiB. L'immagine seguente utilizza un output di esempio solo a scopo illustrativo. Quindi osserva il CODICE durante l'apertura dei tipi di documento e il numero approssimativo di sessioni simultanee rilevanti per la tua distribuzione. Verifica che il container rimanga in esecuzione, che gli errori visibili all'utente cessino e che l'host mantenga la memoria per gli altri processi.

Illustrazione del terminale di Docker inspect che segnala un limite di memoria di 4294967296 byte e docker stats che mostra un limite di 4 GiB, etichettato come output di esempio previsto anziché come test.
Schema di verifica previsto per la configurazione fittizia da 4 GiB; i valori visualizzati sono un esempio di output, non un'implementazione misurata.

Se il problema persiste

Se il nuovo limite è presente ma CODE continua a riavviarsi, ispeziona docker inspectlo stato docker logse gli eventi del kernel o di Docker dell'host per individuare un record di memoria insufficiente. Se il container rimane integro ma l'elaborazione dei documenti continua ad attivare la pulizia, Docker potrebbe non essere il collo di bottiglia attivo. coolwsdLa configurazione di Collabora ha un comportamento di gestione della memoria separato dal limite del cgroup di Docker; il modello di configurazione del progetto documenta i controlli lato server. Verifica la configurazione della versione di CODE installata prima di modificarla.

Non risolvete l'incertezza impostando la memoria del container su illimitata o disabilitando il killer in caso di memoria insufficiente. Docker avverte che un container con memoria illimitata può contribuire all'esaurimento della memoria dell'host e influire su servizi non correlati. Se l'host non dispone di un margine di sicurezza sufficiente, la soluzione migliore è aumentare la capacità dell'host o della macchina virtuale Docker, ridurre il carico di lavoro simultaneo o distribuire il lavoro, non aumentare il limite oltre la RAM disponibile.

Lascia un commento

Aumenta il limite di memoria del contenitore CODE senza fare supposizioni

Aumenta il limite di memoria del contenitore CODE senza fare supposizioni

Verifica se Docker sta imponendo un limite a Collabora CODE, aumenta in modo sicuro il limite di memoria di Compose e conferma che il container in esecuzione abbia ricevuto il nuovo limite.

Personalizza le barre degli strumenti di Collabora CODE senza modificare il codice sorgente

Personalizza le barre degli strumenti di Collabora CODE senza modificare il codice sorgente

Semplifica Collabora CODE con la modalità Compatta o a schede e i controlli WOPI PostMessage per nascondere in modo sicuro pulsanti, comandi e schede selezionati.

Esegui Collabora CODE dietro Nginx con terminazione TLS

Esegui Collabora CODE dietro Nginx con terminazione TLS

Configura Nginx per la gestione di HTTPS in un container Collabora CODE, inoltra correttamente i WebSocket e verifica l'endpoint pubblico senza esporre la porta 9980.

Mantieni il testo visibile quando si apre la tastiera Collabora Mobile.

Mantieni il testo visibile quando si apre la tastiera Collabora Mobile.

Risolvere i problemi relativi alla tastiera del browser mobile che copre il testo in Collabora Online, con soluzioni rapide e controlli separati per browser, WebView incorporate e pagine host.

Blocca stampe e download indesiderati in ONLYOFFICE

Blocca stampe e download indesiderati in ONLYOFFICE

Imposta i limiti di stampa e download per i link ONLYOFFICE, i membri della stanza o le sessioni API di Documenti, quindi verifica le restrizioni dall'account del destinatario.

Pianifica backup affidabili per ONLYOFFICE Workspace

Pianifica backup affidabili per ONLYOFFICE Workspace

Imposta la destinazione del backup, la pianificazione, la copertura della posta e il limite di conservazione in ONLYOFFICE Workspace, quindi verifica che l'archivio sia pronto per il ripristino.

Distribuisci ONLYOFFICE Docs Enterprise con il suo file di composizione ufficiale

Distribuisci ONLYOFFICE Docs Enterprise con il suo file di composizione ufficiale

Avvia lo stack Docker Compose Enterprise, salva la licenza e i dati, configura JWT in modo sicuro e verifica che gli editor siano pronti per l'integrazione.

Pulisci il testo del foglio di calcolo con una macro ONLYOFFICE riutilizzabile

Pulisci il testo del foglio di calcolo con una macro ONLYOFFICE riutilizzabile

Utilizza una macro JavaScript di ONLYOFFICE per rimuovere i caratteri non stampabili e gli spazi superflui da un intervallo definito del foglio di calcolo, con un flusso di lavoro di revisione sicuro.

Modifica la posizione di archiviazione predefinita dell'area di lavoro ONLYOFFICE

Modifica la posizione di archiviazione predefinita dell'area di lavoro ONLYOFFICE

Sposta i dati del portale da Disco predefinito a un provider di archiviazione cloud supportato oppure sposta i dati Docker in modo sicuro modificando la mappatura del volume host.

Rimuovere completamente ONLYOFFICE Document Server da Linux

Rimuovere completamente ONLYOFFICE Document Server da Linux

Verifica se Document Server utilizza un pacchetto Linux o Docker, rimuovi solo i relativi componenti e controlla i dati rimanenti evitando di eliminare per errore i servizi condivisi.