Ostatnio wykorzystanie procesora przez silnik routingu na dwóch naszych routerach równorzędnych Juniper wzrosło z ~ 10-20% średniego obciążenia do 80 +%. Próbuję dowiedzieć się, co to powoduje (i jak przywrócić to wysokie obciążenie).
Kilka informacji na temat routerów: oba działają w tej samej wersji JunOS, oba są podłączone do tych samych dwóch równorzędnych sieci LAN IXP i mają dużą liczbę (kilkaset) (prawie identycznych) sesji IPv4 i IPv6. Oba routery mają połączenie z innym dostawcą tranzytowym IP i są podłączone w ten sam sposób do reszty naszej sieci. Obciążenie procesora silników routingu nie jest równe 80%, spadki wracają do normalnych poziomów od minut do godzin, ale spadki te nie są tak częste.
Rzeczy, które sprawdziłem:
- w chwili rozpoczęcia zwiększania nie wprowadzono żadnych zmian konfiguracji
- nie ma wzrostu ruchu bez emisji pojedynczej skierowanego na płaszczyznę kontrolną
- nie ma (istotnej) zmiany w ilości przekazywanego ruchu (choć nawet wzrost nie powinien mieć znaczenia)
show system processes summary
wskazuje, żerpd
proces powoduje duże obciążenie procesora- nie ma szybko trzepoczących peerów BGP powodujących dużą liczbę zmian BGP
Jednym z możliwych wyjaśnień, jakie mogę wymyślić, jest peer (lub więcej) na jednym z IXP, oba routery są podłączone do wysyłania dużej liczby aktualizacji BGP. Obecnie mam tylko statystyki dotyczące liczby komunikatów BGP dla moich sesji tranzytowych (nie wykazujących nienormalnej aktywności), a przy kilkuset sesjach BGP w równorzędnych sieciach LAN nie jest łatwo dostrzec problematyczne sesje, jeśli powinienem utworzyć wykresy dla wszystkie sesje.
Moje pytania to:
- czy są jeszcze inne rzeczy, które powinienem sprawdzić, aby znaleźć przyczynę tego wzrostu obciążenia procesora w silnikach routingu?
- jak mogę łatwo dowiedzieć się, które sesje powodują te problemy (jeśli moje założenie jest słuszne)? Włączenie opcji śledzenia BGP generuje ogromne ilości danych, ale nie jestem pewien, czy daje mi to prawdziwy wgląd.
Wiem, że ten wątek jest stary, ale ze względu na kompletność:
Jeśli wysokie cpu występuje losowo i nie jesteś w stanie określić procesu powodującego to, możemy utworzyć skrypt poniżej.
Za pomocą tego skryptu uchwycimy proces szeroko zakrojony, gdy proces przekroczy próg normalny lub oczekiwany, nie powinno to zakłócać żadnego ruchu, ale nadal zaleca się MW. Widzę jednak, że zawęziłeś to do RPD.
WYŚWIETL. USTAW WYJŚCIE>
Czy sprawdziłeś także, czy zgłoszono jakieś wiadomości DDO? Możesz uruchomić następujące polecenia:
Następnie w zależności od tego, co widzisz, można zawęzić na przykład:
Juniper ma również listę kolekcji tego typu problemów w ramach KB22637
Polecenia CLI o wysokim CPU
Włącz rozliczanie zadań i zbierz dane wyjściowe szczegółów rozliczania zadań (trzy razy z 30-sekundową przerwą). Nie zapomnij go wyłączyć po zakończeniu.
Kłody
Zarchiwizuj / var / log zgodnie z opisem w kroku 1 powyżej Traceoptions
Również jeśli korzystasz ze starej wersji, która jest podatna na błędy, możesz sprawdzić wsparcie życia kodu:
http://www.juniper.net/support/eol/junos.html
Innym punktem, który należy wspomnieć, który może być atakiem wektorowym, jest brak ochrony RE przed niepożądanym ruchem wyjątków. Upewnij się, że masz filtr zapory sieciowej pod pętlą zwrotną.
Widziałem w przeszłości skrypty na routerze powodujące wysokie cpu, nie jestem pewien, czy rpd pojawił się w moim widoku, ale jest to coś, czego możesz nie chcieć przeoczyć.
Jeśli widzisz w dziennikach wiele trafień z RPD_MPLS_PATH_BANDWIDTH_CHANGE, być może używasz bardzo agresywnego interwału dostosowywania
Sprawdź wszelkie upuszczenia na „pokaż kolejkę systemową: jest to kolejka jądra, może pojawić się pewna wskazówka.
źródło