For the complete documentation index, see llms.txt. This page is also available as Markdown.

Alokasi memori untuk layanan

Sesuaikan alokasi RAM untuk layanan Java Navixy dan MySQL pada penerapan systemd, runit, Docker, dan Windows. Edit file konfigurasi layanan untuk menetapkan batas memori.

Seiring bisnis Anda berkembang dan jumlah Perangkat terhubung pasti bertambah, kebutuhan sumber daya untuk memastikan fungsi platform Navixy yang semestinya juga meningkat. Meskipun daya CPU dan ruang disk dialokasikan sesuai kebutuhan tanpa batasan apa pun, jumlah maksimum RAM yang dapat digunakan diatur secara ketat oleh konfigurasi sistem. 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 file konfigurasi yang diperlukan dan melakukan penyesuaian yang diperlukan guna mengoptimalkan kinerja platform.

Layanan Java

Backend platform Navixy terdiri dari tiga layanan Java. Konfigurasi default mengalokasikan jumlah RAM berikut untuk layanan-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 dalam pemrosesan data pelacak, meningkatkan jumlah memori yang dialokasikan dapat menjadi solusinya. Di bawah ini kami akan melihat di mana menemukan config yang menentukan nilai ini, tergantung pada bagaimana platform diterapkan.

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

Saat melakukan pengeditan pada config, sangat penting untuk mempertimbangkan total memori yang tersedia. Ini memastikan bahwa Anda tidak menentukan jumlah yang melebihi batas fisik. Dengan demikian, Anda dapat mengoptimalkan kinerja secara efektif dan menghindari kemungkinan masalah. Selain itu, jika layanan Java dan basis data berada di server yang sama, jangan lupa menyisakan ruang yang cukup untuk operasi basis data - secara default sebesar 70% dari seluruh memori.

Linux - layanan systemd

Untuk versi platform saat ini (baik yang baru diinstal maupun yang telah menerima pembaruan terbaru), systemd digunakan sebagai pengelola 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 file ada baris seperti MAX_HEAP_SIZE="1024m". Tentukan jumlah memori yang ingin Anda alokasikan untuk layanan dalam megabyte. Jangan lupa mempertahankan huruf m yang berarti megabyte.

Mulai ulang platform atau layanan tertentu untuk menerapkan perubahan.

Linux - layanan runit

Jika Anda memilih untuk tidak beralih ke systemd saat memperbarui platform Anda ke versi terbaru (opsi ini ditawarkan selama pembaruan otomatis), atau jika Anda menggunakan versi lama platform Navixy On-Premise, layanan Java menggunakan runit supervisor layanan. Ia juga memiliki file konfigurasi sendiri, dan file tersebut berada pada jalur berikut:

  • /etc/sv/api-server/run

  • /etc/sv/sms-server/run

  • /etc/sv/tcp-server/run

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

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

Linux - instance Docker

Pada versi platform yang dijalankan di Docker, alokasi memori diatur saat kontainer diterapkan - ketika perintah docker compose up -d dijalankan. Ini adalah langkah wajib saat menginstal dan memperbarui sebuah instance, tetapi dapat dilakukan secara terpisah dari proses-proses tersebut.

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

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

Berikut adalah contoh cara melakukannya untuk server API pada instance yang sudah ada:

Simpan file.

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

Ini akan membuat ulang kontainer dengan mempertimbangkan pengaturan baru.

Itu compose.yaml file diganti saat instance Navixy yang dijalankan di Docker diperbarui, dan dalam kasus ini pengaturan di atas harus dilakukan lagi. Anda dapat melakukannya sebelum pertama kali menjalankan instance yang baru diperbarui sehingga Anda dapat menjalankannya segera dengan pengaturan yang diperlukan.

Windows - layanan wrapper

Layanan Java tidak dirancang untuk berjalan di Windows secara default, sehingga perangkat lunak pihak ketiga digunakan untuk mengaktifkannya. Perangkat lunak itu disebut YAJSW (Yet Another Java Service Wrapper) dan dirancang untuk mengonversi file 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 berada di mana saja, tetapi biasanya ditempatkan di folder C:\java\wrapper folder. Di dalamnya Anda akan menemukan folder \conf yang berisi file konfigurasi untuk tiga layanan berikut:

  • wrapper.api-server.conf

  • wrapper.sms-server.conf

  • wrapper.tcp-server.conf

Di bagian bawah setiap konfigurasi terdapat pengaturan startup layanan, dan di dalamnya ada baris seperti:

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

Mulai ulang layanan-layanan tersebut untuk menerapkan perubahan.

MySQL

Basis data adalah layanan yang paling banyak memerlukan sumber daya di dalam platform. Ketika sejumlah besar perangkat memberi tekanan pada memori yang terbatas, basis data mungkin kesulitan menangani semua permintaan masuk. Akibatnya, platform Navixy dapat beroperasi lambat dan tidak stabil. Kami sangat merekomendasikan memantau kinerja basis data dan, jika perlu, meningkatkan kapasitas RAM server.

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

File konfigurasi MySQL berada pada jalur berikut:

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

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

Pada [mysqld] bagian konfigurasi ini, Anda akan menemukan parameter innodb_buffer_pool_size - parameter ini menetapkan jumlah memori yang dialokasikan untuk basis data. Jika ukuran saat ini tidak mencukupi, ubah parameter sesuai kebutuhan (pastikan mempertahankan satuan ukuran - G untuk gigabyte). Simpan file dan mulai ulang MySQL.

Terakhir diperbarui

Apakah ini membantu?