Zagwarantowanie dostępu SSH na obciążonym serwerze


11

Jakiś czas temu miałem problem z serwerem, na którym Apache i Snort zajmowali 100% procesora, przez co sshd nie reagował na dostęp zdalny. Musiałem udać się fizycznie na serwer, aby zalogować się do lokalnego TTY, a następnie zatrzymać apache / snort.

Zastanawiam się, czy istnieje sposób na zagwarantowanie łączności ssh w przypadku 100% obciążenia procesora / pamięci. Czy wystarczyłoby ustawić „miły” priorytet?

Dziękuję Ci!

Odpowiedzi:


10

Poza wykorzystaniem metody pozapasmowej nie ma możliwości zagwarantowania, że ​​SSH będzie dostępny na w pełni załadowanym serwerze. Jeśli twoja usługa jest tak załadowana, że ​​nie może ci nawet obsługiwać podstawowego terminala SSH, masz inne problemy.

Tak, renicea nadanie jej niższej nicewartości poprawi wydajność przy dużych obciążeniach, ale zamiast tego użycie czegoś takiego jak pam_security (przykład pokazany tutaj ) zapobiegnie niemożności zarządzania Apache / cokolwiek na początku.


Dobrze. Stara się wyleczyć objaw, a nie prawdziwy problem.
ewwhite

@ewwhite Dokładnie. Leczenie tego objawu spowoduje po prostu ściganie ogona, próbując dowiedzieć się, dlaczego w wyniku tego psują się inne rzeczy. :)
Nathan C

Szukam sposobu na ugaszenie ognia, ale oczywiście ustalę granice dla innych demonów. To jest sytuacja nadzwyczajna, muszę mieć spokój, aby wiedzieć, że zawsze będę mieć sshd reagujący na zdalny dostęp.
Renato Todorov

@RenatoTodorov w tym przypadku nie można wyleczyć objawu. Jeśli twój system ma niekontrolowany proces, który pochłania wszystkie {procesor, pamięć RAM, gniazda, identyfikatory PID}, nie możesz zagwarantować, że nawet nicewinowajca zostanie uruchomiony z procesora wystarczająco szybko, aby zapewnić dostęp do SSH (lub w tym przypadku każdy dostęp do konsoli byłby użyteczny). Należy rozwiązać zasadniczy problem (wieprz zasobów). Gaszenie pożarów to złe zarządzanie systemem.
voretaq7

1
Przekonaliście mnie, że będę korzystał z iDRAC 7 Express, o ile już go mam. Dziękuję wam wszystkim!
Renato Todorov

7

Rozwiązaniem tego ogólnego zastosowania jest pozapasmowe narzędzie do zarządzania, takie jak Dell iDRAC, IBM Remote Supervisor lub HP iLO. Zawsze może prezentować konsolę (czy system operacyjny może na nią zareagować, zależy od konkretnej sytuacji) i zastosować pożądane stany zasilania w razie potrzeby.


Ok, iDRAC jest dobrą opcją, ponieważ używam serwerów Dell, ale myślałem o prostszym rozwiązaniu, może coś w rodzaju zarezerwowania procesora dla sshd (w tym jego potomków spawnowanych), jakiegoś rodzaju „QoS” dla lokalnych usług.
Renato Todorov

Niektóre firmy są spłukane lub chciwe: w takim przypadku sysrqd może być tanią alternatywą dla iDRAC, iLO, KVM ...
bgtvfr

0

Odniosłem pewien sukces, nadając sshd przywilej w czasie rzeczywistym, jednak wiąże się to z koniecznością ponownego uruchomienia komputera, jeśli jeden z procesów w czasie rzeczywistym ucieka.

Jeśli więc chcesz zejść tą drogą, uruchom drugiego demona ssh, który jest przeznaczony tylko na wypadek awarii. :)


1
realtimeing sshd wydaje mi się niebezpieczny, szczególnie na porcie 22 (skan SSH może stać się atakiem DoS - uruchomienie na alternatywnym porcie może to złagodzić, ale nadal bym się bał ...)
voretaq7

nie stanowi problemu, jeśli zablokuję dostęp z Internetu, właściwie moją jedyną drogą do tego serwera jest VPN. dziękuję za sugestię!
Renato Todorov
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.