Mamy straszne doświadczenie z gae go. Gdy nasza aplikacja była bezpłatna, nigdy nie mieliśmy problemu z Przekroczonym limitem pamięci prywatnej. Udało nam się przekroczyć kwotę, dlatego postanowiliśmy zapłacić. Nasz budżet dzienny wynosi 3 USD. Po aktywacji płatnej usługi mogliśmy ponownie korzystać z witryny, a przekroczony limit nie istniał. Kilka godzin później dostaliśmy ten Przekroczony limit pamięci prywatnej i nie można już zobaczyć niczego poza tym. Próbowałem usunąć kilka dużych danych w magazynie danych, wyłączyć wbudowane moduły i wciąż nie ma szczęścia.Przekroczono limit miękkiej pamięci prywatnej
Zrobiłem test w kodzie, skąd pochodzi usterka. Usunięcie kodu dostępu do bazy danych spowodowało ponowne utworzenie witryny. Więc mój wniosek jest uzyskanie dostępu do magazynu danych nawet po to, aby pobrać bardzo niewiele podmiotów spowodowałoby błąd podobny do tego. Jesteśmy trochę beznadziejni. Zdecydowaliśmy się wykorzystać appspot do wykorzystania technologii, ale otrzymujemy to, czego nie możemy przejść do rozwoju.
Poniżej znajduje się tylko kod, który wywołuje tego rodzaju błąd.
q := datastore.NewQuery("Course")
courses := make([]courseData, 0)
if keys, err := q.GetAll(c, &courses); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
} else {
for i := range courses {
courses[i].Key = keys[i]
}
}
Każda pomoc, jakiej moglibyśmy udzielić, byłaby bardzo ceniona. Z góry dziękuję.
zrzeczenie się, nie używaj gae. Ale powyższe rodzi pytanie, ile jest kursów? Ile danych jest w każdym kursie? – dskinner
Czy profilowałeś swoją aplikację, aby zobaczyć, gdzie jest zużywana pamięć? Wszystkie instancje mają skończoną ilość pamięci (F1 - 128MB), jeśli przejdziesz i pobierzesz ogromną ilość danych, oczywiście, że zdmuchniesz limity pamięci. –
Jeśli nie potrzebujesz wszystkich kursów naraz, może spróbuj wykonać iterację wyników zapytania, zamiast korzystać z funkcji GetAll()? –