[Postfixbuch-users] Probleme mit Postfix/SASL/Cyrus/MySQL und "slow queries"

Christian Boltz postfixbuch at cboltz.de
So Jun 3 23:16:54 CEST 2007


Hallo Florian, hallo Leute,

Am Freitag, 1. Juni 2007 schrieb Rustedt, Florian:
> wir haben schon immer das Problem, daß in dieser Kombination sich
> regelmäßig "slow queries" bis hin zum Stillstand der Datenbank
> ansammeln.
[...]
> In Zahlen heißt das, das alle zwei Tage sich duetlich über 100 slow
> queries angesammelt haben, die ich dann kille.

Definiere "kille". Dass slow queries mal ein paar Sekunden mehr brauchen 
ist ja klar, aber dass man sie nach Tagen killen muss, wäre mir neu.
Schalte außerdem mal das slow-queries-log in MySQL ein, falls noch nicht 
erledigt:

/etc/my.cnf, Abschnitt [mysqld]
log-slow-queries=/var/lib/mysql/slow-queries.log
log-queries-not-using-indexes

Hinterher MySQL natürlich neu starten (IIRC kann es sein, dass "reload" 
nicht reicht, deshalb lieber "restart" verwenden).

> ----- Postfix main.cf

In Zukunft bitte stattdessen postconf -n mitschicken ;-)

Ich kürze das Ganze mal auf die Datenbank-relevanten Optionen zusammen:

> mydestination =
>     $mynetworks
>     mysql:/etc/postfix/mysql/defaultdomains.cf
>     mysql:/etc/postfix/mysql/userdomains.cf

Warum ohne proxy: ?

> # Using MySQL and files
> proxy_read_maps =
>     proxy:mysql:/etc/postfix/mysql/mailboxes.cf
>     proxy:mysql:/etc/postfix/mysql/forwarders.cf
>     proxy:mysql:/etc/postfix/mysql/prusmado_users.cf
>     proxy:mysql:/etc/postfix/mysql/sasl.cf
>     proxy:mysql:/etc/postfix/mysql/aliases.cf
> local_recipient_maps =
>     proxy:mysql:/etc/postfix/mysql/mailboxes.cf
>     hash:/etc/postfix/files/relay
> virtual_alias_maps =
>     proxy:mysql:/etc/postfix/mysql/forwarders.cf
>     proxy:mysql:/etc/postfix/mysql/prusmado_users.cf
>     hash:/etc/postfix/files/virtual
> smtp_sasl_password_maps = proxy:mysql:/etc/postfix/mysql/sasl.cf


> ----- Mysql my.conf

Ergänze hier mal um einen Query Cache - der bringt erfahrungsgemäß recht 
viel:

in [mysqld]
set-variable = query_cache_size=1000000

Zugehörige Erklärungen:
- http://www.administrator.de/Der_MySQL_Query-Cache.html
- http://blog.koehntopp.de/archives/1173-MySQL-fuer-Dummies-3.html
- Die Größe des query_cache musst Du ggf. nach Bedarf anpassen


So, und jetzt kümmern wir uns noch um die ganzen mysql: Maps in Postfix 
und was man daran ändern/verbessern könnte. Aaaalso...
- teilweise verwendest Du mehrere Datenbankabfragen (z. B. bei 
  virtual_alias_maps). Ungeschickt, das sind dann nämlich gleich mehrere 
  Datenbankanfragen. Besser wäre es, beides in einer Query 
  zusammenzufassen.
- Was steht in den mysql/*.cf-Dateien drin?
  Am Besten postest Du mal den Inhalt all dieser Dateien (natürlich ohne
  die MySQL-Passwörter ;-)
- Wie sieht Deine Datenbankstruktur aus? Hast Du passende Indizies 
  erstellt?
- Was sagt das Log bezüglich slow queries und/oder fehlenden Indizies?
  Nach obigem log-slow-queries sollte sich diesbezüglich etwas finden,
  falls es wirklich langsame Abfragen gibt.
- Welche MySQL-Version?


Gruß

Christian Boltz
-- 
Ich rede davon, daß eine defekte Schrift an freetype übergeben wird (Daß
sie defekt ist, kann ich ja nicht prüfen), woraufhin freetype irgendeine
(defekte) Anweisung im Fontcode ohne Prüfung ausführt und erstmal
getreulich versucht, sagenwirmal 5 Okobyte RAM von der Adresse $IRSINN
nach $WAHNSINN zu verschieben. [Ratti in suse-programming]



Mehr Informationen über die Mailingliste Postfixbuch-users