Postgresql Tuning - Viele konkurriende Inserts

Hallo zusammen,

ich habe ein PHP Script welches einen einfachen Insert in eine Postgresql-Tabelle macht. Dieses Script ist von Zeit zu Zeit stark frequentiert, ca. 100 Mal die Minute. Nun sehe ich bei hoher Last deutliche Performance Probleme die sich wie folgt zu erkennen geben:

Bei hoher Last dauert ein einfaches Insert Statement (egal in welche Tabelle) von der Konsole ca. 15 Sekunden, das ist zu lange.

Ein Count/Ausgabe auf die pg_stat_activity zeigt mir, dass ca. 120 aktive Insert Statements in der Warteschlange hängen. Die Anzahl nimmt dann ganz plötzlich ab um kurz darauf wieder anzusteigen.

Ich möchte nun eine Situation erreichen, wo jedes Insert Statement mehr oder weniger sofort abgearbeitet wird und nicht wie hier “wartet” (auf was auch immer :wink:

Wer weiss, welche Parameter ich mir in meinem Fall genauer anschauen sollte?

Danke und Gruß,
Florian

Sind die inserts die einzigen Aktionen, die auf dieser Tabelle stattfinden? Oder wird parallel dazu noch gelesen oder werden Updates durchgeführt?

Reine Inserts sollten an sich kein Problem sein, da sie kein Locking der Tabelle erfordern.

Was macht dieses PHP Script noch, ausser diesem einen Insert?

Und ist deine Maschine ev. an einem I/O Limit? Wenn du sagst, dass dort ab und zu viele Zugriffe in der Warteschlange stehen, wäre es möglich, das deine Hardware hier nicht schneller arbeiten kann.