O meglio, perché non ci sono strumenti migliori per la profilazione della memoria in ruby, in particolare per le app per binari?Perché la profilazione della memoria nel rubino è così difficile?
Recentemente la nostra app per rotaie (ospitata su heroku) ha iniziato a vedere molti errori R14 nei dynos di lavoro. Questo significa che stiamo esaurendo la memoria. Bumping the dynos to 2x (512mb -> 1GB) ha solo alleviato temporaneamente il problema, portandomi a credere che ci sia una perdita di memoria da qualche parte. Naturalmente, il mio prossimo passo è stato trovare una buona gemma di profilazione che possa aiutarmi a scoprire la fonte della perdita.
Forse sono solo ignorante degli strumenti disponibili, o forse semplicemente non so come usare quelli che ho. Il mio desiderio è che potrei installare una gemma e quindi eseguire rapporti sulle statistiche di utilizzo della memoria. Colpire un endpoint per ottenere un report non è realmente praticabile in quanto i miei problemi di memoria sono isolati ai dynos dei lavoratori che eseguono lavori in ritardo.
Ho visto memprof, ma è solo 1.8.
Ho guardato a ruby-prof (impressionante), ma la profilazione della memoria richiede un interprete rubino patchato.
Ho visto GC::Profiler, ma non capisco come trovare perdite di memoria con esso.
Quindi, è semplicemente difficile trovare perdite di memoria nel rubino? O mi manca il punto in qualche modo?
Controllare https://github.com/bhb/rack-perftools_profiler. –
Grazie [Dave S.] (http://stackoverflow.com/users/845546/dave-s), che sembra utile per le richieste web, ma ho bisogno di qualcosa che mi aiuti a profilare i dynos di lavoro che non vengono eseguiti in un contesto web. Per quanto posso dire, rack-perftools_profiler non supporta questo. –