Cara Optimasi Odoo OpenERP dan PostgreSQL

Odoo memang cocok digunakan sebagai kebutuhan ERP & CRM, karena ada beragam fitur yang disediakan. Selain itu, Odoo juga gratis, bersifat open-source, dan didalamnya sudah terdapat fitur Project Management, Sales Management, Accounting, Billing, dan Manufacturing. Odoo termasuk salah satu software yang kompleks dan memiliki data yang besar di dalam database setiap melakukan deploy module. Software ini seringkali mendapati resource yang tiba-tiba naik, maupun resource yang limit. Oleh karena itu, kamu perlu memahami cara optimasi Odoo OpenERP dan PostgreSQL dari artikel berikut.

Sebelum mempraktikkan cara optimasi Odoo OpenERP dan PostgreSQL, pastikan hal-hal berikut sudah terpenuhi:

  1. Menggunakan SSD (Fast Disk Drive untuk Storage).
  2. RAM besar (Memiliki VPS dengan RAM yang besar).
  3. Mode Multiprocessing aktif (Multiprocessing Mode hanya tersedia dengan Unix-based system).
  4. Konfigurasi dan Optimize PostgreSQL.

Cara Optimasi Odoo

Menggunakan SSD

Sebelum melakukan tuning pada konfigurasi Odoo, kamu perlu memastikan server/VPS yang digunakan sudah menggunakan SSD (Solid-state Drive). Di Dewaweb, kami menggunakan super-fast low-latency SSD Drive dengan memberikan High IOPS dan throughput yang membutuhkan akses disk I/O dengan kecepatan tinggi.

Contoh hasil tes kecepatan SSD:

1024+0 records in

1024+0 records out

1073741824 bytes (1.1 GB) copied, 1.91992 s, 559 MB/s

Artinya kecepatan SSD-nya adalah 559MB/sec.

RAM besar

Selain menggunakan SSD, menggunakan Odoo OpenERP juga akan memakai banyak resource, maka kamu membutuhkan RAM yang tidak sedikit. Berdasarkan dokumentasi Odoo, pengguna disarankan memiliki RAM sebesar 4GB.

Multiprocessing Odoo

Cara optimasi Odoo dilakukan dengan mengaktifkan mode multiprocessing. Berikut perintah untuk mengaktifkan Multiprocessing pada konfigurasi Odoo:

 

$ /usr/bin/openerp-server –help

 

Akan mengeluarkan output dibawah ini:

 

Usage: openerp-server [options]

 

Options:

  –version             show program’s version number and exit

 

  (…)

 

  Multiprocessing options:

    –workers=WORKERS   Specify the number of workers, 0 disable prefork mode.

    –limit-memory-soft=LIMIT_MEMORY_SOFT

                        Maximum allowed virtual memory per worker, when

                        reached the worker be reset after the current request

                        (default 671088640 aka 640MB).

    –limit-memory-hard=LIMIT_MEMORY_HARD

                        Maximum allowed virtual memory per worker, when

                        reached, any memory allocation will fail (default

                        805306368 aka 768MB).

    –limit-time-cpu=LIMIT_TIME_CPU

                        Maximum allowed CPU time per request (default 60).

    –limit-time-real=LIMIT_TIME_REAL

                        Maximum allowed Real time per request (default 120).

    –limit-request=LIMIT_REQUEST

                        Maximum number of request to be processed per worker

                        (default 8192).

 

Artinya:

Banyaknya workers harus sama dengan banyaknya CPU yang dialokasikan ke VPS, atau jika kamu ingin memberikan beberapa CPU untuk keperluan proses PostgreSQL, cron job atau aplikasi lain yang diinstal di VPS/Server.

Pada limit-memory-soft dan limit-memory-hard biarkan tetap pada default value, atau jika ingin mengubahnya, tergantung RAM yang tersedia di VPS. Contohnya, jika kamu memiliki VPS dengan 12 CPU dan 10 GB RAM. 

Lakukan konfigurasi tweak.

$ nano /etc/openerp-server.conf

 

Maka tweak-nya:

 

Workers = 12

Limit_memory_soft = 7516192768

Limit_memory_hard = 8589934592

Limit_request = 8192

Limit_time_cpu = 60

Limit_time_real = 120

Max_cron_threads = 2

Konfigurasi dan Optimasi PostgreSQL

Saat menaikkan performance dari PostgreSQL, pastikan kamu menggunakan versi terbaru dari PostgreSQL. Ada 2 pengaturan pada PostgreSQL, yaitu shared_buffers dan effective_cache_size. 

Berikut ini adalah contoh penggunaan SSD VPS dengan 12 CPU dan 10 GB RAM:

 

$ nano /etc/postgresql/9.3/main/postgresql.conf

 

Maka tweak-nya:

Shared_buffers = 2048MB

Effective_cache_size = 5120MB

 

Shared_buffers diset 20% dari total RAM dan cache_size diset 50% dari total RAM.

 

Jangan lupa untuk restart services Odoo dan PostgreSQL.

Setelah menggunakan konfigurasi tersebut maka seharusnya login, loading POS, dan kebutuhan lainnya lancar.

Jangan lupa juga untuk melakukan Vacuum pada database secara manual, untuk membersihkan temporary data. Proses ini juga menggunakan CPU dan Disk Usage yang cukup tinggi.

Simpulan

Cara optimasi Odoo ini wajib pahami dan kamu lakukan supaya CPU dan RAM bekerja dengan optimal, serta untuk kelancaran kebutuhan pada modul yang ada di Odoo. Demikian artikel ini, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb, ya. Semoga artikel ini membantu!