Pentru utilizarea obișnuită într-o firmă, găzduirea Odoo pe VPS ar trebui să pornească de la 4 GB RAM pentru 5 utilizatori înregistrați, 8 GB pentru 20 de utilizatori și 16 GB pentru 50 de utilizatori. Pe planurile ServerSpan actuale, costul infrastructurii începe de la 9,99 EUR pe lună fără TVA pentru 5 utilizatori, 15,99 EUR pentru 20 de utilizatori și 32,99 EUR pentru 50 de utilizatori. Aceste valori presupun un nivel rezonabil de utilizare simultană, o configurație de producție cu workeri și absența unor workload-uri neobișnuit de grele pentru producție, POS, importuri, OCR sau module custom. Costurile includ numai infrastructura VPS, nu și licențele Odoo, implementarea, backupul extern sau administrarea.
Scris de echipa tehnică ServerSpan
Numărul de utilizatori înregistrați nu determină singur dimensiunea serverului
Capacitatea necesară pentru Odoo este determinată de activitatea simultană din perioadele de vârf, nu de numărul total de conturi create în baza de date. O companie poate avea 50 de utilizatori înregistrați, dar numai 12 dintre ei să deschidă documente, să confirme comenzi sau să genereze rapoarte în același timp. O altă companie poate avea 20 de utilizatori care pornesc simultan o tură POS, validează mișcări de stoc sau importă date.
Documentația oficială pentru deployment Odoo 19 oferă două reguli utile pentru producție. Un worker deservește aproximativ șase utilizatori simultani, iar limita teoretică a numărului de workeri este (număr nuclee CPU × 2) + 1. Workerii cron consumă și ei resurse CPU. Aceste formule sunt instrumente pentru planificare, nu garanții de performanță.
Pentru modelul de cost de mai jos, presupunem că aproximativ 25 până la 50% dintre utilizatorii înregistrați pot fi activi în cea mai aglomerată perioadă normală. După lansare, această presupunere trebuie înlocuită cu date măsurate. Importurile în loturi, închiderea contabilă, calculele MRP, traficul website-ului și câmpurile calculate custom pot necesita mai multe resurse decât sugerează numărul de utilizatori.
| Utilizatori Odoo înregistrați | Vârf estimat | Configurație inițială pentru workeri | Țintă VPS practică | Exemplu ServerSpan actual | Cost VPS lunar |
|---|---|---|---|---|---|
| 5 utilizatori | 2 până la 5 activi | 2 workeri HTTP și 1 thread cron | 2 până la 4 vCPU, 4 GB RAM, 50 GB stocare | ct.Steady: 4 nuclee, 4 GB RAM, 50 GB SSD | 9,99 EUR fără TVA |
| 20 de utilizatori | 5 până la 12 activi | 3 până la 4 workeri HTTP și 1 thread cron | 4 vCPU, 8 GB RAM, 80 GB stocare | ct.Go: 4 nuclee, 8 GB RAM, 80 GB SSD | 15,99 EUR fără TVA |
| 50 de utilizatori | 12 până la 30 activi | 5 până la 8 workeri HTTP și 1 thread cron | 8 vCPU, 16 GB RAM, 250 GB stocare | vm.Go: 8 nuclee, 16 GB RAM, 250 GB SSD | 32,99 EUR fără TVA |
Prețurile și specificațiile din tabel provin din planurile ServerSpan actuale de găzduire VPS. Acestea sunt puncte de pornire pentru infrastructură. O instalare cu cinci utilizatori care rulează numai CRM și facturare poate funcționa cu mai puține resurse. O instalare cu 20 de utilizatori, producție, operațiuni cu coduri de bare, atașamente mari sau mai multe module custom poate necesita planul propus pentru 50 de utilizatori.
Modulele instalate pot muta serverul în următorul nivel
CRM, Contacts, funcțiile de bază din Sales și facturarea simplă generează de obicei cereri interactive scurte. Planificarea producției, evaluarea stocurilor, sesiunile POS, rapoartele contabile, trimiterile în masă, procesarea documentelor și importurile mari creează joburi mai lungi sau seturi mai mari de query-uri. Modulele custom sunt cea mai mare necunoscută, deoarece un singur câmp calculat proiectat greșit poate transforma afișarea unui formular în sute de query-uri.
Regula practică este să dimensionezi serverul pentru cea mai grea operațiune repetată, nu pentru încărcarea medie a unui ecran. Rulează un import reprezentativ, un raport de sfârșit de lună, o evaluare a stocului și un ciclu complet de scheduled actions înainte de alegerea nivelului de producție. Dacă o singură operațiune consumă majoritatea resurselor CPU sau RAM pe un server altfel liber, adăugarea utilizatorilor va expune rapid acel blocaj.
Dacă alegi între gama containerizată și cea KVM, folosește un VPS containerizat pentru o instalare Linux nativă și convențională, atunci când limitările sistemului de operare sunt acceptabile. Alege KVM pentru Docker, networking custom, cerințe la nivel de kernel sau izolare mai puternică a workload-ului. Diferențele sunt explicate în comparația KVM VPS vs VPS containerizat.
Cinci utilizatori au nevoie de rezervă de memorie mai mult decât de CPU brut
O bază de date Odoo pentru cinci utilizatori poate rula pe 2 vCPU și 2 GB RAM, dar aceasta este o configurație minimă pentru testare sau pentru o instalare controlată atent. PostgreSQL, workerii Odoo, Nginx, sistemul de operare, cache-ul de fișiere, rotația logurilor și joburile de backup concurează pentru aceeași memorie. Generarea unui PDF sau actualizarea unui modul poate împinge un server cu 2 GB în swap, chiar dacă utilizarea zilnică pare redusă.
Punctul de pornire mai sigur pentru producție este 4 GB RAM. Doi workeri HTTP oferă suficientă capacitate pentru activitate obișnuită în CRM, Sales, Invoicing și Inventory, iar un thread cron procesează joburile programate. Patru nuclee CPU depășesc necesarul strict al celor cinci utilizatori, dar planul ct.Steady combină aceste nuclee cu ținta de 4 GB RAM și cu suficient spațiu pentru aplicație, PostgreSQL, atașamente și fișiere temporare de backup.
Planul vm.Ready costă în prezent 9,99 EUR pe lună fără TVA și include 2 nuclee, 2 GB RAM și 25 GB SSD. Este potrivit pentru evaluare sau pentru o bază de date foarte mică, monitorizată atent. Nu este recomandarea implicită pentru o firmă care va folosi atașamente, automatizări, upgrade-uri și fișiere locale temporare de backup pe aceeași mașină.
La douăzeci de utilizatori, problema principală devine memoria
Douăzeci de utilizatori înregistrați nu necesită în mod normal douăzeci de workeri Odoo simultani. Problema mai frecventă este un VPS cu 4 GB RAM care are suficient CPU pentru cererile obișnuite, dar rămâne fără memorie atunci când cache-ul PostgreSQL, patru workeri Odoo, activitatea cron și un raport sau un import se suprapun.
Modelul de memorie publicat de Odoo presupune că 80% dintre cereri folosesc aproximativ 150 MB per worker, iar 20% sunt cereri grele care folosesc în jur de 1 GB. Rezultă o medie orientativă de aproximativ 325 MB per worker. Patru workeri HTTP și un proces cron necesită astfel aproximativ 1,6 GB numai pentru procesele Odoo, înainte de a calcula PostgreSQL, Linux, Nginx, cache-ul filesystemului și rezerva operațională.
Opt gigabytes reprezintă o țintă practică pentru o instalare business cu 20 de utilizatori. Această capacitate lasă suficient spațiu pentru ca PostgreSQL să păstreze datele folosite frecvent în cache și reduce riscul ca actualizarea unui modul, exportul unui spreadsheet sau o acțiune programată să forțeze serverul să folosească swap. Planul ct.Go corespunde acestei ținte la 15,99 EUR pe lună fără TVA. Folosește vm.Go atunci când instalarea necesită KVM, Docker sau mai multă rezervă CPU.
Cincizeci de utilizatori necesită un plan pentru concurență și workload-uri măsurate
Pentru 50 de utilizatori, configurația implicită recomandată este 8 vCPU și 16 GB RAM. Planul vm.Go oferă în prezent această combinație, împreună cu 250 GB SSD, la 32,99 EUR pe lună fără TVA. Este un punct de pornire rezonabil pentru Odoo și PostgreSQL pe același server, dacă baza de date este întreținută corect și operațiunile cele mai solicitante au fost testate.
Opt workeri HTTP și un thread cron corespund exemplului din documentația Odoo, în care nouă procese worker necesită aproximativ 3 GB pentru Odoo în modelul mixt de cereri. Memoria rămasă nu este irosită. PostgreSQL o folosește pentru shared buffers și page cache-ul sistemului de operare, iar generarea rapoartelor, importurile, procesarea atașamentelor și comprimarea backupurilor necesită resurse temporare.
Cincizeci de utilizatori pot depăși acest nivel atunci când mulți dintre ei lucrează simultan, website-ul public Odoo primește trafic semnificativ sau instalarea execută planificare de producție și operațiuni mari de inventar. În această situație, nu adăuga workeri fără măsurători. Verifică coada de execuție CPU, wait events în PostgreSQL, cererile lente, durata joburilor cron și latența storage-ului. Un VPS mai mare poate rezolva problema, dar separarea serverului PostgreSQL sau reproiectarea joburilor de fundal poate fi următorul pas corect.
Odoo 19 necesită o bază Linux și PostgreSQL potrivită pentru producție
Documentația oficială pentru instalarea Odoo 19 din surse necesită Python 3.10 sau mai nou și PostgreSQL 13 sau mai nou. Odoo folosește PostgreSQL ca sistem de administrare a bazei de date. Pentru producție pe Linux, Odoo recomandă serverul multiprocess în locul modului threaded folosit implicit pentru dezvoltare.
Verifică serverul înainte de alegerea planului sau modificarea numărului de workeri:
Servere VPS Odoo pentru echipe de 5, 20 și 50 de utilizatori folosind cerințe CPU, RAM, stocare și PostgreSQL
nproc trebuie să corespundă numărului de nuclee CPU alocate. free -h trebuie să arate memorie disponibilă fără utilizarea susținută a swap-ului. Verificările pentru spațiu și inode-uri trebuie să indice o rezervă confortabilă. Outputul systemd arată dacă serviciul Odoo funcționează și identifică fișierul de configurare transmis procesului. Dacă serviciul are alt nume, listează variantele cu systemctl list-units --type=service | grep -i odoo.
După identificarea fișierului de configurare, verifică limitele workerilor fără să modifici sistemul:
sudo grep -E '^(workers|max_cron_threads|limit_memory_soft|limit_memory_hard|proxy_mode|list_db)' /etc/odoo.conf
Un rezultat potrivit pentru producție arată un număr de workeri diferit de zero, cel puțin un thread cron dacă sunt folosite joburi programate, limite de memorie adaptate VPS-ului, proxy_mode = True atunci când Odoo rulează în spatele Nginx și list_db = False pentru o instalare publică, limitată la o singură bază de date. Înlocuiește /etc/odoo.conf cu calea identificată în definiția serviciului.
Spațiul de stocare este determinat de filestore și de metoda de backup
Stocarea Odoo nu înseamnă numai baza de date PostgreSQL. Atașamentele sunt păstrate în filestore, iar add-on-urile custom, logurile, cache-urile de pachete, dumpurile bazei de date și exporturile temporare consumă spațiu suplimentar. Ghidul oficial pentru producție recomandă backupuri zilnice pentru baza de date și filestore, copiate într-o arhivă externă care nu poate fi accesată direct de serverul aplicației.
Dimensionează storage-ul local astfel încât baza de date activă și filestore-ul să nu ocupe mai mult de aproximativ jumătate din disc în timpul funcționării normale. Spațiul rămas este necesar pentru creștere, operațiuni vacuum, actualizări de pachete, loguri și cel puțin un backup sau restore temporar. Discul VPS-ului nu trebuie folosit ca singura locație de backup.
Pentru alegerea instrumentului de backup extern, compară consumul de memorie și comportamentul operațional descrise în analiza BorgBackup vs Restic pentru protejarea datelor de pe VPS.
Măsoară saturația înainte de cumpărarea următorului plan
Cel mai clar semn că Odoo are nevoie de mai mult CPU este o coadă de execuție menținută în timp ce workerii sunt ocupați. Cel mai clar semn că are nevoie de mai mult RAM este activitatea de swap sau oprirea workerilor din cauza presiunii asupra memoriei. Ecranele lente atunci când CPU-ul este liber pot indica wait events în PostgreSQL, query-uri generate de module custom, API-uri externe sau latență ridicată a discului.
uptime
vmstat 1 5
ps -C odoo -o pid,pcpu,pmem,rss,etime,cmd --sort=-rss
sudo journalctl -u odoo --since "30 minutes ago" --no-pager | tail -200
sudo -u postgres psql -Atc "SELECT state, wait_event_type, count(*) FROM pg_stat_activity GROUP BY state, wait_event_type ORDER BY count(*) DESC;"
În outputul vmstat, valorile repetate diferite de zero în coloanele si sau so indică activitate de swap. Un load average menținut peste numărul de nuclee CPU disponibile sugerează existența unor procese în așteptare. Lista proceselor Odoo arată workerii cu un consum neobișnuit de mare de memorie resident. Dacă ps -C odoo nu returnează nimic, identifică numele procesului cu ps -ef | grep '[o]doo'. În journal trebuie căutați workeri opriți, depășiri ale limitelor de timp, erori repetate de bază de date și traceback-uri din module. Wait events din PostgreSQL ajută la separarea query-urilor active de lock-uri, I/O sau așteptări după client. Dacă PostgreSQL rulează pe alt server, execută query-ul pe hostul bazei de date sau folosește parametrii de conectare din configurația Odoo.
Monitorizarea trebuie configurată înainte de prima reclamație privind performanța. Articolul ServerSpan despre monitorizarea uptime-ului și a stării unui VPS explică modul în care verificările externe pot fi combinate cu metricile interne ale serverului.
Prețul VPS-ului este numai costul infrastructurii
Valorile lunare din acest articol acoperă numai planul VPS indicat. Nu includ abonamentele Odoo Enterprise, implementarea, modulele custom, migrarea, stocarea externă pentru backup, livrarea e-mailurilor sau administrarea continuă a sistemului. Aceste costuri depind de ediție, volumul datelor, obiectivele de recuperare și nivelul de suport necesar.
Dacă echipa ta poate administra Linux, PostgreSQL, Nginx, update-urile Odoo, monitorizarea și restaurările testate, VPS-ul poate rămâne cea mai mică linie din costul total. Dacă nimeni nu este responsabil pentru aceste operațiuni, serverul ieftin devine scump la primul upgrade eșuat sau incident de bază de date fără procedură de recuperare. Serviciul ServerSpan de administrare servere Linux acoperă configurarea PostgreSQL, optimizarea resurselor, depanarea sistemului și problemele de backup sau restore atunci când este necesar management separat.
Folosește 4 GB RAM pentru o instalare mică de producție cu cinci utilizatori, 8 GB pentru o instalare obișnuită cu 20 de utilizatori și 16 GB pentru 50 de utilizatori. Pornește cu planul corespunzător de VPS containerizat sau KVM, măsoară utilizarea simultană reală și redimensionează serverul în funcție de coada CPU, presiunea asupra memoriei, wait events din PostgreSQL și creșterea storage-ului, nu doar după numărul de conturi.
Sursă și Atribuire
Aceast articol se bazează pe date originale ale serverspan.com. Pentru metodologia completă și pentru a asigura integritatea datelor, articolul original trebuie citat. Sursa canonică este disponibilă la: Găzduire Odoo pe VPS: cost pentru 5, 20 sau 50 utilizatori.