Wie man die Ausgabe von "Debug Dataplane Pow Performance" während der Fehlerbehebung hoch interpretiert DP CPU
60725
Created On 12/31/18 06:45 AM - Last Modified 06/09/23 09:24 AM
Objective
Die SSO Einheit (Schedule/ Synchronisation/ Order) ist die Komponente der Datenebene, die die Paketplanung und -reihenfolge verwaltet. Es wird auch als POW (Paket / Auftrag / Arbeit) bezeichnet. Es ist verantwortlich für die Planung der Arbeit auf Kerne basierend auf QOS Priorität und Arbeitsgruppen. Außerdem wird die Reihenfolge des Paketeingangs beibehalten.
A Arbeitsgruppe ist eine Gruppe von Anwendungen, und jeder Kern kann mehr als einer Arbeitsgruppe zugewiesen werden. Arbeitsgruppen werden verwendet, um die Verarbeitungslast zwischen den verschiedenen Kernen auszugleichen. Der Arbeitsgruppenwert eines Pakets wird beim Eingang automatisch gesetzt und kann von der Software geändert werden.
Funktionen sind eine Teilmenge von Aufgaben, die von einem Kern innerhalb einer Arbeitsgruppe ausgeführt werden.
In diesem Artikel werden einige Hinweise zur Interpretation von Leistungsdaten für Kriegsgefangene behandelt.
Environment
Diese Ausgabe ist für alle PAN-OS Firewalls oder hardware virtuelle Firewalls gleich.
Procedure
Die Ausgabe von " debug dataplane pow performance" gibt einen kurzen Überblick über die Verwendung der einzelnen Arbeitsgruppen und DP Funktionen im letzten Sampling-Zyklus:
- Wie oft eine Arbeitsgruppe und Funktion geplant wurde.
- Wie hoch war die durchschnittliche Verarbeitungszeit in Mikrosekunden (us) für jede Arbeitsgruppe und Funktion?
- Was war die maximale Verarbeitungszeit in Mikrosekunden (us) für jede Arbeitsgruppe und Funktion?
Beispielausgabe:
Spalte 1: Name
der Arbeitsgruppe [oder Funktion] Spalte 2: Maximale Verarbeitungszeit für diese Arbeitsgruppe im letzten Stichprobenzyklus Spalte 3: Durchschnittliche Bearbeitungszeit für diese Arbeitsgruppe im letzten Stichprobenzyklus
Spalte 4: Anzahl der Zeiten, in denen diese Arbeitsgruppe [oder DP DP Funktion] eingeplant wurde
Erläuterung der Arbeitsgruppen:
flow_np : Network Processor. Very first program to decide if it is slow path or fast path. flow_lookup : Responsible for existing session/flow lookup. flow_mgmt : Installation and clearing of session table. flow_fastpath : Fastpath processing of packet (Includes post slowpath processing and content inspection). flow_slowpath : Slow path processing of packet (route and policy lookup and session setup). flow_forwarding : Handles forwarding stage of packets. dfa_result : Appid signature matching module_internal : Control messages between internal components . aho_result : Threat signature matching. zip_result : Used for ZIP processing. pktlog_forwarding : Responsible for forwarding logs to MP. flow_host : Process handling packets destined to Firewall flow_ctrl : Aging sessions and handling net-messages nac_result : Analyzing result of appid signature match output
Die obige Ausgabe gibt uns einen sehr notwendigen Einblick in die Verwendung von DP.
- Relative Werte der Zählung geben uns eine Vorstellung davon, welche Arbeitsgruppe oder Funktion häufiger aufgerufen wird.
- In der allgemeinen Verarbeitung hätten flow_slowpath im Vergleich zu flow_fastpath eine geringere Anzahl.Wenn wir diese Daten historisch aus der Protokolldatei von dp-monitor vergleichen, können wir sehen, ob die Anzahl für eine bestimmte Arbeitsgruppe in einem bestimmten Zeitfenster zugenommen hat.
- module_internal wird für Steuernachrichten zwischen internen Komponenten wie URL Lookups usw. verwendet. Eine hohe Anzahl von module_internal kann auf viele interne Nachrichten hinweisen. A
- In der Regel zählen für flow_fastpath, flow_forwarding, flow_np für jeden Transitverkehr aufgerufen werden sollten. Ihre Zahl wird also vergleichsweise hoch sein.
- aho_result, dfa_result, würde nac_result uns eine Vorstellung davon geben, wie viel Layer 7 auf der firewall.
- A Ein hoher Wert von Max Proc uns ist in Ordnung, aber ein hoher Wert von durchschnittlich ist nicht gut.
NOTE: Wir können die Zählung für jede Arbeitsgruppe multiplizieren, um eine Vorstellung davon zu bekommen, welche Arbeitsgruppe die meiste CPU Zeit in Anspruch nimmt. - Wenn die Dinge aus Sicht der Arbeitsgruppen normal aussehen und immer noch DP CPU unter Last stehen, sollten wir die Funktionen untersuchen, um zu verstehen, welche Funktion wie viel CPUverbraucht.
Additional Information
Fallstudie:
Beispiel: 100 % und Arbeitsgruppen sehen wie folgt aus: CPU
:group max. proc us ave. proc us count :flow_lookup 0 0 0 :flow_fastpath 122087 55 33971601 :flow_slowpath 199 72 345516 :flow_forwarding 75 2 8910565 :flow_mgmt 57 29 69 :flow_ctrl 100 6 302011 :nac_result 50 1 2015416 :flow_np 66 4 33255061 :dfa_result 21794 242 2059391 :module_internal 525 18 173530 :aho_result 119981 154 2014275 :zip_result 16771 234 197454 :pktlog_forwarding 84 7 287854 :lwm 0 0 0 :flow_host 52 11 5494
Wir wissen von oben, dass fastpath am höchsten ist, aber um einen Grund dafür zu finden, welche Komponente mehr CPU verwendet, schauen wir uns die Funktionen für dasselbe an:
:func max. proc us ave. proc us count :dfa_match 0 0 0 :policy_lookup 125 10 2239062 :user_group_policy 87 1 477903 :get_gid 41 0 1061755 :regex_lookup 6217 102 2233481 :regex_postfpga 910 16 1039761 :reg_expr_match 0 0 0 :sml_vm 208 6 31643903 :detector_run_p1 2342 34 906163 :detector_run_p2 31327 79 889286 :ssl_proxy_proc 63072 600 2500540 :ssl_encode 202 36 805522 :rsa_operation_pub_enc 766 309 6688 :rsa_operation_pub_dec 648 263 116 :rsa_operation_priv_enc 8216 8168 14362 :rsa_operation_priv_dec 8260 8178 6427 :rsa_key_gen 40126 23467 43 :rsa_RSA_sign 13840 13236 33704 :rsa_RSA_verify 963 430 71904 :ecdhe_key_gen 22925 7559 18 :ecdhe_key_gen_mul 0 0 0 :ecdhe_key_compute_mul 22121 6640 82229 :ecdhe_key_compute 22565 6856 82224 :ecdhe_generate_xchg_key 23514 7948 18 :ecdhe_gen_key_exchange_msg 22630 6949 43919 :ecdhe_get_key_exchange_msg 22656 6932 38261 :ecdhe_parse_server_key_exchange_msg 320 244 45817 :ecdhe_gen_server_key_exchange_msg 78 29 43561 :dhe_gen_para 0 0 0 :dhe_gen_key 0 0 0 :dhe_key_compute 0 0 0 :bn_mod_exp 8226 6196 27618 :cipher_enc 142 9 1956671 :zip_deflate 50 2 197543 :pktlog_log 0 0 0 :pktlog_send 0 0 0 :tunnel_encap 0 0 0 :tunnel_decap 0 0 0 :tunnel_esp 0 0 0 :tunnel_esp_decap 0 0 0 :tunnel_ah_decap 0 0 0 :tunnel_ah 0 0 0 :tunnel_fwd 0 0 0 :tunnel_prepare 0 0 0 :tunnel_post 0 0 0 :appid_result 0 0 0 :ctd_token 21789 239 2060687 :dos_update 17 0 212713 :urlcache_update 20065 178 2555 :urlcache_lookup 107402 125 540508 :urlcache_insert 0 0 0 :urlcache_delete 0 0 0 :urlcache_lru 0 0 0 :session_install 59 8 217532 :session_age 36 0 875144 :session_delete 165 11 212717 :session_purge 0 0 0 :inline_switch 0 0 0 :age_arp 20 2 595 :age_pbf_ret_mac 1 0 595 :stack_trace 0 0 0 :ctd_pw_check 0 0 0 :ctd_pw_md4 0 0 0 :ctd_pw_extract 0 0 0 :prl_rewrite 0 0 0 :pkt_rewrite 0 0 0 :vpn_send_to_client 0 0 0 :vpn_cookie_response 0 0 0 :raven_match 46 2 131751 :raven_match_header 52 2 187227 :raven_match_body 51 14 6 :raven_sig_get_action 0 0 0 :age_mfib 1 0 595
Wenn Sie die Anzahl mit der durchschnittlichen Zeit multiplizieren, können Sie eine klare Vorstellung davon bekommen, was am meisten CPUverwendet wird. Zum Beispiel siehe unten (Ausgabe nur für die am häufigsten verwendeten Funktionen abgeschnitten)
:func max. proc us ave. proc us count count*avg :ssl_proxy_proc 63072 600 2500540 1500324000 :ecdhe_key_compute 22565 6856 82224 563727744 :ecdhe_key_compute_mul 22121 6640 82229 546000560 :ctd_token 21789 239 2060687 492504193 :rsa_RSA_sign 13840 13236 33704 446106144 :ecdhe_gen_key_exchange_msg 22630 6949 43919 305193131 :ecdhe_get_key_exchange_msg 22656 6932 38261 265225252 :regex_lookup 6217 102 2233481 227815062 :sml_vm 208 6 31643903 189863418 :bn_mod_exp 8226 6196 27618 171121128 :rsa_operation_priv_enc 8216 8168 14362 117308816 :detector_run_p2 31327 79 889286 70253594 :urlcache_lookup 107402 125 540508 67563500 :rsa_operation_priv_dec 8260 8178 6427 52560006 :rsa_RSA_verify 963 430 71904 30918720 :detector_run_p1 2342 34 906163 30809542 :ssl_encode 202 36 805522 28998792 :policy_lookup 125 10 2239062 22390620 :cipher_enc 142 9 1956671 17610039 :regex_postfpga 910 16 1039761 16636176 :ecdhe_parse_server_key_exchange_msg 320 244 45817 11179348
Sie können sehen, dass die meisten der am häufigsten verwendeten Funktionen mit SSL der Entschlüsselung zusammenhängen. Dies gibt uns eine gute Vorstellung davon, welche weiteren Schritte unternommen werden müssen, um dies zu lindern.