sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg logge vis procesliste, når der er mere end n forespørgsler?

pt-stalk er designet til netop dette formål. Det sampler proceslisten hvert sekund (eller hvilket tidspunkt du angiver), og når en tærskel er nået (Threads_running er standarden og er, hvad du ønsker i dette tilfælde), indsamler den en hel masse data, inklusive diskaktivitet, tcpdumps, flere eksempler på proceslisten, serverstatusvariabler, mutex/innodb-status og en masse mere.

Sådan starter du det:

pt-stalk --daemonize --dest /var/lib/pt-stalk --collect-tcpdump --threshold 50 --cycles 1 --disk-pct-free 20 --retention-time 3 -- --defaults-file=/etc/percona-toolkit/pt-stalk_my.cnf

Kommandoen ovenfor vil prøve Threads_running (--threshold; sæt dette til din værdi for n ), hvert sekund (standard for --interval ) og affyr en dataindsamling, hvis Threads_running er større end 50 for 1 på hinanden følgende prøve (--cycles ). 3 dage (--retention-time ) af prøver vil blive opbevaret og indsamle vil ikke udløses, hvis mindre end 20 % af din disk er ledig (--disk-pct-free ). Ved hver samling vil et pcap-format tcpdump blive udført (--collect-tcpdump ) som kan analyseres med enten konventionelle tcpdump-værktøjer eller en række andre Percona Toolkit-værktøjer, herunder pt-query-digest og pt-tcp-model . Der vil være 5 minutters pause mellem prøverne (standard --sleep). ) for at forhindre, at du gør dig selv. Processen vil blive dæmoniseret (--daemonize ). Parametrene efter -- videregives til alle mysql/mysqladmin-kommandoer, så det er et godt sted at indstille ting som --defaults-file hvor du kan gemme dine loginoplysninger væk fra nysgerrige øjne.



  1. MySQL-injektion af LIKE-operatør

  2. BESTIL EFTER dato og tid FØR GRUPPER EFTER navn i mysql

  3. CLR Strenge sikkerhed på SQL Server 2017

  4. Hvordan indsætter man en datatabel i SQL Server-databasetabel?