sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag logga visa processlista när det finns fler än n frågor?

pt-stalk är utformad för just detta ändamål. Den samplar processlistan varje sekund (eller vilken tid du än anger), sedan när en tröskel nås (Threads_running är standard och är vad du vill ha i det här fallet), samlar den in en hel massa data, inklusive diskaktivitet, tcpdumps, flera exempel på processlistan, serverstatusvariabler, mutex/innodb-status och en massa mer.

Så här startar 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

Kommandot ovan kommer att ta ett exempel på Threads_running (--threshold; ställ in detta till ditt värde för n ), varje sekund (standard för --interval ) och aktivera en datainsamling om Threads_running är större än 50 för 1 på varandra följande prov (--cycles ). 3 dagar (--retention-time ) av prover kommer att behållas och collect kommer inte att aktiveras om mindre än 20 % av din disk är ledig (--disk-pct-free ). Vid varje samling kommer ett pcap-format tcpdump att köras (--collect-tcpdump ) som kan analyseras med antingen konventionella tcpdump-verktyg eller ett antal andra Percona Toolkit-verktyg, inklusive pt-query-digest och pt-tcp-model . Det kommer att vara 5 minuters vila mellan proverna (standard för --sleep). ) för att förhindra att du gör dig själv. Processen kommer att demoniseras (--daemonize ). Parametrarna efter -- kommer att skickas till alla mysql/mysqladmin-kommandon, så det är ett bra ställe att ställa in saker som --defaults-file där du kan lagra dina inloggningsuppgifter borta från nyfikna ögon.



  1. Vad är det bästa sättet att välja de två första posterna i varje grupp med ett SELECT-kommando?

  2. Analysera tabell- och kolumnnamn från SQL/HQL Java

  3. php mysql_connect Varning inaktivera

  4. Introduktion till PL/SQL-paket i Oracle Database