Optimalkan Kinerja Odoo dengan Konfigurasi Worker yang Tepat

Apa itu Worker dalam Odoo?

Dalam konteks Odoo, “worker” adalah proses yang berjalan di server untuk menangani permintaan dari pengguna. Worker ini memungkinkan Odoo untuk memproses beberapa permintaan secara bersamaan, meningkatkan efisiensi dan kinerja sistem.


Fungsi Worker

Fungsi utama dari worker adalah untuk menangani berbagai tugas yang diberikan oleh pengguna, seperti:

  • Memproses permintaan HTTP dari pengguna.
  • Menjalankan tugas-tugas latar belakang seperti cron jobs.
  • Mengelola transaksi database.
  • Menyediakan layanan yang diperlukan oleh modul-modul Odoo.


Cara Kerja Worker

Worker bekerja dengan cara memproses permintaan secara paralel. Berikut adalah langkah-langkah umum bagaimana worker bekerja:

  1. Penerimaan Permintaan
    Ketika pengguna mengirimkan permintaan (misalnya, mengklik tombol atau mengakses halaman), permintaan tersebut diterima oleh server Odoo.
  2. Distribusi Permintaan
    Server mendistribusikan permintaan ini ke worker yang tersedia.
  3. Pemrosesan Permintaan
    Worker memproses permintaan tersebut, yang bisa melibatkan pengambilan data dari database, menjalankan logika bisnis, dan menghasilkan respons.
  4. Pengiriman Respons
    Setelah worker menyelesaikan pemrosesan, hasilnya dikirim kembali ke pengguna.


Perhitungan dalam Konfigurasi Pemakaian Worker

Konfigurasi jumlah worker yang optimal sangat penting untuk kinerja Odoo. Berikut adalah beberapa faktor yang perlu dipertimbangkan:

  • Jumlah Pengguna
    Sebagai aturan umum, satu worker dapat menangani sekitar 6 pengguna yang aktif secara bersamaan.
  • Beban Kerja
    Beban kerja yang lebih berat (misalnya, pengguna yang sering menjalankan laporan besar atau impor data) memerlukan lebih banyak worker.
  • Spesifikasi Server
    Jumlah worker juga tergantung pada spesifikasi server, seperti jumlah CPU dan RAM. Sebagai contoh, untuk server dengan 8 core CPU dan 16 GB RAM, perhitungan jumlah worker bisa menggunakan rumus: (CPU cores * 2) + 1.


Langkah-langkah Konfigurasi Worker pada Odoo

  1. Buka File Konfigurasi:
    • File konfigurasi Odoo biasanya terletak di /etc/odoo/odoo.conf atau lokasi lain tergantung pada instalasi Anda.
    • Anda dapat membuka file ini menggunakan editor teks seperti nano atau vim. Contoh:
      sudo nano /etc/odoo/odoo.conf
      
  2. Tambahkan atau Edit Parameter Worker:
    • Tambahkan atau edit parameter berikut dalam file konfigurasi:
      [options]
      workers = 17  # Sesuaikan dengan jumlah worker yang Anda hitung
      limit_memory_hard = 768 * 1024 * 1024 * 17 # Batas memori keras dalam byte
      limit_memory_soft = 640 * 1024 * 1024 * 17 # Batas memori lunak dalam byte
      max_cron_threads = 2  # Jumlah thread cron maksimal
      
  3. Simpan dan Tutup File Konfigurasi:
    • Setelah melakukan perubahan, simpan file dan tutup editor teks.
  4. Restart Layanan Odoo:
    • Untuk menerapkan perubahan, restart layanan Odoo. Contoh:
      sudo systemctl restart odoo


Penjelasan Parameter

  • workers: Jumlah worker yang akan digunakan oleh Odoo. Rumus umum adalah (CPU cores * 2) + 1.
  • limit_memory_hard: Batas memori keras yang tidak boleh dilampaui oleh worker. Jika dilampaui, worker akan dihentikan.
  • limit_memory_soft: Batas memori lunak yang memberikan peringatan sebelum mencapai batas keras.
  • max_cron_threads: Jumlah maksimal thread yang digunakan untuk menjalankan tugas cron.


Contoh Konfigurasi

Misalkan Anda memiliki server dengan 8 core CPU dan 16 GB RAM, maka konfigurasi dalam file odoo.conf bisa seperti ini:

[options]
workers = 17
limit_memory_hard = 768 * 1024 * 1024 * 17
limit_memory_soft = 640 * 1024 * 1024 * 17
max_cron_threads = 2

Dengan konfigurasi ini, Odoo akan dapat menangani lebih banyak permintaan secara efisien dan memastikan penggunaan sumber daya yang optimal. 

Contoh yang lain dengan spesifikasi server 2 Cores CPU, 2GB RAM, dan 60GB SSD, Anda perlu melakukan konfigurasi worker Odoo dengan hati-hati untuk memastikan kinerja yang optimal.

[options]
workers = 3  # (2 Cores * 2) + 1
limit_memory_hard = 512 * 1024 * 1024 * 3
limit_memory_soft = 256 * 1024 * 1024 * 3
max_cron_threads = 1  # Jumlah thread cron maksimal

Berdasarkan rumus (CPU cores * 2) + 1, dengan 2 cores CPU seharusnya mendapatkan 5 workers. Namun, dalam kasus server dengan spesifikasi terbatas seperti 2GB RAM, kita perlu mempertimbangkan keterbatasan memori juga.

  • Pertimbangan Memori
    Dengan hanya 2GB RAM, menjalankan 5 workers mungkin tidak optimal karena setiap worker membutuhkan memori untuk beroperasi. Jika terlalu banyak worker dijalankan, server bisa kehabisan memori, yang akan menyebabkan penurunan kinerja atau bahkan crash.
  • ​Rekomendasi Konfigurasi
    Untuk server dengan 2 cores CPU dan 2GB RAM, konfigurasi yang lebih konservatif dengan 3 workers adalah untuk memastikan bahwa setiap worker memiliki cukup memori untuk beroperasi dengan baik. Ini adalah kompromi antara jumlah worker dan ketersediaan memori.

Dengan konfigurasi ini, Anda dapat memastikan bahwa server tidak kelebihan beban dan tetap beroperasi dengan lancar. Jika Anda menemukan bahwa server dapat menangani lebih banyak worker tanpa masalah memori, Anda dapat menyesuaikan jumlah worker sesuai kebutuhan.


Tips Tambahan

  • Monitor Kinerja: Setelah konfigurasi, pantau kinerja server untuk memastikan tidak ada bottleneck. Anda bisa menggunakan alat monitoring seperti htop atau glances.
  • Optimasi Database: Pastikan PostgreSQL juga dioptimalkan untuk kinerja yang lebih baik. Misalnya, Anda bisa mengatur shared_buffers dan effective_cache_size sesuai dengan RAM yang tersedia.


Langkah-langkah Konfigurasi Postgresql pada Odoo

  1. Buka File Konfigurasi:
    • File konfigurasi PostgreSQL biasanya terletak di direktori data PostgreSQL, misalnya /etc/postgresql/postgresql.conf atau lokasi lain tergantung pada instalasi Anda.
    • Anda dapat membuka file ini menggunakan editor teks seperti nano atau vim. Contoh:
      sudo nano /etc/postgresql/postgresql.conf
      
  2. Atur Parameter shared_buffers
    • Parameter shared_buffers menentukan jumlah memori yang didedikasikan untuk caching data di PostgreSQL. Nilai yang disarankan adalah sekitar 15% hingga 25% dari total RAM sistem.
    • Contoh konfigurasi untuk server dengan 8GB RAM:
      shared_buffers = 2GB  # 25% dari 8GB RAM
      
  3. Atur Parameter effective_cache_size
    • Parameter effective_cache_size memperkirakan jumlah memori yang tersedia untuk caching oleh sistem operasi dan database. Nilai yang disarankan adalah sekitar 50% dari total RAM sistem.
    • Contoh konfigurasi untuk server dengan 8GB RAM:
      effective_cache_size = 4GB  # 50% dari 8GB RAM
      
  4. Simpan dan Tutup File Konfigurasi
    • Setelah melakukan perubahan, simpan file dan tutup editor teks.
  5. Restart Layanan PostgreSQL
    • Untuk menerapkan perubahan, restart layanan PostgreSQL. Contoh:
      sudo systemctl restart postgresql
      


Penjelasan Parameter

  • shared_buffers: Menentukan jumlah memori yang digunakan oleh PostgreSQL untuk buffer bersama. Nilai yang lebih tinggi dapat meningkatkan kinerja dengan mengurangi jumlah akses disk.
  • effective_cache_size: Memberikan perkiraan jumlah memori yang tersedia untuk caching oleh sistem operasi dan PostgreSQL. Nilai yang lebih tinggi dapat membantu PostgreSQL dalam membuat keputusan yang lebih baik tentang penggunaan indeks.


Contoh Konfigurasi

Misalkan Anda memiliki server dengan 8GB RAM, berikut adalah contoh konfigurasi dalam file postgresql.conf:

shared_buffers = 2GB
effective_cache_size = 4GB

Dengan konfigurasi ini, Anda dapat mengoptimalkan kinerja database PostgreSQL dan memastikan sistem berjalan dengan efisien.

 

Tautan

dbfilter: Cara Mudah Menyaring Database Berdasarkan Domain