2016-03-20 2 views
3

Kann ich den Linux-Swap-Space für eine AWS Elastic Beanstalk-Umgebung konfigurieren?Kann ich den Linux-Swap-Space auf AWS Elastic Beanstalk konfigurieren?

Ich sehe keine Option für sie in der Konsole. Von /proc/meminfo auf meinen laufenden Instanzen in meiner Umgebung MemAvailable sieht ziemlich niedrig, obwohl es ziemlich hohe Inactive Werte gibt. Ich vermute, dass es ein paar schlummernde Hintergrundprozesse gibt, bei denen es nicht schaden würde, auszulagern, und einen nicht-trivialen Teil des begrenzten physischen Speichers auf dem t2.nano freigeben würde, den ich verwende.

Antwort

5

Ich habe herausgefunden, wie man das mit dem .ebextensions Config-Ordner in meiner Tomcat Web App macht.

eine Datei hinzufügen .ebextensions/swap.config:

container_commands: 
    add-swap-space: 
    command: "/bin/bash .ebextensions/scripts/add-swap-space.sh" 
    ignoreErrors: true 

eine Datei hinzufügen .ebextensions/scripts/add-swap-space.sh:

#!/bin/bash 

set -o xtrace 
set -e 

if grep -E 'SwapTotal:\s+0+\s+kB' /proc/meminfo; then 
    echo "Positively identified no swap space, creating some." 
    dd if=/dev/zero of=/var/swapfile bs=1M count=512 
    /sbin/mkswap /var/swapfile 
    chmod 000 /var/swapfile 
    /sbin/swapon /var/swapfile 
else 
    echo "Did not confirm zero swap space, doing nothing." 
fi 

Weitere Dokumente: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

Nach einer Weile läuft das 150MiB erlaubt auf meinem t2.nano werden ausgelagert Instanz, die die Elastic Beanstalk Java Tomcat-Plattform mit Standard-Heap-Optionen ausführt. Von dem, was ich sehen kann, gibt es kein laufendes Paging, während die Anwendung ausgeführt wird. Es sieht so aus, als ob einige ruhende Daten zum Auslagern gedrängt wurden und der Seitencache wesentlich größer ist (von 30MB auf 180MB).