Otrzymałem raport od użytkownika Redis i nie jestem pewien, co odpowiedzieć, ponieważ nie jestem ekspertem w dziedzinie Linuksa i jego harmonogramu, jednak my (jako projekt Redis) musimy rozwiązać ten problem, szczególnie w przyszłości, podobnie jak w przypadku klastra Redis, będziemy mieć wiele instancji Redis działających jednocześnie w jednym pudełku. Proszę więc o pomoc tutaj.
Problem:
- Jądro: „Linux redis1 2.6.32-305-ec2 # 9-Ubuntu SMP czw 15 kwi 08:05:38 UTC 2010 x86_64 GNU / Linux”
- dużo wolnej pamięci RAM, żadne inne procesy nie wykonują znaczących operacji we / wy.
- Ważne , działa na dużej instancji EC2, a nie na prawdziwym serwerze. Nigdy nie widziałem czegoś takiego w niez zwirtualizowanym środowisku. Instancja EC2 brzmiała: „Pamięć bardzo duża, bardzo duża instancja 17,1 GB, 6,5 ECU (2 rdzenie wirtualne z jednostkami obliczeniowymi po 3,25 EC2 każda), 420 GB pamięci instancji lokalnej, platforma 64-bitowa” .
Zasadniczo po ponownym uruchomieniu dużej instancji Redis system będzie działał tak wolno, że nie będzie już można pisać w powłoce. Gdy Redis ładuje instancję, zużywa 100% procesora (ładuje dane tak szybko, jak to możliwe) i odczytuje plik dump.rdb sekwencyjnie. We / wy nie jest szczególnie wysokie, ponieważ ładowanie jest związane z procesorem, a nie z we / wy.
Dlaczego, u licha, pudełko z dwoma procesorami i dużą ilością pamięci RAM, bez zamiany rzeczy na dysku, powinno zasadniczo przestać działać z tym obciążeniem?
Mam wrażenie, że ma to wiele wspólnego z faktem, że jest to instancja EC2, więc związana z używaną technologią wirtualizacji, ponieważ bez problemu ładuję zestawy danych Redis 24 GB w moim pudełku (nawet z innymi instancjami Redis działa z dużym obciążeniem).
Dzięki za podpowiedź!
Salvatore
Edycja : dodając opinie z Twittera:
from @ezmobius: @antirez pierwszą rzeczą do zrobienia jest wypróbowanie go z / mnt lub lokalnych efemerycznych napędów, aby sprawdzić, czy jego niestabilność EBS, 2. upewnienie się, że nie jest to „kara za pierwsze zapisanie” (google it), a jeśli tak, to najpierw musisz dodać 0 do dysku.
from @dvirsky: @antirez Korzystam z wielu instancji Redis na dokładnie takich węzłach ec2. Zauważyłem pewne spowolnienie bgsave, ale nie to zjawisko.
źródło
Ten sam problem dotyczyłem instancji EC2. Prawdopodobnie nie jest to związane z Redis - występuje, gdy trwa wysokie IO (np. Gdy Redis ładuje plik zrzutu).
Spójrz na ten wątek na forach Amazon: https://forums.aws.amazon.com/thread.jspa?messageID=215406
Eksperymentowałem z różnymi jądrami / obrazami i teraz działa dobrze (na starym jądrze 2.6.21).
źródło
Powinieneś sprawdzić kradzież procesora (
xx.x%st
po prawej stronie linii procesora), któratop
pokazuje, kiedy doświadczasz 100% obciążenia i zamrożonej powłoki. Kradzież pokazuje, ile faktycznych cykli procesora zostało skradzionych z maszyny przez hiperwizora i przekazanych innej maszynie. Kradzież procesora jest istotna tylko w środowiskach zwirtualizowanych. Miałem dokładnie ten problem z mikro instancjami, co w zasadzie sprawiło, że moja instancja była bezużyteczna przez około 1 godzinę (dopóki moje zadanie się nie skończy), jeśli wykonuję zadania wymagające dużej mocy procesora.Możesz znaleźć więcej na ten temat, czytając ten post na temat Ramgings Grega . Chociaż, jeśli wierzysz Gregowi, powinno się to dziać tylko w mikro instancjach.
źródło