2015-06-25 11 views
7

Vorrei eseguire un contenitore finestra mobile che richiede molta memoria su una macchina che non ha molta RAM. Ho cercato di aumentare lo spazio di scambio disponibile per il contenitore senza alcun risultato. Ecco l'ultimo comando ho provato:Come aumentare lo spazio di scambio disponibile nella macchina virtuale boot2docker?

docker run -d -m 1000M --memory-swap=10000M --name=my_container my_image 

Seguendo questi tips su come controllare le metriche di memoria ho trovato il seguente:

$ boot2docker ssh 

[email protected]:~$ cat /sys/fs/cgroup/memory/docker/35af5a072751c7af80ce7a255a01ab3c14b3ee0e3f15341f7bb22a777091c67b/memory.stat 
cache 454656 
rss 65015808 
rss_huge 29360128 
mapped_file 208896 
writeback 0 
swap 0 
pgpgin 31532 
pgpgout 22702 
pgfault 49372 
pgmajfault 0 
inactive_anon 28672 
active_anon 65183744 
inactive_file 241664 
active_file 16384 
unevictable 0 
hierarchical_memory_limit 1048576000 
hierarchical_memsw_limit 10485760000 
total_cache 454656 
total_rss 65015808 
total_rss_huge 29360128 
total_mapped_file 208896 
total_writeback 0 
total_swap 0 
total_pgpgin 31532 
total_pgpgout 22702 
total_pgfault 49372 
total_pgmajfault 0 
total_inactive_anon 28672 
total_active_anon 65183744 
total_inactive_file 241664 
total_active_file 16384 
total_unevictable 0 

E 'possibile eseguire un contenitore che richiede 5G di memoria su un macchina che ha solo 4G di memoria fisica?

+0

non si deve esaurire la RAM prima dello swap si abitua? ... a meno che il sistema non sia configurato con swapiness. – dnozay

+0

Ho bisogno di scrivere un test rapido per esaurire la memoria. Penso di aver bisogno di aumentare lo spazio di swap nel mio boot2docker-vm. http://www.carlboettiger.info/2014/08/25/reproducible-research-environments-with-Docker.html#enable-swapping-if-testing-on-the-smallest-image – Andrew

risposta

12

Questo GitHub issue è stato molto utile per capire come aumentare lo spazio di scambio disponibile in boot2docker-vm. Adattandolo alla mia situazione ho usato i seguenti comandi per ssh nel boot2docker-VM e creare un nuovo file di swap:

boot2docker ssh 
export SWAPFILE=/mnt/sda1/swapfile 
sudo dd if=/dev/zero of=$SWAPFILE bs=1024 count=4194304 
sudo mkswap $SWAPFILE 
sudo chmod 600 $SWAPFILE 
sudo swapon $SWAPFILE 
exit 
+0

Per chiunque sia interessato: Per far sì che lo swapfile sia montato su ogni avvio di 'docker-machine', è necessario ssh alla macchina e aggiungere' swapon/mnt/sda1/swapfile' a '/ var/lib/boot2docker/bootsync.sh' (o'/var/lib/boot2docker/bootlocal.sh'). Crea il file '* .sh' desiderato se mancante (che è molto probabile). [maggiori informazioni] (https://github.com/boot2docker/boot2docker/blob/master/doc/FAQ.md#local-customisation-with-persistent-partition) (tl; dr: la modifica di fstab non è persistente tra la finestra mobile le startup della macchina) –

Problemi correlati