performance - ¿Cuándo utilizan las Dynos Heroku la memoria de intercambio?
ruby-on-rails-4 unicorn (1)
Estaba viendo un cambio significativo incluso cuando usaba solo el 50% de la RAM disponible en mi aplicación, así que le pregunté. Aquí hay una cita de su equipo de soporte:
Dejamos el swappiness de Ubuntu en su valor predeterminado de 60 en nuestros tiempos de ejecución, incluidos los PX dynos.
Un valor de 60 asegura que su aplicación comenzará a intercambiarse bien antes de alcanzar la memoria máxima. El parámetro de kernel de Linux vm.swappiness
va de 0 a 100, donde 0 indica que no hay intercambio y 100 que indica siempre el intercambio.
Por lo tanto, cuando se ejecute en Heroku, debe esperar que su aplicación cambie, incluso si la huella de su aplicación es mucho menor que la RAM anunciada de su banco de pruebas.
Estoy alojando mi proyecto Rails 4.1.4 con 2 procesos Unicorn en dyno libre para mi servidor de desarrollo. Después de que la aplicación se ejecuta por un tiempo, a veces me siento lento. Agregué New rellic, logentries y habilité log-runtime-metrics. Luego miro Nueva reliquia y logentries
» heroku web.1 - - source=web.1 dyno=heroku.21274089.82eb32b4-c547-4041-b452-d3fedae05ee9 sample#load_avg_1m=0.00 sample#load_avg_5m=0.00 sample#load_avg_15m=0.01
» heroku web.1 - - source=web.1 dyno=heroku.21274089.82eb32b4-c547-4041-b452-d3fedae05ee9 sample#memory_total=393.41MB sample#memory_rss=368.38MB sample#memory_cache=4.47MB sample#memory_swap=20.56MB sample#memory_pgpgin=121244pages sample#memory_pgpgout=25796pages
Lo que no entiendo es que la memoria de mi dyno es solo la sample#memory_rss=368.38MB
, pero ¿por qué ya usa swap memory sample#memory_swap=20.56MB
? Porque de lo que pensé en el artículo de heroku https://devcenter.heroku.com/articles/dynos#memory-behavior , debería cambiar a swap memory si llega a la memoria de dyno que es 512 Mb para dyno gratis.