Podczas wdrażania redis na domowym systemie operacyjnym Kirin błąd wygląda następująco:
12707:M 14 paź 2021 13:55:36.643 # Serwer zainicjowany 12707:M 14 paź 2021 13:55:36.643 # UWAGA overcommit_memory ustawiona na 0! Zapis w tle może zawiódć przy niskim poziomie pamięci. Aby rozwiązać ten problem, dodaj 'vm.overcommit_memory = 1' do /etc/sysctl.conf, a następnie zrestartuj komputer lub uruchom C ommand 'sysctl vm.overcommit_memory=1', aby to zadziałało.12707:M 14 paź 2021 13:55:36.644 # OSTRZEŻENIE: Twoje jądro ma błąd, który może prowadzić do uszkodzenia danych podczas zapisu w tle. Proszę o aktualizację do najnowszego stabilnego jądra. 12707:M 14 paź 2021 13:55:36.644 # Redis teraz wyjdzie, aby zapobiec uszkodzeniu danych. Należy zauważyć, że możliwe jest stłumienie tego ostrzeżenia, ustawiając następującą konfigurację: ignore-warnings ARM64-COW-BUG Widząc, że Internet mówi, że trzeba ustawić wartość overcommit_memory, wykonaj polecenie w następujący sposób (Nie testowane):
Bo jestem tutajOstrzeżenie pojawi się także na systemie CentOS, ale nie wpłynie na normalny start。
vm.overcommit_memory
Domyślna wartość to: 0
overcommit_memory Opis parametru:
Ustaw politykę alokacji pamięci (opcjonalną, dostosowaną do rzeczywistej sytuacji serwera)
/proc/sys/vm/overcommit_memory
Wartości opcjonalne: 0, 1, 2
0: Oznacza, że jądro sprawdzi, czy jest wystarczająca ilość wolnej pamięci dla procesu; Jeśli jest wystarczająco dużo wolnej pamięci, żądanie pamięci na to pozwala; W przeciwnym razie żądanie pamięci nie działa i zwraca błąd do procesu aplikacji. 1: Oznacza, że jądro pozwala na alokację całej pamięci fizycznej niezależnie od aktualnego stanu pamięci. 2: Wskazuje, że jądro pozwala na alokację większej ilości pamięci niż suma całej pamięci fizycznej i przestrzeni swap
Moje rozwiązanie
Wykonaj następujące polecenie, a następnie ponownie uruchom redis:
(Koniec)
|