<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aws on YouSysAdmin</title>
    <link>https://yousysadmin.com/tags/aws/</link>
    <description>Recent content in Aws on YouSysAdmin</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>YouSysAdmin</copyright>
    <lastBuildDate>Fri, 09 Oct 2026 11:13:56 +0300</lastBuildDate>
    <atom:link href="https://yousysadmin.com/tags/aws/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PostgreSQL: Maintenance, Autovacuum and Monitoring</title>
      <link>https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/</link>
      <pubDate>Fri, 09 Oct 2026 11:00:00 +0300</pubDate>
      <guid>https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This note was written for PostgreSQL 13–18.&lt;br&gt;&#xA;On older versions some columns of system views may differ. When in doubt, check the documentation for your version.&lt;br&gt;&#xA;PostgreSQL 19 is still in beta/RC (release expected in October 2026). Where it changes something relevant, it is marked as &amp;ldquo;PG19 (beta)&amp;rdquo;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Legend used in the explanations:&lt;/p&gt;&#xA;&lt;p&gt;🟢 normal&lt;br&gt;&#xA;🟡 worth a look&lt;br&gt;&#xA;🔴 a problem that requires action&lt;/p&gt;&#xA;&lt;h2 id=&#34;contents&#34;&gt;Contents&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#1-how-autovacuum-works-briefly&#34;&gt;How autovacuum works (briefly)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#2-current-autovacuum-settings&#34;&gt;Current autovacuum settings&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#3-what-autovacuum-is-doing-right-now&#34;&gt;What autovacuum is doing right now&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#4-dead-rows-and-vacuum-history-per-table&#34;&gt;Dead rows and vacuum history per table&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#5-transaction-id-wraparound&#34;&gt;Transaction ID wraparound&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#6-what-prevents-vacuum-from-removing-rows&#34;&gt;What prevents vacuum from removing rows&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#7-table-and-index-sizes&#34;&gt;Table and index sizes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#8-bloat&#34;&gt;Bloat&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#9-indexes-unused-duplicate-invalid&#34;&gt;Indexes: unused, duplicate, invalid&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#10-general-database-health&#34;&gt;General database health&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#11-locks&#34;&gt;Locks&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#12-heavy-queries-pg_stat_statements&#34;&gt;Heavy queries (pg_stat_statements)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#13-replication-and-wal&#34;&gt;Replication and WAL&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#14-checkpoints-and-io&#34;&gt;Checkpoints and I/O&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#15-what-to-monitor-and-alert-thresholds&#34;&gt;What to monitor and alert thresholds&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#16-configuration-recommendations&#34;&gt;Configuration recommendations&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#17-routine-maintenance&#34;&gt;Routine maintenance&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#18-partitioning&#34;&gt;Partitioning&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://yousysadmin.com/posts/postgres-autovacuum-and-maintenance/#19-managed-postgresql-in-the-clouds&#34;&gt;Managed PostgreSQL in the clouds&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;1-how-autovacuum-works-briefly&#34;&gt;1. How autovacuum works (briefly)&lt;/h2&gt;&#xA;&lt;p&gt;PostgreSQL does not overwrite a row on &lt;code&gt;UPDATE&lt;/code&gt; or &lt;code&gt;DELETE&lt;/code&gt;. The old row version stays on disk as a &lt;strong&gt;dead tuple&lt;/strong&gt; until &lt;code&gt;VACUUM&lt;/code&gt; removes it. This is called MVCC.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
