Acasă
» MS OFFICE
»
Remediați problema serverului de documente ONLYOFFICE care rămâne fără memorie pe un VPS
Remediați problema serverului de documente ONLYOFFICE care rămâne fără memorie pe un VPS
Începeți prin a verifica dacă gazda Linux sau containerul ONLYOFFICE atinge limita de memorie. Ghidul actual ONLYOFFICE Docs Community Edition listează 4 GB de RAM și cel puțin 4 GB de swap ca cerințe de bază. Pagina de depanare Docker precizează că o utilizare de 2-4 GB de RAM poate fi normală pentru câteva zeci de utilizatori activi, deoarece utilizarea memoriei crește odată cu documentele deschise și utilizatorii concurenți. Tabelul hardware recomandă Kubernetes pentru implementări de peste 400 de utilizatori activi concurenți. Acestea sunt cifre de referință, nu o promisiune că fiecare VPS va gestiona aceeași sarcină: sistemul de operare gazdă, alte containere, dimensiunea documentului și limitele furnizorului VPS contează, de asemenea.
Acest ghid se concentrează pe instalarea obișnuită a Docker pe un VPS Linux. Urmați cei patru pași în ordine: măsurați presiunea asupra gazdei și a containerului, verificați jurnalele și memoria cache a fișierelor uitate, reduceți încărcarea evitabilă sau corectați un număr prea mic de containere, apoi reporniți doar dacă este necesar și verificați în condiții normale de utilizare. Exemplele de comenzi folosesc <CONTAINER_ID>un provizoriu; înlocuiți-l cu ID-ul sau numele de la docker ps. Faceți o copie de rezervă și programați mentenanța înainte de a opri un editor care are utilizatori activi.
1. Confirmați unde apare presiunea asupra memoriei
Executați primele comenzi pe gazda VPS, nu în interiorul containerului ONLYOFFICE:
free -h
swapon --show
docker stats --no-stream
free -hafișează memoria disponibilă a gazdei și swap-ul. swapon --showconfirmă dacă swap-ul este activ. În docker stats, comparați utilizarea memoriei de către ONLYOFFICE cu limita afișată. Dacă gazda nu are aproape deloc memorie disponibilă și mai multe servicii utilizează RAM, VPS-ul poate fi subdimensionat. Dacă gazda are încă spațiu liber, dar containerul ONLYOFFICE este aproape de o limită mult mai mică, capacitatea containerului poate fi cauza imediată. Swap-ul aproape plin, swap-ul susținut sau activitatea intensă a discului pot face ca editarea să fie lentă chiar înainte ca gazda să oprească un proces.
Pasul 1: executați free -h și swapon --show pe gazda VPS pentru a vedea RAM-ul disponibil și dacă swap-ul este activ.Pasul 1: docker stats --no-stream compară utilizarea curentă a memoriei de către containerul ONLYOFFICE cu limita sa.
Prima comandă afișează setările de memorie și de memorie plus swap în octeți. O limită de memorie zero înseamnă, în general, că nu este configurată o limită explicită de memorie pentru container; nu înseamnă că VPS-ul are RAM nelimitat. Setarea de memorie-swap a Docker este un plafon combinat de memorie și swap, deci nu o interpretați doar ca swap. A doua comandă raportează dacă Docker a înregistrat o închidere OOM pentru container și ultimul său cod de ieșire. Docker documentează aceste limite ca controale impuse de gazda Linux, iar presiunea OOM la nivel de gazdă poate afecta mai mult de un container.
2. Verificați jurnalele containerului și cazurile de utilizare intensă cunoscute ale ONLYOFFICE
Citiți jurnalele recente înainte de a modifica setările sau a șterge fișiere:
docker logs --since 1h <CONTAINER_ID>
Căutați reporniri repetate, erori de pornire a bazei de date și mesaje apropiate de momentul în care un editor a devenit indisponibil. De asemenea, verificați jurnalul kernelului gazdă pentru evenimente de memorie insuficientă, dacă aveți permisiuni:
Pagina de depanare Docker de la ONLYOFFICE sugerează în mod specific verificarea documentelor blocate sau uitate /var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten/atunci când utilizarea memoriei pare neașteptat de mare. Mai întâi verificați dimensiunea și conținutul directorului; nu eliminați orbește fișierele sale. Acestea pot fi relevante pentru recuperare sau depanare. Dacă directorul este mare sau continuă să crească, păstrați fișierele și jurnalele, apoi urmați instrucțiunile oficiale de depanare sau întrebați asistența ONLYOFFICE ce este sigur de curățat pentru versiunea dvs.
Pasul 2: verificați jurnalele recente ale containerului înainte de a schimba VPS-ul sau de a șterge fișierele din cache.
3. Reduceți cererea evitabilă și corectați un plafon Docker prea mic
Un „utilizator activ” în ghidul de dimensionare ONLYOFFICE este o persoană care are un document deschis în editor, inclusiv o persoană care doar îl vizualizează. Utilizatorii care s-au conectat doar la o platformă integrată fără un document deschis nu sunt numărați în același mod. Rugați utilizatorii să închidă filele neutilizate ale documentelor și evitați programarea unei rafale mari de editare pe un VPS mic. Dacă încărcarea urmează după deschiderea împreună a mai multor foi de calcul mari sau fișiere complexe, comparați memoria la activitate scăzută și la vârful real, în loc să estimați doar pe baza numărului de conturi.
Dacă VPS-ul are swap-ul dezactivat, adăugarea swap-ului poate oferi o rezervă pe termen scurt împotriva unei creșteri bruște a capacității. Ghidul actual de instalare Docker de la ONLYOFFICE listează cel puțin 4 GB de swap și menționează că această cantitate depinde de sistemul de operare gazdă. Swap-ul este salvat pe disc și este mult mai lent decât memoria RAM, deci nu înlocuiește memoria fizică adecvată. Înainte de a crea un fișier swap, verificați dacă nu există deja unul, verificați spațiul liber pe disc și confirmați că sistemul de fișiere și furnizorul VPS acceptă metoda. Pe un sistem de fișiere Linux tipic care acceptă un fișier swap, un exemplu este:
Nu executați aceste comenzi peste un fișier swap existent /swapfile. Pentru a păstra un fișier swap nou creat după repornire, adăugați o intrare corespunzătoare la /etc/fstabnumai după verificarea unei intrări existente:
/swapfile none swap sw 0 0
Dacă Docker indică o limită scăzută de memorie pentru container, verificați fișierul Compose sau panoul de implementare care a creat containerul. Măriți sau eliminați limita numai după ce verificați memoria RAM totală a VPS-ului și memoria utilizată de sistemul de operare, baza de date, platforma de integrare și alte servicii. Nu alocați toată memoria RAM a gazdei către ONLYOFFICE. Dacă gazda în sine este epuizată, modificarea unei limite Docker nu va crea mai multă memorie fizică; redimensionați VPS-ul sau mutați alte servicii pe o altă gazdă. Compose acceptă limite de memorie, dar limita configurată trebuie să corespundă modului de implementare real și memoriei gazdei disponibile.
Un VPS de 2 GB care rulează ONLYOFFICE împreună cu Nextcloud sau alte servicii este sub limita de 4 GB de RAM declarată de furnizor. Un VPS de 4 GB poate, de asemenea, să rămână fără memorie atunci când sistemul de operare gazdă și stiva de integrare o partajează. În aceste cazuri, un VPS mai mare sau o gazdă dedicată Document Server este mai fiabilă decât repornirea repetată a containerului. Pentru mai mult de 400 de utilizatori activi simultan, tabelul ONLYOFFICE actual recomandă o implementare Kubernetes și contactarea ONLYOFFICE pentru sfaturi privind dimensionarea; aceasta nu este o sarcină de lucru care să se rezolve prin adăugarea unui fișier swap mic la un singur VPS.
Pasul 4: înainte de o repornire planificată a containerului, rulați scriptul de pregătire documentat al ONLYOFFICE, astfel încât sesiunile de editare active să se poată deconecta fără probleme.
4. Reporniți în siguranță, apoi verificați rezultatul
Nu reporniți Document Server în timp ce alte persoane editează, cu excepția cazului în care întreruperea este inevitabilă. ONLYOFFICE explică faptul că un document este salvat după ce toți utilizatorii care îl editează l-au închis. Înainte de oprirea planificată a unui container, ghidul său de depanare recomandă scriptul de pregătire prezentat mai jos; poate dura până la cinci minute până când utilizatorii se deconectează. Avertizați mai întâi utilizatorii, păstrați copiile de rezervă și urmați procedura normală de întreținere.
Dacă utilizați Docker Compose, efectuați modificarea durabilă în configurația sau panoul de control Compose și utilizați fluxul de lucru normal de repornire al proiectului. O modificare singulară a unui container care rulează poate dispărea atunci când acesta este recreat. Nu utilizați --oom-kill-disablesau o prioritate OOM extremă pentru a menține ONLYOFFICE activ; Docker avertizează că epuizarea memoriei gazdă poate pune în pericol VPS-ul și alte servicii.
După ce VPS-ul sau containerul revine, confirmați că containerul rămâne funcțional, că editorul deschide și salvează un document de test, că memoria gazdei rămâne disponibilă și că containerul nu repornește în mod repetat. Observați atât memoria gazdei, cât și cea a containerului în timpul unei perioade reprezentative de încărcare. Dacă memoria crește continuu după închiderea documentelor, directorul fișiere uitate crește sau se întorc evenimente OOM, colectați ieșirea jurnalelor free -h, swapon --show, docker stats, docker inspect, și recente pentru asistență. Nu tratați o repornire reușită ca dovadă că capacitatea este remediată.
Ghid rapid de luare a deciziilor
Ceea ce observi
Cea mai utilă mișcare următoare
Memoria RAM a gazdei este epuizată și alte servicii sunt, de asemenea, afectate
Actualizați VPS-ul sau mutați serviciile non-editor. O setare de container nu poate adăuga RAM gazdă.
Gazda are spațiu, dar ONLYOFFICE atinge o limită Docker scăzută
Revizuiți limita pentru Compose sau pentru furnizor și creșteți-o doar în limita spațiului de stocare sigur pentru gazdă.
Utilizarea crește odată cu documentele deschise și apoi scade odată cu închiderea acestora
Comparați cu concurența așteptată și tipurile de documente; luați în considerare mai multă memorie RAM dacă vârfurile normale cauzează supraîncărcare.
Utilizarea rămâne neobișnuit de mare după scăderea activității
Inspectați jurnalele recente și memoria cache cu fișiere uitate documentate; păstrați datele și investigați înainte de curățare.
Peste 400 de utilizatori au documente deschise simultan
Folosește calea de dimensionare a clusterului/Kubernetes a furnizorului în loc de un singur VPS mic.