Sobes.tech
Middle+

Ինչպե՞ս եք իրականացնում սերվերի խնդիրների լուծման գործընթացը բարձր բեռի դեպքում: Որ ցուցանիշները եք վերլուծում և որ utility-ները եք օգտագործում:

sobes.tech AI

Պատասխան AI-ից

Սկսելու եմ համակարգային մետրիկների վերլուծությամբ՝ բարձր բեռի պատճառները հայտնաբերելու համար:

Անհրաժեշտ ցուցանիշներ՝

  • load average: միջին գործընթացների քանակը, որոնք սպասում են կատարմանը: Բարձր արժեքը ցույց է տալիս CPU-ի ծանրաբեռնվածություն կամ մուտք-արտահոսքի սպասում:
  • CPU utilization: պրոցեսորի ժամանակի օգտագործման տոկոսը: Օգնում է հասկանալ, որ մասը CPU-ի զբաղված է՝ օգտվողական գործընթացներ, համակարգային կանչեր կամ հանգիստ:
  • Memory utilization: օպերատիվ հիշողության օգտագործում: Բարձր սպառում կարող է հանգեցնել ակտիվ swap-ի, ինչը զգալիորեն նվազեցնում է կատարողականությունը:
  • Disk I/O: ընթերցման/գրելու ինտենսիվություն սկավառական սարքերում: Բարձր ակտիվությունը կարող է լինել խոչընդոտ:
  • Network activity: ելքային և մուտքային տրաֆիկ, ցանցային կապերի քանակ: Բարձր բեռը կարող է պայմանավորված լինել ցանցային խնդիրներով կամ DoS հարձակումով:
  • Process list: գործարկված գործընթացների ցանկ, նրանց ռեսուրսների սպառում, վիճակ: Օգնում է հայտնաբերել կոնկրետ գործընթացը, որը բեռ է ստեղծում:

Տեղական գործիքներ՝

  • top / htop: համակարգային ռեսուրսների և գործընթացների ինտերակտիվ մոնիտորինգ՝ իրական ժամանակում: Позволяет сортировать процессы по потреблению ЦПУ, памяти, и т.д.

    # top -c // отображение полной командной строки
    
  • vmstat: վիրտուալ հիշողության, գործընթացների, CPU և մուտք-արտահոսքի ակտիվության հաշվետվություն:

    # vmstat 1 // յուրաքանչյուր վայրկյան
    
  • iostat: սկավառական սարքերի ակտիվության և կատարողականության մոնիտորինգ:

    # iostat -xz 1 // ընդլայնված ելք յուրաքանչյուր վայրկյան
    
  • netstat / ss: ցանցային կապերի, երթուղիների, ցանցային ինտերֆեյսների վիճակագրության տեղեկություններ:

    # netstat -tunapl // TCP/UDP կապեր, LISTEN socket-ներ, պորտեր, PID
    # ss -tunapl
    
  • sar: համակարգային ակտիվության հավաքում, հաշվետվություններ և վերլուծություն (CPU, հիշողություն, սկավառական, ցանց): Օգտագործվում է պատմական կատարողականության վերլուծության համար:

    # sar -u 5 5 // CPU յուրաքանչյուր 5 վայրկյան, 5 անգամ
    # sar -d 5 5 // սկավառական յուրաքանչյուր 5 վայրկյան, 5 անգամ
    # sar -n DEV 5 5 // ցանց յուրաքանչյուր 5 վայրկյան, 5 անգամ
    
  • iftop / nethogs: ինտերակտիվ մոնիտորինգ ցանցային տրաֆիկի ըստ ինտերֆեյսների կամ գործընթացների:

    # iftop -i eth0 // eth0 ինտերֆեյսի մոնիտորինգ
    # nethogs eth0 // ցանցային տրաֆիկի մոնիտորինգ գործընթացների վրա
    
  • dstat: համապարփակ գործիք, որը միավորում է vmstat, iostat, netstat հնարավորությունները:

    # dstat -c -m -d -n // CPU, հիշողություն, սկավառական, ցանց
    
  • strace / lsof: համակարգային կանչերի трасսավորում (strace) և բացված ֆայլերի ցանկ (lsof) կոնկրետ գործընթացի համար:

    # strace -p <PID> // գործընթացի трасսավորում PID-ով
    # lsof -p <PID> // բաց ֆայլեր գործընթացի PID-ով
    

Աշխատանքը կշարունակվի՝ մետրիկների հիման վրա խոչընդոտային կետը հայտնաբերելու, համապատասխան գործիքով մանրամասնելու, պատճառը վերլուծելու (օրինակ՝ կոնկրետ գործընթաց), և համապատասխան միջոցներ ձեռնարկելու (օրինակ՝ վերագործարկում կամ օպտիմալացում, ռեսուրսների ավելացում): Կարևոր է նաև ստուգել հավելվածների և համակարգի լոգերը (journalctl, /var/log/*