OOM Killer Resolutions: Processes with High Risk of Memory Leak
Perhatikan secara khusus proses dalam grup ini sebagai penyebab paling mungkin dari masalah out-of-memory Anda (diurutkan berdasarkan peran server):
Load Balancers
Common recommendations
Tambahkan lebih banyak RAM ke node yang sesuai - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal.
Related processes
Process | Resolution |
---|---|
varnishd | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
Application Servers
Klik pada poin-poin di daftar di bawah ini untuk melihat beberapa rekomendasi umum tentang cara menangani masalah kekurangan memori berdasarkan bahasa pemrograman yang digunakan, serta resolusi yang sesuai untuk proses terkait yang paling menuntut:
- Java
Common recommendations
Tinjau konfigurasi manajemen memori utama untuk mesin Java Anda dan, jika diperlukan, sesuaikan dengan kebutuhan aplikasi Anda, misalnya:
java -Xmx2048m -Xms256m
di mana
- Xmx menandakan memori heap maksimum yang dapat dialokasikan untuk Java Virtual Machine (JVM)
- Xms menandakan alokasi memori awal
Lihat dokumentasi resmi untuk info lebih lanjut tentang Java memory management sistem.
Platform juga mengimplementasikan manajemen memori otomatis tambahan untuk kontainer Java menggunakan Garbage Collector. Anda dapat menyesuaikan pengaturannya sesuai dengan spesifikasi aplikasi Anda untuk menghindari masalah OOM dan mendapatkan pemanfaatan memori yang lebih efisien. Juga, pertimbangkan bahwa JVM memerlukan lebih banyak memori daripada hanya heap - baca referensi Java Memory Structure untuk mendapatkan wawasan yang lebih dalam.
Related processes
Process | Resolution |
---|---|
java | Periksa parameter xmx , xms , xmn pada mesin Java Anda dan konfigurasikan sesuai dengan kebutuhan aplikasi Anda |
- PHP
Common recommendations
1. Jika masalah terjadi pada layanan httpd (httpd.itk), sesuaikan parameter manajemen memori server sebagai berikut:
- periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd
- hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf
- kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM
Jika Anda melihat peningkatan penggunaan memori yang terus-menerus per instance (kebocoran), Anda perlu mengurangi nilai MaxRequestsPerChild (sekitar 1000-5000).
2. Untuk proses nginx, sambungkan ke kontainer Anda melalui SSH dan periksa ukuran instance php-fpm (misalnya dengan alat ps atau top):
- jika semua instance mengonsumsi ~50-100Mb RAM, nonaktifkan auto configuration dan kurangi parameter max_children
- jika ukuran instance sangat bervariasi atau melebihi 200-300Mb, proses kemungkinan bocor - periksa dan optimalkan kode Anda atau, sebagai alternatif, nonaktifkan auto configuration dan kurangi parameter max_requests_per_child
Related processes
Process | Resolution |
---|---|
httpd | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | |
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | |
lsyncd | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
httpd.itk | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | |
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | |
nginx | Nonaktifkan Jelastic auto configuration dan sesuaikan parameter yang sesuai sesuai dengan spesifikasi aplikasi Anda |
php | Nonaktifkan Jelastic auto configuration dan sesuaikan parameter yang sesuai sesuai dengan spesifikasi aplikasi Anda |
php-fpm | Nonaktifkan Jelastic auto configuration dan sesuaikan parameter yang sesuai sesuai dengan spesifikasi aplikasi Anda |
php-fpm7.0 | Nonaktifkan Jelastic auto configuration dan sesuaikan parameter yang sesuai sesuai dengan spesifikasi aplikasi Anda |
php7.0 | Nonaktifkan Jelastic auto configuration dan sesuaikan parameter yang sesuai sesuai dengan spesifikasi aplikasi Anda |
- Ruby
Common recommendations
Masalah kebocoran memori cukup umum untuk Ruby, jadi, sebagai langkah pertama, pertimbangkan untuk memeriksa dan mengoptimalkan kode Anda. Sebagai alternatif, coba tambahkan batas RAM untuk sebuah instance.
Related processes
Process | Resolution |
---|---|
httpd | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | |
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | |
httpd.itk | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | |
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | |
bundle | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
gem | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
ruby | Pertimbangkan untuk memeriksa dan mengoptimalkan kode Anda atau tambahkan lebih banyak RAM ke node |
- Python
Common recommendations
1. Jika masalah terjadi pada layanan httpd (httpd.itk), sesuaikan parameter manajemen memori server sebagai berikut:
- periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd
- hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf
- kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM
Jika Anda melihat peningkatan penggunaan memori yang terus-menerus per instance (kebocoran), kurangi nilai MaxRequestsPerChild (sekitar 1000-5000).
2. Jika tidak, tambahkan lebih banyak RAM ke node - proses Python utama mungkin hanya memerlukan lebih banyak memori untuk operabilitas normal.
Related processes
Process | Resolution |
---|---|
httpd | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | |
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | |
lsyncd | Tambahkan lebih banyak RAM ke node - aplikasi yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
httpd.itk | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | |
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | |
pip | Bisa disebabkan oleh masalah jaringan (sehingga proses pengunduhan terjebak); jika tidak, tambahkan lebih banyak RAM ke node - aplikasi yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
python | Tambahkan lebih banyak RAM ke node - aplikasi yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
python2.7 | Tambahkan lebih banyak RAM ke node - aplikasi yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
- NodeJS
Common recommendations
Restart container untuk memulihkan proses yang dihentikan. Jika masalah berulang, tambahkan lebih banyak RAM ke node - aplikasi yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal.
Related processes
Process | Resolution |
---|---|
lsyncd | Tambahkan lebih banyak RAM ke node - aplikasi yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
grunt | Tambahkan lebih banyak RAM ke node - aplikasi yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
node | Tambahkan lebih banyak RAM ke node - aplikasi yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
npm | Tambahkan lebih banyak RAM ke node - aplikasi yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
phantomjs | Tambahkan lebih banyak RAM ke node - aplikasi yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
Database Servers
Klik pada stack DB yang diperlukan dalam daftar di bawah ini untuk menampilkan rekomendasi umum yang sesuai untuk menangani masalah OOM, serta resolusi untuk proses yang dihentikan tertentu:
- MySQL
Common recommendations
1. Jika menggunakan engine InnoDB (tertanam sejak MySQL versi 5.5), periksa ukuran buffer dengan perintah berikut:
SHOW ENGINE INNODB STATUS\G;
Jika nilai buffer tinggi (lebih dari 80% dari total RAM kontainer), kurangi ukuran pool yang diperbolehkan dengan parameter innodb_buffer_pool_size di file /etc/my.cnf; jika tidak, tambahkan lebih banyak RAM ke server.
2. Selain itu, periksa log MySQL untuk peringatan dan rekomendasi.
Related processes
Process | Resolution |
---|---|
httpd | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | |
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | |
mysqld | 1. Jika menggunakan engine InnoDB (secara default untuk MySQL 5.5 dan lebih tinggi), periksa ukuran buffer dengan perintah SHOW ENGINE INNODB STATUS\G;. Jika nilai buffer tinggi (lebih dari 80% dari total RAM kontainer), kurangi ukuran pool yang diperbolehkan dengan parameter innodb_buffer_pool_size di file /etc/my.cnf |
2. Periksa log MySQL untuk peringatan dan rekomendasi |
- MongoDB
Common recommendations
Jika masalah terjadi pada layanan httpd, sesuaikan parameter manajemen memori server sebagai berikut:
- periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd
- hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf
- kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM
Jika Anda melihat peningkatan penggunaan memori yang terus-menerus per instance (kebocoran), kurangi nilai MaxRequestsPerChild (sekitar 1000-5000).
Related processes
Process | Resolution |
---|---|
httpd | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | |
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | |
mongod | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
- PostgreSQL
Common recommendations
Tambahkan lebih banyak RAM ke node yang sesuai - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal.
Related processes
Process | Resolution |
---|---|
httpd | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | |
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | |
postgres | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
- Redis
Common recommendations
Tambahkan lebih banyak RAM ke node yang sesuai - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal.
Related processes
Process | Resolution |
---|---|
redis-server | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
Common Processes for Different-Type Stacks
Common recommendations
Proses dalam bagian ini dapat dijalankan dan, kemudian, dihentikan dalam berbagai jenis node. Oleh karena itu, resolusi OOM untuk mereka bervariasi dan tergantung pada proses itu sendiri - lihat tabel di bawah ini untuk menemukan rekomendasi yang sesuai.
Related processes
Process | Stack | Resolution |
---|---|---|
httpd | PHP | |
Ruby | ||
Python | ||
MySQL | ||
MongoDB | ||
PostgreSQL | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd | |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | ||
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | ||
lsyncd | PHP | |
NodeJS | ||
Python | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal | |
httpd.itk | PHP | |
Ruby | ||
Python | 1. Periksa jumlah rata-rata RAM yang digunakan oleh setiap instance httpd | |
2. Hapus Jelastic autoconfiguration mark di dalam file /etc/httpd/httpd.conf | ||
3. Kurangi nilai ServerLimit dan MaxClients sesuai dengan formula: (Total_RAM - 5%) / Average_RAM | ||
procmail | Any | Restart container untuk memulihkan proses |
vsftpd | Any | Restart container untuk memulihkan proses |
yum | Any | Restart container untuk memulihkan proses |
cc1 | 3rd party | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
clamd | 3rd party | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
ffmpeg | 3rd party | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
firefox | 3rd party | Tambahkan lebih banyak RAM ke node - layanan yang ditangani mungkin memerlukan lebih banyak memori untuk operabilitas normal |
newrelic-daemon | 3rd party | Restart layanan stack utama (nginx, tomcat, nodejs, dll.) |