Alokasi memori untuk layanan

Seiring bisnis Anda berkembang dan jumlah perangkat yang terhubung pasti meningkat, permintaan akan sumber daya untuk memastikan berfungsinya platform Navixy dengan baik juga ikut bertambah. Sementara daya CPU dan ruang disk dialokasikan sesuai kebutuhan tanpa batasan, jumlah maksimum RAM yang dapat digunakan diatur secara ketat oleh konfigurasi sistem. Oleh karena itu, mungkin akan tiba saatnya Anda menyadari bahwa memori yang dialokasikan tidak mencukupi sehingga perlu diperluas. Pada bagian ini, kami akan memberikan panduan untuk menemukan berkas konfigurasi yang diperlukan dan melakukan penyesuaian yang dibutuhkan guna mengoptimalkan kinerja platform.

Layanan Java

Backend platform Navixy terdiri dari tiga layanan Java. Konfigurasi bawaan mengalokasikan RAM dalam jumlah berikut untuk layanan tersebut:

  • API-server - 1024 Mb

  • SMS-server - 512 Mb

  • TCP-server - 1024 Mb

Jumlah memori ini cukup untuk operasi platform yang stabil dengan hingga beberapa ribu perangkat terdaftar. Namun, jika Anda mengalami ketidakstabilan platform, seperti kueri API yang lambat, pembuatan laporan yang lama, atau masalah dengan pemrosesan data tracker, meningkatkan jumlah memori yang dialokasikan dapat menjadi solusi. Di bawah ini kami akan melihat di mana menemukan konfigurasi yang menentukan nilai ini, bergantung pada bagaimana platform diterapkan.

Disarankan untuk menentukan jumlah memori yang dialokasikan sebagai kelipatan 1024. Nilai ditentukan untuk setiap layanan secara terpisah.

Saat mengedit konfigurasi, sangat penting untuk mempertimbangkan total memori yang tersedia. Hal ini memastikan Anda tidak menentukan jumlah yang melebihi batasan fisik. Dengan demikian, Anda dapat mengoptimalkan kinerja secara efektif dan menghindari potensi masalah. Selain itu, jika layanan Java dan database berada pada server yang sama, jangan lupa untuk menyisakan ruang yang cukup untuk operasi database - secara bawaan sebesar 70% dari seluruh memori.

Linux - layanan systemd

Untuk versi platform saat ini (baik yang baru dipasang maupun yang telah menerima pembaruan terbaru), systemd digunakan sebagai manajer startup layanan. Konfigurasi startup berada di direktori layanan pada jalur berikut:

  • /home/java/api-server/api-server.service.env

  • /home/java/sms-server/sms-server.service.env

  • /home/java/tcp-server/tcp-server.service.env

Di dalam setiap berkas terdapat baris seperti MAX_HEAP_SIZE="1024m". Tentukan jumlah memori yang ingin Anda alokasikan untuk layanan dalam megabita. Jangan lupa untuk mempertahankan huruf m yang berarti megabita.

Mulai ulang platform atau layanan tertentu untuk menerapkan perubahan.

Linux - layanan runit

Jika Anda memilih untuk tidak beralih ke systemd saat memperbarui platform ke versi terbaru (opsi ini ditawarkan selama pembaruan otomatis), atau jika Anda menggunakan versi lama platform Navixy On-premise, layanan Java menggunakan runit sebagai pengawas layanan. Ini juga memiliki berkas konfigurasinya sendiri, dan berlokasi pada jalur berikut:

  • /etc/sv/api-server/run

  • /etc/sv/sms-server/run

  • /etc/sv/tcp-server/run

Di antara parameter di dalam setiap berkas Anda akan menemukan nilai Xmx - ini adalah jumlah maksimum memori yang dapat dialokasikan untuk layanan Java terkait. Seluruh parameter terlihat seperti ini: -Xmx1024m - ini berarti 1024 Mb RAM dialokasikan untuk layanan. Edit nilai ini dan tentukan yang diperlukan, lalu simpan berkasnya.

Mulai ulang platform dengan restart-navixy perintah untuk menerapkan perubahan.

Linux - instance berbasis docker

Pada versi platform berbasis docker, alokasi memori ditetapkan saat kontainer diterapkan - ketika docker compose up -d perintah dijalankan. Ini adalah langkah wajib saat memasang dan memperbarui sebuah instance, namun dapat dilakukan terlepas dari proses tersebut.

Meskipun pengaturan instance dasar ditentukan dalam .env berkas, sebuah berkas bernama compose.yaml digunakan untuk mengonfigurasi operasi kontainer - berkas ini berada di folder kerja instance yang sama dengan berkas sistem lainnya.

Di dalam berkas ini, Anda dapat melihat berbagai bagian yang menetapkan opsi startup untuk semua kontainer. Untuk mengubah jumlah memori yang dialokasikan bagi kontainer api, sms dan tcp Anda perlu menemukan bagian yang sesuai dan menambahkan opsi "MAX_HEAP_SIZE=" ke subbagian environment , sebagai contoh:

- "MAX_HEAP_SIZE=2048m"

Di bawah ini adalah contoh bagaimana hal ini dilakukan untuk api-server pada instance yang sudah ada:

Simpan berkas.

Setelah perubahan diterapkan, jalankan perintah berikut saat berada di direktori kerja:

docker compose up -d

Ini akan membuat ulang kontainer dengan mempertimbangkan pengaturan baru.

Parameter compose.yaml berkas diganti ketika instance Navixy berbasis docker diperbarui, dan dalam kasus ini pengaturan di atas harus dilakukan kembali. Anda dapat melakukannya sebelum pertama kali menjalankan instance yang baru diperbarui sehingga Anda dapat langsung menjalankannya dengan pengaturan yang diperlukan.

Windows - layanan wrapper

Layanan Java tidak dirancang untuk berjalan di Windows secara bawaan, sehingga perangkat lunak pihak ketiga digunakan untuk mengaktifkannya. Perangkat lunak ini disebut YAJSW (Yet Another Java Service Wrapper) dan dirancang untuk mengonversi berkas eksekusi jar biasa menjadi layanan Windows. Perangkat lunak ini disertakan dalam paket distribusi platform Navixy, dan dikonfigurasi selama instalasi awal.

Wrapper tidak memiliki direktori instalasi standar dan dapat ditempatkan di mana saja, tetapi biasanya diletakkan di folder C:\java\wrapper Di dalamnya Anda akan menemukan folder \conf yang berisi berkas konfigurasi untuk ketiga layanan:

  • wrapper.api-server.conf

  • wrapper.sms-server.conf

  • wrapper.tcp-server.conf

Di bagian bawah setiap konfigurasi terdapat pengaturan startup layanan, dan mencakup baris seperti:

wrapper.java.additional.3 = -Xmx1024m

Nilai parameter -Xmx1024m berarti 1024 Mb RAM dialokasikan untuk layanan. Edit nilai ini dan tentukan jumlah RAM yang diperlukan, dengan mempertahankan huruf m m, lalu simpan berkasnya.

Mulai ulang layanan untuk menerapkan perubahan.

MySQL

Database adalah layanan paling intensif sumber daya dalam platform. Ketika sejumlah besar perangkat memberi tekanan pada memori terbatas, database mungkin kesulitan menangani semua permintaan masuk. Akibatnya, hal ini dapat menyebabkan platform Navixy berjalan lambat dan tidak stabil. Kami sangat merekomendasikan memantau kinerja database dan, jika perlu, meningkatkan kapasitas RAM server.

Jumlah RAM yang dialokasikan untuk database adalah nilai statis yang ditentukan dalam konfigurasi MySQL. Umumnya disarankan untuk menjaga nilai ini pada 70% dari total RAM di server. Oleh karena itu, jika Anda meningkatkan total RAM untuk kinerja database yang lebih baik, Anda perlu mengubah nilai dalam konfigurasi setelahnya.

Berkas konfigurasi MySQL berlokasi pada jalur berikut:

  • Linux: /etc/mysql/mysql.conf.d/mysqld.cnf

  • Windows: C:\ProgramData\MySQL\MySQL Server 8\my.ini

Di bawah bagian [mysqld] dari konfigurasi ini, Anda akan menemukan parameter innodb_buffer_pool_size - parameter ini menetapkan jumlah memori yang dialokasikan untuk database. Jika ukuran saat ini tidak mencukupi, ubah parameter sesuai kebutuhan (pastikan untuk mempertahankan satuan ukuran - G untuk gigabita). Simpan berkas dan mulai ulang MySQL.

Last updated

Was this helpful?