Ich verwalte einen Server, auf dem ein Tool mit PostgreSQL ausgeführt wird. Das Tool kümmert sich selbst um die meisten PostgreSQL-Konfigurationen, aber ich beobachte einige Leistungsprobleme. Ich konnte auf Betriebssystemebene bestätigen, dass viele E / A-Vorgänge stattfinden , daher vermute ich, dass viele Cache-Fehler auftreten.
Wenn Sie im Internet nach "Cache Miss" oder "Cache Miss Postgresql" oder ähnlichen Suchanfragen suchen, finden Sie viele Verweise auf " cache_miss statistics ". Aber nirgends wird erklärt, wie man sie bekommt! Ich habe irgendwie verstanden, dass dieser Wert berechnet werden muss, indem Treffer von Abrufen abgezogen werden . Aber da ich kein erfahrener DB-Administrator bin, verstehe ich nicht wirklich, dass Werte gemeint sind: -S
Ich habe die Dokumentation zu PostgreSQL - Monitoring Database Activity gefunden , bin mir aber nicht sicher, ob die folgende Formel alles ist, was ich brauche:
cache_miss = "result_of" pg_stat_get_db_blocks_fetched(oid) - "result_of" pg_stat_get_db_blocks_hit(oid)
Eine Erklärung für Dummies wäre sehr dankbar.
Vielen Dank im Voraus!
quelle
Antworten:
In der Dokumentation von PostgreSql gibt es einen Absatz: ( Hier )
Note: pg_stat_get_blocks_fetched minus pg_stat_get_blocks_hit gives the number of kernel read() calls issued for the table, index, or database; the number of actual physical reads is usually lower due to kernel-level buffering. The *_blks_read statistics columns use this subtraction, i.e., fetched minus hit.
Dies könnte Ihren Zweifel erklären.
quelle
Ich benutze diese Abfrage, um
disk x cache
Treffer anzuzeigen:quelle