I princip får du anslutningar i viloläge när:
- ett PHP-skript ansluter till MySQL
- vissa frågor körs
- sedan gör PHP-skriptet en del saker som tar tid
- utan att koppla från DB
- och till sist slutar PHP-skriptet
- vilket betyder att den kopplar från MySQL-servern
Så du slutar vanligtvis med många processer i viloläge när du har många PHP-processer som förblir uppkopplade, utan att egentligen göra något på databassidan.
En grundläggande idé, så :se till att du inte har PHP-processer som körs för länge -- eller tvinga dem att koppla från så snart de inte behöver komma åt databasen längre.
En annan sak, som jag ofta ser när det är lite belastning på servern :
- Det kommer fler och fler förfrågningar till Apache
- vilket innebär många sidor att generera
- Varje PHP-skript, för att skapa en sida, ansluter till DB och gör några frågor
- Dessa frågor tar mer och mer tid, eftersom belastningen på DB-servern ökar
- Vilket innebär att fler processer fortsätter att staplas upp
En lösning som kan hjälpa är att minska tiden dina frågor tar – optimera de längsta.