Poniendo riendas al consumo de memoria de Ruby

Cómo tunear el OS para consumir menos memoria en aplicaciones Ruby

Jorge Rodriguez
Get on Board Dev
2 min readAug 9, 2019

--

Unsplash

No es secreto que Ruby no está ni ahí con la memoria, que esperar de las glotonas aplicaciones Ruby on Rails que parecen confundir RAM con chocolate 🍫.

Nuestro dyno worker sigue siendo un Standard-2X, no es que no tengamos plata para hacer el upgrade, es que preferimos hacer tuning del codebase y por ahí del mismo dyno hasta que no haya más nada que hacer — ojalá y sigamos creciendo — y la solución sea mejorar los fierros 💰.

Por ello cada vez que veo pasar una lectura relacionada con tunear el consumo de memoria de Ruby dejo todo lo que estoy haciendo 😄. Así llegue a este post del autor de Sidekiq y rápido y veloz experimenté haciendo el cambio:

Y acá el resultado luego de dieciocho horas 😲:

No, no tenemos memory bloat. También bajé la concurrencia, too many threads 😉.

Caveat: Tal como aclara este otro post de Heroku, tunear el malloc usando menos cantidad de pools es un trade-off entre memoria y performance, así que por ahí nos ponemos más lentos.

Sigue probar con instalar el buildpack de jemalloc a ver si es tan mágico como dicen acá, acá y acá.

--

--

Jorge Rodriguez
Get on Board Dev

1. Software Engineer @fleetio.com 2. Co-Founder @getonbrd (500 SF)