Gunicorn: Memori meningkat setelah layanan berjalan lama

Dibuat pada 10 Okt 2018  ·  3Komentar  ·  Sumber: benoitc/gunicorn

HAI :
Saya menggunakan flask + gunicorn untuk membuat layanan api. Karena saya ingin membagi data yang besar antar prosesor pekerja, jadi saya memasukkan data ke gunicorn.conf dan menggunakan "gunicorn -c gunicorn.conf" untuk menyelesaikannya. Data apa pun di gunicorn.conf hanya akan dilakukan sekali, jadi setiap prosesor pekerja berbagi data besar yang sama. Data besar dalam program saya hanya siap, tidak ada operasi penulisan. Tetapi ketika saya memulai layanan saya dan menjalankan waktu yang lama, kadang-kadang memori meningkat 1G tiba-tiba, saya kira mungkin ada beberapa operasi penulisan di gunicorn yang menyebabkan mekanisme copy-on-write sistem. Dan Bagaimana cara berbagi data besar antara prosesor pekerja? Saya masih bingung dengan masalah ini, mengharapkan balasan Anda!!! Terima kasih!

Komentar yang paling membantu

Ini terkait dengan #1640.

Satu-satunya cara lain untuk menangani ini adalah dengan melakukan sesuatu yang menghindari manajemen memori Python. Mungkin modul mmap bisa membantu.

Semua 3 komentar

Ini terkait dengan #1640.

Satu-satunya cara lain untuk menangani ini adalah dengan melakukan sesuatu yang menghindari manajemen memori Python. Mungkin modul mmap bisa membantu.

Terima kasih!!! Ini sangat membantu!

HAI:
Dengan informasi yang Anda berikan kepada saya, saya memutakhirkan python saya dari 2,7 menjadi 3,7 dan menggunakan gc.freeze() untuk menghindari beberapa objek yang dikumpulkan oleh pengumpul sampah. Kali ini, tidak tampak bahwa "memori bertambah 1G secara tiba-tiba", tetapi hal ini menyebabkan pertumbuhan memori secara perlahan hingga setiap memori subprosesor bertambah 500M+, lalu berhenti bertambah. Saya pikir gc.freeze() berfungsi dan membuat tampilan memori yang berbeda. Semoga karya yang saya buat bermanfaat bagi orang lain. Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat