11 Linux-prestatieopdrachten die u moet kennen als systeembeheerder

Het oplossen van prestatieproblemen in de IT-wereld is altijd een uitdaging, en als u niet op de hoogte was van de juiste tools, zou het frustrerend zijn.


Als u als ondersteuning in een productieomgeving werkt, zult u hoogstwaarschijnlijk prestatieproblemen in de Linux-omgeving moeten oplossen.

Bent u in ondersteunende functie en werkt u op een Linux-server?

Laten we enkele van de meest gebruikte Linux-opdrachtregelhulpprogramma’s doornemen om prestatie-gerelateerde problemen te diagnosticeren.

Notitie: Sommige van de onderstaande opdrachten zijn mogelijk niet standaard geïnstalleerd, dus u moet ze handmatig installeren.

lsof

lsof staat voor “list open files” om u te helpen bij het vinden van alle geopende bestanden en processen, samen met degene die ze heeft geopend. Het hulpprogramma lsof kan in sommige scenario’s handig zijn om te gebruiken.

Om op te sommen, alle bestanden geopend door een bepaalde PID

# lsof –p PID

Tel het aantal bestanden & processen

[[email beveiligd] ~] # lsof -p 4271 | wc -l
34
[[email beveiligd] ~] #

Controleer het momenteel geopende logbestand

# lsof –p | grep logboek

Zoek poortnummer gebruikt door daemon

[[email beveiligd] ~] # lsof -i -P | grep 4271

nginx 4271 root 6u IPv4 51306 0t0 TCP *:80 (LUISTER)

nginx 4271 root 7u IPv4 51307 0t0 TCP *:443 (LUISTER)

[[email beveiligd] ~] #

pidstat

pidstat kan worden gebruikt om taken te controleren die worden beheerd door de Linux-kernel. Het oplossen van een I / O-gerelateerd probleem kan het gemak zijn met deze opdracht.

Lijst I / O-statistieken van alle PID

# pidstat –d

Om I / O-statistieken voor bepaalde PID te verplaatsen

# pidstat –p 4271 –d

Als u voor een bepaald proces in realtime problemen oplost, kunt u de I / O in een interval volgen. Onderstaand voorbeeld is om elke 5 seconden te monitoren.

[[email beveiligd] ~] # pidstat -p 4362 -d 5

Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain) 13-08-2016 _x86_64_ (2 CPU)

19:01:30 UID PID kB_rd / s kB_wr / s kB_ccwr / s Commando

19:01:35 0 4362 0,00 0,00 0,00 nginx

19:01:40 0 4362 0,00 0,00 0,00 nginx

19:01:45 0 4362 0,00 0,00 0,00 nginx

19:01:50 0 4362 0,00 0,00 0,00 nginx

top

Waarschijnlijk is een van de meest gebruikte opdrachten op Linux de top. Het bovenste commando kan worden gebruikt om systeemoverzichtinformatie en het huidige gebruik weer te geven.

Alleen al het uitvoeren van het hoogste commando kan je CPU-gebruik, procesdetails, een aantal taken, geheugengebruik, een aantal zombieprocessen, enz.Tonen.

top

Om procesdetails voor een specifieke gebruiker weer te geven

# top –u gebruikersnaam

Om het proces te beëindigen, kun je top uitvoeren en op drukken k. Het zal u vragen om de PID in te voeren die moet worden gedood.

top-kill

ps

ps staat voor processtatus en wordt veel gebruikt als opdracht om een ​​momentopname van het lopende proces te krijgen. Zeer handig om erachter te komen of een proces al dan niet actief is en indien uitgevoerd, wordt PID afgedrukt.

Om de PID te achterhalen en de details per woord te verwerken

# ps –ef | grep woord

ps-uitgang

tcpdump

Het oplossen van netwerkproblemen is altijd een uitdaging en een van de essentiële opdrachten die moet worden gebruikt, is tcpdump.

Je kunt gebruiken tcpdump om de netwerkpakketten op een netwerkinterface vast te leggen.

Om de pakketten op een bepaalde netwerkinterface vast te leggen

# tcpdump –i $ interface –w / tmp / capture

tcpdump-output

Zoals u hierboven kunt zien, heeft de verkeersstroom op de “eno16777736” -interface vastgelegd.

Om netwerkverkeer tussen bron en doel-IP vast te leggen

# tcpdump src $ IP en dst host $ IP

Leg netwerkverkeer vast voor bestemmingspoort 443

# tcpdump dst poort 443
tcpdump: datalinktype PKTAP
tcpdump: uitgebreide uitvoer onderdrukt, gebruik -v of -vv voor volledige protocoldecodering
luisteren op pktap, link-type PKTAP (Packet Tap), vastleggen grootte 262144 bytes
12: 02: 30.833845 IP 192.168.1.2.49950 > ec2-107-22-185-206.compute-1.amazonaws.com.https: Flags [.], ack 421458229, win 4096, lengte 0
12: 02: 32.076893 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [S], seq 21510813, win 65535, options [mss 1460, nop, wscale 5, nop, nop, TS val 353259990 ecr 0, sackOK, eol], lengte 0
12: 02: 32.090389 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [.], Ack 790725431, win 8192, lengte 0
12: 02: 32.090630 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [P.], seq 0: 517, ack 1, win 8192, lengte 517
12: 02: 32.109903 IP 192.168.1.2.49953 > 104.25.133.107.https: Flags [.], Ack 147, win 8187, lengte 0

Lees het vastgelegde bestand

# tcpdump –r bestandsnaam

Bijvoorbeeld: om het bovenstaande vastgelegde bestand te lezen

# tcpdump –r / tmp / test

iostat

iostat staat voor input-outputstatistieken en wordt vaak gebruikt om prestatieproblemen met opslagapparaten te diagnosticeren. U kunt CPU, apparaat bewaken & Netwerkbestandssysteemgebruiksrapport met iostat.

Schijf-I / O-statistieken weergeven

[[email beveiligd] ~] # iostat -d
Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain) 13-08-2016 _x86_64_ (2 CPU)
Apparaat: tps kB_read / s kB_wrtn / s kB_read kB_wrtn
sda 1.82 55.81 12.63 687405 155546
[[email beveiligd] ~] #

CPU-statistieken weergeven

[[email beveiligd] ~] # iostat -c
Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain) 13-08-2016 _x86_64_ (2 CPU)
avg-cpu:% user% nice% system% iowait% steal% idle
0,59 0,02 0,33 0,54 0,00 98,52
[[email beveiligd] ~] #

ldd

ldd staat voor lijst dynamische afhankelijkheden om gedeelde bibliotheken weer te geven die de bibliotheek nodig heeft. De opdracht ldd kan handig zijn om het opstartprobleem van de toepassing te diagnosticeren.

Als een programma niet start omdat de afhankelijkheden niet beschikbaar zijn, kunt u ldd zoeken naar de gedeelde bibliotheken waarnaar het op zoek is.

[[email beveiligd] sbin] # ldd httpd
linux-vdso.so.1 => (0x00007ffe7ebb2000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fa4d451e000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fa4d42f9000)
libaprutil-1.so.0 => /lib64/libaprutil-1.so.0 (0x00007fa4d40cf000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fa4d3e98000)
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fa4d3c6e000)
libdb-5.3.so => /lib64/libdb-5.3.so (0x00007fa4d38af000)
libapr-1.so.0 => /lib64/libapr-1.so.0 (0x00007fa4d3680000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa4d3464000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fa4d325f000)
libc.so.6 => /lib64/libc.so.6 (0x00007fa4d2e9e000)
liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fa4d2c79000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa4d4a10000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fa4d2a73000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007fa4d2870000)
[[email beveiligd] sbin] #

netstat

netstat (netwerkstatistieken) is een populaire opdracht om netwerkverbindingen en interfacestatistieken af ​​te drukken en om verschillende netwerkgerelateerde problemen op te lossen.

Om statistieken van alle protocollen weer te geven

# netstat –s

U kunt grep gebruiken om uit te zoeken of er fouten zijn

[[email beveiligd] sbin] # netstat -s | grep-fout
0 pakketontvangstfouten
0 ontvangen bufferfouten
0 verzend bufferfouten
[[email beveiligd] sbin] #

Om kernelrouteringstabel te tonen

[[email beveiligd] sbin] # netstat -r
Kernel IP-routeringstabel
Bestemmingsgateway Genmask Flags MSS Window irtt Iface
standaard gateway 0.0.0.0 UG 0 0 0 eno16777736
172.16.179.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777736
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr 0
[[email beveiligd] sbin] #

vrij

Als uw Linux-server onvoldoende geheugen heeft of gewoon wilt weten hoeveel geheugen beschikbaar is uit het beschikbare geheugen, dan zal de gratis opdracht u helpen.

[[email beveiligd] sbin] # gratis -g
totaal gebruikte gratis gedeelde buff / cache beschikbaar
Mem: 5 0 3 0 1 4
Ruilen: 5 0 5
[[email beveiligd] sbin] #

-g betekent om de details in GB weer te geven. Zoals u kunt zien, is het totale beschikbare geheugen 5 GB en is 3 GB gratis.

sar

sar (System Activity Report) zal nuttig zijn om een ​​aantal rapporten te verzamelen, inclusief CPU, geheugen en apparaatbelasting.

Door gewoon sar uit te voeren, wordt het systeemgebruik voor de hele dag weergegeven.

sar-uitvoer

Standaard wordt het gebruiksrapport binnen 10 minuten opgeslagen. Als u in realtime iets korter nodig heeft, kunt u het gebruiken zoals hieronder.

Toon het CPU-rapport 3 keer elke 3 seconden

[[email beveiligd] sbin] # sar 3 2
Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain) 13-08-2016 _x86_64_ (2 CPU)
23:14:02 CPU% gebruiker% mooi% systeem% iowait% stelen% inactief
23:14:05 alle 1,83 0,00 0,50 0,17 0,00 97,51
23:14:08 alle 1,50 0,00 0,17 0,00 0,00 98,33
Gemiddeld: alle 1,67 0,00 0,33 0,08 0,00 97,92
[[email beveiligd] sbin] #

Geheugengebruiksrapport weergeven

# sar –r

Toon netwerkrapport

# sar –n ALLES

ipcs

ipcs (InterProcess Communication System) biedt een rapport over het semafoor, gedeelde geheugen & berichtenwachtrij.

Om de berichtenwachtrij weer te geven

# ipcs –q

Om de semaforen op te sommen

# ipcs –s

Om het gedeelde geheugen weer te geven

# ipcs –m

Om de huidige gebruiksstatus van IPC weer te geven

[[email beveiligd] sbin] # ipcs -u

—— Berichten Status ——–
toegewezen wachtrijen = 0
gebruikte headers = 0
gebruikte ruimte = 0 bytes

—— Status van gedeeld geheugen ——–
segmenten toegewezen 5
pagina’s toegewezen 2784
pagina’s ingezeten 359
pagina’s verwisseld 0
Ruilprestaties: 0 pogingen 0 successen

—— Semaphore Status ——–
gebruikte arrays = 0
toegewezen semaforen = 0
[[email beveiligd] sbin] #

Ik hoop dat bovenstaande commando’s helpen bij de verschillende situaties bij uw systeembeheeropdracht.

Deze zijn alleen bedoeld om u een idee te geven van opdrachten, en als u geïnteresseerd bent, kunt u dit eens bekijken Cursus Linux prestatiebewaking en probleemoplossing.

TAGS:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map