Moja mała instancja ec2 z pamięcią 1,7 GB, działająca na Amazon AMI opartej na CentOS, ma problem z tym, że Apache wykorzystuje zbyt dużo pamięci, niż powinna. Jeśli spojrzysz na zrzut ekranu, użycie pamięci wyniesie 90-100%, dopóki nie zrestartuję usługi httpd, gdzie zacznie się od nowa, zwiększając jej drogę powrotną do 90+%.
Byłbym bardzo wdzięczny za pomoc w zlokalizowaniu problemu. Czy to może być „normalne” zachowanie apache, aby wykorzystać całą dostępną pamięć? A może jest jakiś wyciek, który muszę wytropić. W tej chwili jestem trochę zakłopotany tym, co może się dziać.
Używamy prefabrykatu Apache MPM, a nie SQL ani niczego podobnego - po prostu apache. Strona jest tutaj .
apache-2.2
memory
httpd
lamp
memory-usage
Amivit
źródło
źródło
RequestHeader set X-Request-Start "%t"
jeśli jeszcze tego nie zrobiłeś. Pojawi się to jako „Kolejkowanie żądań” po przejściu do App Server> Omówienie - może pomóc w osiągnięciu sedna problemu.Odpowiedzi:
Jak powiedział HTTP500, prawdopodobnie nie powinieneś się tym martwić, chyba że maszyna faktycznie się dusi. Spójrz na Pomoc! Linux Ate My RAM! . Nie jest to do końca analogiczna sytuacja, ponieważ masz procesy zamiast buforów zajmujących pamięć RAM, ale nie jest to zbyt odległe: fizyczna pamięć RAM komputera jest zasobem do użycia, zarówno z buforami jądra, jak i wolnymi procesami roboczymi Apache, aby szybko obsłużyć przychodzące upraszanie. Jeśli nie używasz pamięci RAM, przepłaciłeś za rozmiar swojego pudełka.
W każdym razie, jeśli chcesz grać z ustawieniami MPM, dokumentacja Apache to http://httpd.apache.org/docs/current/mod/prefork.html
Być może możesz zmniejszyć MinSpareServers, StartServers itp., Ponieważ stwierdziłeś, że witryna ma mały ruch. Będziesz wtedy miał więcej wolnej pamięci RAM do wykorzystania przez bufory jądra dla ich niecnych celów.
źródło
Linux wykorzystujący całą twoją pamięć jest normalny, pamięć, która nie jest używana, w przeciwnym razie zostanie ponownie wykorzystana jako pamięć podręczna dysku. patrz: linux zjadł mojego barana
Możesz to sprawdzić, patrząc na dane wyjściowe
free -m
i spodziewać się czegoś takiego:+/- linia buforów / pamięci podręcznej jest tym, czego potrzebujesz. Dodaje pamięci podręcznej pamięci RAM, aby dać ci lepszy obraz, ile pamięci jest naprawdę dostępne. W tym przypadku chcesz zwrócić uwagę na numer 3416, a nie 101.
źródło