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.
Saat harus mengubah konfigurasi yang mengatur pemuatan layanan, kehati-hatian maksimal diperlukan. Berhati-hatilah dan perhatikan dengan saksama saat mengeditnya untuk memastikan operasi berjalan lancar.
Ingat! Perubahan konfigurasi yang ceroboh dapat menyebabkan layanan tidak dapat beroperasi sama sekali. Sebelum melakukan perubahan apa pun pada config, disarankan untuk membuat salinan cadangan. Karena config hanyalah file teks, Anda dapat menyimpannya dengan aman di direktori terpisah atau menyimpan isinya di tempat lain, sehingga integritasnya terjaga dan mencegah kemungkinan kehilangan.
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.
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.
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.confwrapper.sms-server.confwrapper.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.cnfWindows:
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?