"show processlist" säubern?

"show processlist" säubern?

am 08.12.2006 14:33:02 von spam

Hallo,

ich betreibe ein BDE-System mit MySQL. Zur Anzeige der aktiven Terminals
erstelle ich aus den per "show processlist" erhaltenen Daten eine
Übersicht (Host und Time).

Dabei ist mir aufgefallen, dass es hin und wieder regelrechte
"Prozessleichen" gibt. Wenn z.B. ein Terminal plötzlich getrennt und
wieder neu verbunden wird, gibt es anschliessend einen aktuellen Eintrag
(Host) mit kleinen Time-Werten und vom selben Host einen inaktiven
Eintrag mit endlos wachsendem Time-Wert.

Gibt es eine Möglichkeit, diese Liste per SQL zu säubern?

Danke für Tips, Frank

Re: "show processlist" säubern?

am 08.12.2006 15:07:31 von Christian Hammers

On 2006-12-08 Frank Esselbach wrote:
> Hallo,
>=20
> ich betreibe ein BDE-System mit MySQL. Zur Anzeige der aktiven Terminals
> erstelle ich aus den per "show processlist" erhaltenen Daten eine
> Übersicht (Host und Time).
>=20
> Dabei ist mir aufgefallen, dass es hin und wieder regelrechte
> "Prozessleichen" gibt. Wenn z.B. ein Terminal plötzlich getrennt und
> wieder neu verbunden wird, gibt es anschliessend einen aktuellen Eintrag
> (Host) mit kleinen Time-Werten und vom selben Host einen inaktiven
> Eintrag mit endlos wachsendem Time-Wert.
>=20
> Gibt es eine Möglichkeit, diese Liste per SQL zu säubern?

Mit "mysqladmin kill" bzw. "KILL " kann man eine alte Session entferne=
n.
Mit den Variablen idle_timeout und interactive_timeout (oder so) kann man
MySQL beibringen Sessions nach einer bestimmten Zeit selber zu entfernen.

tschüss,

-christian-

Re: "show processlist" säubern?

am 08.12.2006 15:14:26 von Axel Schwenke

spam@ghostlink.de (Frank Esselbach) wrote:

> ich betreibe ein BDE-System mit MySQL. Zur Anzeige der aktiven Terminals
> erstelle ich aus den per "show processlist" erhaltenen Daten eine
> Übersicht (Host und Time).
>
> Dabei ist mir aufgefallen, dass es hin und wieder regelrechte
> "Prozessleichen" gibt. Wenn z.B. ein Terminal plötzlich getrennt und
> wieder neu verbunden wird, gibt es anschliessend einen aktuellen Eintrag
> (Host) mit kleinen Time-Werten und vom selben Host einen inaktiven
> Eintrag mit endlos wachsendem Time-Wert.

Wenn dein Client sich nicht regulär abmeldet und nichtmal dessen
TCP-Stack die TCP-Connection schließt, bleibt von Seiten des MySQL-
Servers die Verbindung so lange bestehen, bis entweder wait_timeout
(Default: 8 Stunden) abgelaufen ist, oder das Betriebssystem die
TCP-Verbindung wegen Inaktivität trennt (TCP Keepalive & Freunde).

> Gibt es eine Möglichkeit, diese Liste per SQL zu säubern?

KILL THREAD hilft auch hier.


XL