Obecnie korzystam z mikro instancji ec2 i okazało się, że w instancji czasami brakuje pamięci.
Co innego można zrobić, niż używając większego rozmiaru instancji?
amazon-web-services
amazon-ec2
out-of-memory
ajtrichards
źródło
źródło
if
oznacza „plik wejściowy”,of
oznacza „plik wyjściowy”,bs
oznacza „rozmiar bloku” icount
jest liczbą bloków, które chcesz przydzielić… możesz przeczytaćman
stronę polecenia, aby uzyskać więcej informacji: linux.die.net/man/1/ dd$> free -m
Zamiana powinna odbywać się na dysku Instance Storage (efemerycznym), a nie na urządzeniu EBS. Zamiana spowoduje wiele IO i zwiększy koszty EBS. EBS działa również wolniej niż Sklep Instancji, a Sklep Instancji jest dostępny bezpłatnie z niektórymi typami Instancji EC2 .
Zwykle będzie montowany w / mnt, ale jeśli nie zostanie uruchomiony
Aby następnie utworzyć plik wymiany na tym urządzeniu, wykonaj następujące czynności dla pliku wymiany 4 GB
Upewnij się, że żaden inny użytkownik nie może wyświetlić pliku wymiany
Zrób i oflaguj jako swap
Dodaj / Upewnij się, że w / etc / fstab znajdują się następujące elementy
wreszcie włącz zamianę
źródło
Po zastosowaniu kroków wymienionych przez ajtrichards możesz sprawdzić, czy Twoja instancja amazonu w warstwie wolnej używa swap za pomocą tego polecenia
wynik:
Swap Razem: 1048572 kB
SwapFree: 1048572 kB
źródło
Możesz dodać swap 1 GB do instancji za pomocą następujących poleceń:
Aby włączyć ją domyślnie po ponownym uruchomieniu, dodaj ten wiersz do
/etc/fstab
:źródło
/swapfile
. Ale możesz również zamontować inny system plików i utworzyć tam plik wymiany, np/mnt/blah/swapfile
.Jeśli jesteś na
t2
instancji (t2.micro
,t2.medium
,t2.small
), nie ma efemeryczne lub instancja przechowywania dostępne. Musisz więc po prostu utworzyć swap, wEBS
którym w zależności od przypadku użycia może, ale nie musi być dobrym pomysłem. W przeciwnym razie postępuj zgodnie z odpowiedzią @David i utwórz swap na efemerycznym magazynie, aby uniknąć płacenia kosztów EBS.Więcej informacji: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html znajduje się tabela, która pokazuje, ile efemerycznej pamięci masowej otrzymujesz dla każdego typu wystąpienia.
źródło
For example, if you provision a volume with 1000 IOPS, and keep this volume for 15 days in a 30 day month, then in a Region that charges $0.10 per provisioned IOPS-month, you would be charged $50 for the IOPS that you provision ($0.10 per provisioned IOPS-month * 1000 IOPS provisioned * 15 days/30). You will be charged for the IOPS provisioned on a volume even when the volume is detached from an instance.
. Co wydaje się, że AWS pobierze opłaty za operacje odczytu i zapisu.Możesz utworzyć przestrzeń wymiany, wykonując następujące kroki Tutaj tworzymy swap w
/home/
dd if=/dev/zero of=/home/swapfile1 bs=1024 count=8388608
Tutaj liczba jest liczbą kilobajtów przestrzeni wymiany
mkswap /home/swapfile1
vi /etc/fstab
dokonać wpisu:
/home/swapfile1 swap swap defaults 0 0
biegać:
swapon -a
źródło
Możemy dodać przestrzeń wymiany na dowolnym serwerze
utwórz plik za pomocą polecenia dd
bs jest wielkością bloku, a liczba odnosi się do rozmiaru w MB lub GB
możemy użyć odwrotnie
Po utworzeniu zmień uprawnienia do pliku:
Następnie makewap plik:
Następnie włącz plik wymiany poleceniem swapon:
Sprawdź za pomocą bezpłatnego polecenia, czy zamiana jest włączona, czy nie:
źródło
Korzystanie z magazynu instancji Davida odpowiedź początkowo działała dla mnie (na m5d.2xlarge), jednak po zatrzymaniu instancji EC2 i ponownym jej włączeniu nie mogłem ponownie ssh do tej instancji.
Dzienniki instancji zgłosiły: „Jesteś w trybie awaryjnym. Po zalogowaniu wpisz„ journalctl -xb ”, aby wyświetlić dzienniki systemowe,„ systemctl reboot ”, aby ponownie uruchomić komputer,„ systemctl default ”lub„ exit ”, aby uruchomić komputer w trybie domyślnym. Naciśnij Enter do konserwacji ”
Zamiast tego postępowałem zgodnie z instrukcjami AWS w tym linku i wszystko działało idealnie, w tym po wyłączeniu i ponownym włączeniu instancji.
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
źródło
Wypróbuj swapspace http://pqxx.org/development/swapspace/
Większość dystrybucji ma to zapakowane.
W EC2 możesz chcieć zmienić „swappath” na dysk / mnt lub high-iops.
źródło
Możesz użyć następującego skryptu, aby dodać swap w Amazon Linux.
https://github.com/chetankapoor/swap
Pobierz skrypt za pomocą wget:
Następnie uruchom skrypt w następującym formacie:
Kompletny samouczek można odwiedzić:
https://installvirtual.com/shell-script-to-create-swap/
źródło