PostgreSQL-7 рдореЗрдВ MVCCред Autovacuum

рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЕрд▓рдЧрд╛рд╡ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХреА, рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдХрд┐рдпрд╛, рдкрдВрдХреНрддрд┐ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рдкрдВрдХреНрддрд┐ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдлрд┐рд░ рд╣рдордиреЗ рдЗрди-рдкреЗрдЬ рд╡реИрдХреНрдпреВрдо (рдФрд░ HOT рдЕрдкрдбреЗрдЯ) рдФрд░ рд╡реИрдХреНрдпреВрдо рдХреА рдЦреЛрдЬ рдХреА ред рдЕрдм рд╣рдо рдСрдЯреЛрд╡реИрдХреНрдпреБрдо рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗред

Autovacuum


рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЖрдо рддреМрд░ рдкрд░ (рдпрд╛рдиреА, рдЬрдм рдХреБрдЫ рднреА рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓реЗрди-рджреЗрди рдХреНрд╖рд┐рддрд┐рдЬ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ) VACUUM рдЖрдорддреМрд░ рдкрд░ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд┐рддрдиреА рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдпрджрд┐ рд╣рдо рдПрдХ рдмрджрд▓рддреА рд╣реБрдИ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдмрд╣реБрдд рдХрдо рдмрд╛рд░ рд╡реИрдХреНрдпреВрдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рд╡рд╛рдВрдЫрд┐рдд рд╕реЗ рдЕрдзрд┐рдХ рдмрдврд╝ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЕрдЧрд▓реЗ рд╡реИрдХреНрдпреВрдо рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕реЗ рдХрдИ рдкрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдЧрдП рдереЗред

рдпрджрд┐ рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдмрд╣реБрдд рдмрд╛рд░ рд╡реИрдХреНрдпреВрдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рд░реНрд╡рд░ рдЙрдкрдпреЛрдЧреА рдХрд╛рдо рдХреЗ рдмрдЬрд╛рдп рд▓рдЧрд╛рддрд╛рд░ рд░рдЦрд░рдЦрд╛рд╡ рдХрд░реЗрдЧрд╛ - рдФрд░ рдпрд╣ рднреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╢реЗрдбреНрдпреВрд▓ рдкрд░ VACUUM рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрднрд╛рд░ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рддрд╛рд▓рд┐рдХрд╛ рдЕрдзрд┐рдХ рддреАрд╡реНрд░рддрд╛ рд╕реЗ рдмрджрд▓рдирд╛ рд╢реБрд░реВ рдХрд░рддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╡реИрдХреНрдпреВрдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдареАрдХ рд╡реИрд╕реА рд╣реА рддрдХрдиреАрдХ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИред

рдЬрдм рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ ( рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ), рддреЛ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рд▓рд╛рдВрдЪрд░ рдбреЗрдореЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдХрд╛рдо рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреА рд╣реИред рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рд╕реНрд╡рдпрдВ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рд▓рд╛рдВрдЪрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХрд░рддреА рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрдИ рднреА рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣реЛрддреА рд╣реИред рдЧрддрд┐рд╡рд┐рдзрд┐ рдЖрдВрдХрдбрд╝реЛрдВ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕реЗ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреНрд░реИрдХ_рдХрд╛рдЙрдВрдЯреНрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрднреА рднреА рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдФрд░ рдЯреНрд░реИрдХ_рдХреЛрдб рдХреЛ рдмрдВрдж рди рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛, рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рд╕реБрд╡рд┐рдзрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред

рдПрдХ рдмрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо_рдиреИрдкрд┐рдЯреЗрдХ рд╕реЗрдХрдВрдб рдореЗрдВ, рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рд▓реЙрдиреНрдЪрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ ( рдкреЛрд╕реНрдЯрдорд╛рд╕реНрдЯрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рд╕реВрдЪреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдХрд┐рд╕реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреБрдЫ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣реИ, рддреЛ рдСрдЯреЛрд╡реЗрдХреНрдпреВрдо_рдиреИрдкреНрдЯреАрдо рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЗрд╕рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЕрдВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреБрдЫ (рдПрди) рд╕рдХреНрд░рд┐рдп рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рддреЛ рд╢реНрд░рдорд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрди рдмрд╛рд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо_рдиреИрдкрд┐рдЯрд╛рдЗрдо рд╕реЗрдХрдВрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рде рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рд╢реНрд░рдорд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдСрдЯреЛрд╡реИрдХреЛрдо_рдореИрдХреНрд╕_рд╡рд░реНрдХрд░реНрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рд╣реИред

рдЬрдм рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕реЗ рд╕реМрдВрдкреЗ рдЧрдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреЛрдбрд╝рддреА рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╕реВрдЪреА рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ:

  • рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ, рднреМрддрд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рдЯреЛрд╕реНрдЯ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
  • рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдФрд░ рднреМрддрд┐рдХ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЯреЛрд╕реНрдЯ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╣рдореЗрд╢рд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдкрд╣реБрдВрдЪ рдЬрд╛рддреЗ рд╣реИрдВ)ред

рдлрд┐рд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕реВрдЪреА рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд░рд┐рдХреНрддрд┐рдпреЛрдВ рдФрд░ / рдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ autovacuum_naptime рд╕реЗрдХрдВрдб рдореЗрдВ рдирд┐рдпреЛрдЬрд┐рдд рд╕рднреА рдХрд╛рд░реНрдп рдирд╣реАрдВ рдХрд░ рдкрд╛рдИ , рддреЛ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рд▓реЙрдиреНрдЪрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рднреЗрдЬ рджреЗрдЧреА, рдФрд░ рд╡реЗ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред "рдПрдХ рд╕рд╛рде" рдмрд╕ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рджреВрд╕рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдкрдиреА рд╕реВрдЪреА рдмрдирд╛рдПрдЧреА рдФрд░ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧреАред рдЗрд╕рд▓рд┐рдП, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕реНрддрд░ рдкрд░ рдХреЛрдИ рд╕рдорд╛рдирддрд╛ рдирд╣реАрдВ рд╣реИ - рдпрджрд┐ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рджреВрд╕рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдЧреА рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдЧреАред

рдЕрдм рдЖрдЗрдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВ рдХрд┐ "рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛" рдФрд░ "рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ" рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреИрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рд╡реИрдХреНрдпреВрдо рдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдХреНрдпрд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ?


рдпрджрд┐ рдореГрддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдпрд╛рдиреА, рдкреБрд░рд╛рдиреА) рдЯреНрдпреВрдкрд▓реНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рддреЛ рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рдЖрд╡рд╢реНрдпрдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдБрдХрдбрд╝реЗ рд╕рдВрдЧреНрд░рд╛рд╣рдХ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдореГрдд pg_stat_all_tables рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирдЬрд╝рд░ рд░рдЦ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ pg_stat_all_tables рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдФрд░ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реАрдорд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ:

  • autovacuum_vacuum_threshold рдПрдХ рдирд┐рд░рдкреЗрдХреНрд╖ рдорд╛рди (рдЯреНрдпреВрдкрд▓реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • autovacuum_vacuum_scale_factor рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╕рд╛рд░рд╛рдВрд╢ рдореЗрдВ: рдпрджрд┐ pg_stat_all_tables.n_dead_tup > = autovacuum_vacuum_threshold + autovacuum_vacuum_scale_factor - pg_class.reltupes рдпрджрд┐ pg_stat_all_tables.n_dead_tup рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде, autovacuum_vacuum_threshold = 50 рдФрд░ autovacuum_vacuum_scale_factor = 0.2ред autovacuum_vacuum_scale_factor , рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ - рдпрд╣ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ (рдФрд░ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╡ рдореБрджреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ)ред 20% рдХрд╛ рдореВрд▓реНрдп рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрд╣реБрдд рдХрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЗрд╖реНрдЯрддрдо рдорд╛рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрдпреБрдХреНрдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рднрдВрдбрд╛рд░рдг рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдЫ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕реНрддрд░ рдкрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖ рдЯреНрд╡рд┐рдХрд┐рдВрдЧ рдХрд░реЗрдВ:

  • autovacuum_vacuum_threshold рдФрд░ toast.autovacuum_vacuum_threshold ред
  • autovacuum_vacuum_scale_factor рдФрд░ toast.autovacuum_vacuum_scale_factor ред

рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдЬреЛ рдХрд┐ рд╢реЗрд╖ рд░рд╛рд╢рд┐ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рддреАрд╡реНрд░рддрд╛ рдХреЗ рдмреАрдЪ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЬрдм рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рди рдареАрдХ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЯреЗрдмрд▓ рд╕реНрддрд░ рдкрд░ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рд╢рд╛рдпрдж рд╣реА рдПрдХ рдХрд╛рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ):

  • autovacuum_enabled рдФрд░ toast.autovacuum_enabled ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╣рдордиреЗ рдбреЗрдореЛ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХреЗ рд╕рд╛рде рдЦрд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдереАред рднрдВрдбрд╛рд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 => ALTER TABLE vac SET (autovacuum_enabled = off); 

рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рджреГрд╢реНрдп рдмрдирд╛рдПрдВ рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдордп рдкрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдХреМрди рд╕реЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╡реИрдХреНрдпреВрдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рдЬреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╕реНрддрд░ рдкрд░ рдореВрд▓реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 => CREATE FUNCTION get_value(param text, reloptions text[], relkind "char") RETURNS float AS $$ SELECT coalesce( -- if the storage parameter is set, we take its value (SELECT option_value FROM pg_options_to_table(reloptions) WHERE option_name = CASE -- for TOAST tables, the parameter name differs WHEN relkind = 't' THEN 'toast.' ELSE '' END || param ), -- otherwise, we take the value of the configuration parameter current_setting(param) )::float; $$ LANGUAGE sql; 

рдФрд░ рдпрд╣ рджреГрд╢реНрдп рд╣реИ:

 => CREATE VIEW need_vacuum AS SELECT st.schemaname || '.' || st.relname tablename, st.n_dead_tup dead_tup, get_value('autovacuum_vacuum_threshold', c.reloptions, c.relkind) + get_value('autovacuum_vacuum_scale_factor', c.reloptions, c.relkind) * c.reltuples max_dead_tup, st.last_autovacuum FROM pg_stat_all_tables st, pg_class c WHERE c.oid = st.relid AND c.relkind IN ('r','m','t'); 

рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд┐рди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?


рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рд╕рдорд╛рди рд╣реИред рдЙрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдЕрджреНрдпрддрди (рдЕрдВрддрд┐рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдмрд╛рдж рд╕реЗ) рдЯреНрдпреВрдкрд▓реНрд╕ рджреЛ рд╕рдорд╛рди рдорд╛рдкрджрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ: pg_stat_all_tables.n_mod_since_analyze > = autotacuum_analyze_threshold + autovacuum_analyze_scale_factor / fg / pg_class.reltupes

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреБрдЫ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИрдВ: рдСрдЯреЛрд╡реИрдХреНрдпреВрдо_рдЕрдирд▓реАрдЬрд╝_рдереНрд░реЗрд╢реЛрд▓реНрдб = 50 рдФрд░ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо_рдЖрдирд╛рд▓реАрдЬрд╝_рд╕реЗрд▓реЗ_рдлреИрдХреНрдЯрд░ = 0.1ред рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕реНрддрд░ рдкрд░ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • autovacuum_analyze_threshold
  • autovacuum_analyze_scale_factor

рдЪреВрдВрдХрд┐ рдЯреЛрд╕реНрдЯ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдкрд╛рд╕ рдРрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИрдВред

рдЖрдЗрдП рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рднреА рдмрдирд╛рдПрдВ:

 => CREATE VIEW need_analyze AS SELECT st.schemaname || '.' || st.relname tablename, st.n_mod_since_analyze mod_tup, get_value('autovacuum_analyze_threshold', c.reloptions, c.relkind) + get_value('autovacuum_analyze_scale_factor', c.reloptions, c.relkind) * c.reltuples max_mod_tup, st.last_autoanalyze FROM pg_stat_all_tables st, pg_class c WHERE c.oid = st.relid AND c.relkind IN ('r','m'); 

рдЙрджрд╛рд╣рд░рдг


рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдорд╛рди рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ:

 => ALTER SYSTEM SET autovacuum_naptime = '1s'; -- to aviod waiting long => ALTER SYSTEM SET autovacuum_vacuum_scale_factor = 0.03; -- 3% => ALTER SYSTEM SET autovacuum_vacuum_threshold = 0; => ALTER SYSTEM SET autovacuum_analyze_scale_factor = 0.02; -- 2% => ALTER SYSTEM SET autovacuum_analyze_threshold = 0; 
 => SELECT pg_reload_conf(); 
  pg_reload_conf ---------------- t (1 row) 

рдЕрдм рдЪрд▓реЛ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рд╣рдЬрд╛рд░ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдбрд╛рд▓реЗрдВред рдСрдЯреЛрд╡реИрдХреНрдореВрдо рдХреЛ рдЯреЗрдмрд▓ рд╕реНрддрд░ рдкрд░ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рдЦреБрдж рд╕реЗ рдЪрд╛рд▓реВ рдХрд░ рджреЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдЙрджрд╛рд╣рд░рдг рдЦрд░рд╛рдм рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдкреНрд░рдЬрдирди рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдСрдЯреЛрд╡реИрдХреНрдореВрдирд┐рдВрдЧ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 => CREATE TABLE autovac( id serial, s char(100) ) WITH (autovacuum_enabled = off); => INSERT INTO autovac SELECT g.id,'A' FROM generate_series(1,1000) g(id); 

рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдирдЬрд╝рд░рд┐рдпрд╛ рдпрд╣реА рд╣реИ:

 => SELECT * FROM need_vacuum WHERE tablename = 'public.autovac'; 
  tablename | dead_tup | max_dead_tup | last_autovacuum ----------------+----------+--------------+----------------- public.autovac | 0 | 0 | (1 row) 

рдпрд╣рд╛рдБ рдзреНрдпрд╛рди рджреЛ рдмрд╛рддреЛрдВ рдкрд░ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, max_dead_tup = 0 рд╣рд╛рд▓рд╛рдВрдХрд┐ 1000 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ 3% 30 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рддреЗ рд╣реИрдВред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдореЗрдЬ рдкрд░ рдЖрдБрдХрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ INSERT рдЗрд╕реЗ рдЕрдкрдиреЗ рдЖрдк рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрдм рддрдХ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛, рддрдм рддрдХ рд╢реВрдиреНрдп pg_class.reltuples = 0. рд╕реЗ pg_class.reltuples рд░рд╣реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рджреГрд╢реНрдп рджреЗрдЦреЗрдВ:

 => SELECT * FROM need_analyze WHERE tablename = 'public.autovac'; 
  tablename | mod_tup | max_mod_tup | last_autoanalyze ----------------+---------+-------------+------------------ public.autovac | 1000 | 0 | (1 row) 

рдЪреВрдВрдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ 1000 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ), рдЬреЛ рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

 => ALTER TABLE autovac SET (autovacuum_enabled = on); 

рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдард╣рд░рд╛рд╡ рдХреЗ рдмрд╛рдж рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рд╣реА 20 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╢реВрдиреНрдп рдХреЗ рдмрдЬрд╛рдп max_dead_tup рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 => SELECT * FROM need_analyze WHERE tablename = 'public.autovac'; 
  tablename | mod_tup | max_mod_tup | last_autoanalyze ----------------+---------+-------------+------------------------------- public.autovac | 0 | 20 | 2019-05-21 11:59:48.465987+03 (1 row) 

 => SELECT reltuples, relpages FROM pg_class WHERE relname = 'autovac'; 
  reltuples | relpages -----------+---------- 1000 | 17 (1 row) 

рдЖрдЗрдП рдСрдЯреЛрдмреИрдХреНрдпреБрдорд┐рдВрдЧ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ:

 => SELECT * FROM need_vacuum WHERE tablename = 'public.autovac'; 
  tablename | dead_tup | max_dead_tup | last_autovacuum ----------------+----------+--------------+----------------- public.autovac | 0 | 30 | (1 row) 

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, max_dead_tup рдкрд╣рд▓реЗ рд╣реА рддрдп рд╣реЛ рдЪреБрдХрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ dead_tup = 0. рдЖрдВрдХрдбрд╝реЗ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЯреЗрдмрд▓ рдореЗрдВ рдбреЗрдб рдЯреНрдпреВрдкрд▓ рдирд╣реАрдВ рд╣реИрдВ ... рдФрд░ рдпрд╣ рд╕рдЪ рд╣реИред рдЕрднреА рддрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдирд┐рд░реНрд╡рд╛рдд рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рдПрдкреЗрдВрдб-рдУрдирд▓реА рдореЛрдб рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдХрд┐рд╕реА рднреА рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╡реИрдХреНрдпреВрдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП, рджреГрд╢реНрдпрддрд╛ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реВрдЪрдХрд╛рдВрдХ-рдХреЗрд╡рд▓ рд╕реНрдХреИрди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред

(рдЕрдЧрд▓реА рдмрд╛рд░ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдПрдХ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ-рдХреЗрд╡рд▓ рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдмрд╣реБрдд рдХрдо рд╣реА рд╣реЛрдЧрд╛ред)

рдПрдХ рд╕рдмрдХ рд╕реАрдЦрд╛ рдЧрдпрд╛: рдпрджрд┐ рдЗрдВрдбреЗрдХреНрд╕-рдХреЗрд╡рд▓ рд╕реНрдХреИрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рддреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╡реИрдХреНрдпреВрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдм рдЪрд▓реЛ рдлрд┐рд░ рд╕реЗ рдСрдЯреЛрд╡реИрдХреНрдореВрдо рдХреЛ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ 31 рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, рдЬреЛ рдХрд┐ рдПрдХ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред

 => ALTER TABLE autovac SET (autovacuum_enabled = off); => UPDATE autovac SET s = 'B' WHERE id <= 31; => SELECT * FROM need_vacuum WHERE tablename = 'public.autovac'; 
  tablename | dead_tup | max_dead_tup | last_autovacuum ----------------+----------+--------------+----------------- public.autovac | 31 | 30 | (1 row) 

рдЕрдм рд╡реИрдХреНрдпреВрдо рдЯреНрд░рд┐рдЧрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИред рдЪрд▓рд┐рдП рдСрдЯреЛрд╡реИрд╕рдореИрди рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рд╡рд┐рд░рд╛рдо рдХреЗ рдмрд╛рдж рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рдЧрдИ рд╣реИ:

 => ALTER TABLE autovac SET (autovacuum_enabled = on); => SELECT * FROM need_vacuum WHERE tablename = 'public.autovac'; 
  tablename | dead_tup | max_dead_tup | last_autovacuum ----------------+----------+--------------+------------------------------- public.autovac | 0 | 30 | 2019-05-21 11:59:52.554571+03 (1 row) 

рд▓реЛрдб рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ


VACUUM рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреЗрдЬ рджреНрд╡рд╛рд░рд╛ рдкреЗрдЬ рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХрд╛рдлреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╡реИрдХреНрдпреВрдо рдХреЗ рд▓рд┐рдП рдХреБрдЪрд▓рдирд╛


рд╡реИрдХреНрдпреВрдо рддреАрд╡реНрд░рддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЗрд╕рдХрд╛ рдкреНрд░рднрд╛рд╡, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рдо рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд░рддреА рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рд▓рд┐рдорд┐рдЯ рдХрд╛рд░реНрдп рдХреА рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд░реЗрдЧреА рдФрд░ рдлрд┐рд░ рдпрд╣ рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рдбреЗрд▓реНрд▓реЗ рдПрдордПрд╕ рдХреЗ рд▓рд┐рдП рд╕реЛ рдЬрд╛рдПрдЧреАред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рд▓рд┐рдорд┐рдЯ = 200 рд╣реИрдВ рдФрд░ рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рдбреЗрд▓ = 0. рдЕрдВрддрд┐рдо рд╢реВрдиреНрдп рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорддрд▓рдм рд╣реИ рдХрд┐ VACUUM рдирд╣реАрдВ рд╕реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рд▓рд┐рдорд┐рдЯ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рдмрд┐рд▓реНрдХреБрд▓ рднреА рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдкреАрдЫреЗ рддрд░реНрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдкреНрд░рд╢рд╛рд╕рдХ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ VACUUM рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рд╣реЛ рд╕рдХреЗ рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд░рдЦрддрд╛ рд╣реИред

рдлрд┐рд░ рднреА, рдЕрдЧрд░ рд╣рдо рд╕реЛрдиреЗ рдХрд╛ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рд▓рд┐рдорд┐рдЯ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдмрдлрд░ рдмрдлрд░ рдореЗрдВ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреА рд▓рд╛рдЧрдд рд╕реЗ рдмрдирд╛ рд╣реЛрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реИ:

  • рдпрджрд┐ рдкреГрд╖реНрда рдмрдлрд░ рдХреИрд╢ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рдкреЗрдЬ_рд╣рд╛рдЗрдЯ = 1ред
  • рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛, рддреЛ рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рдкреЗрдЬ_рдорд┐рд╕ = 10ред
  • рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдФрд░ рдПрдХ рдЧрдВрджреЗ рдкреГрд╖реНрда рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдмрдлрд░ рдХреИрд╢, рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рдкреЗрдЬ_рдбрд░реНрдЯреА = 20 рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рдкрдбрд╝рд╛ ред

рдЕрд░реНрдерд╛рддреН, рд╡реИрдХреНрдпреВрдо_рдХреЙрд╕реНрдЯ_рд▓рд┐рдорд┐рдЯ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде , 200 рдХреИрд╢ рдкреЗрдЬ рдпрд╛ 20 рдбрд┐рд╕реНрдХ рдкреЗрдЬ рдпрд╛ рдмреЗрджрдЦрд▓реА рд╡рд╛рд▓реЗ 10 рдкреЗрдЬ рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпреЗ рдЖрдВрдХрдбрд╝реЗ рдмрд╣реБрдд рдЕрд╕реНрдерд╛рдпреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдЪрдпрди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

рдСрдЯреЛрд╡реИрд╕реНрдХреНрдпреВрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ


рд╡реИрдХреНрдпреВрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд▓реЛрдб рдереНрд░реЛрдЯрд▓рд┐рдВрдЧ рд╡реИрдХреБрдо рдХреЗ рд▓рд┐рдП рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИред рд▓реЗрдХрд┐рди рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддреАрд╡реНрд░рддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ VACUUM рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХреЗ рдЕрдкрдиреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ: рдСрдЯреЛрд╡реИрдХреНрдпреВрдо_рд╡реИрдХреБрдо_рдХреЛрд╕реНрдЯ_рд▓рд┐рдорд┐рдЯ рдФрд░ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо_рд╡реЗрдХреБрдорди_рдХреЛрд╕реНрдЯ_рд╕реЗрд▓ ред рдпрджрд┐ рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ -1 рдХрд╛ рдорд╛рди рд╣реИ, рддреЛ рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рд▓рд┐рдорд┐рдЯ рдФрд░ / рдпрд╛ рд╡реИрдХреНрдпреВрдо_рдХреЛрд╕реНрдЯ_рдбреЗрд▓ рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ autovacuum_vacuum_cost_limit = -1 ( рдЕрд░реНрдерд╛рдд , рд╡реИрдХреНрдпреВрдо_cost_limit = 200 рдХрд╛ рдорд╛рди рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдФрд░ autovacuum_vacuum_cost_delay - 20 msред рдЖрдзреБрдирд┐рдХ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░, рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреАрдорд╛ рд╣реЛрдЧрд╛ред

рд╕рдВрд╕реНрдХрд░рдг 12 рдореЗрдВ, рдСрдЯреЛрд╡реИрдХреНрдпреВрдо_рд╡реИрдХреБрдо_рдХреЛрд╕реНрдЯ_рдбреЗрд▓ рдХрд╛ рдореВрд▓реНрдп 2 рдПрдордПрд╕ рддрдХ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рдкрд╣рд▓реЗ рд╕рдиреНрдирд┐рдХрдЯрди рдХреЗ рд▓рд┐рдП рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛ рд╕рднреА рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЬрдм рдПрдХ рд╕рд╛рде рд╢реНрд░рдорд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╕рдордЧреНрд░ рднрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рднреА рдорддрд▓рдм рд╣реИ рдХрд┐ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо_рд╡реИрдХреБрдо_рдХреЛрд╕реНрдЯ_рд▓рд┐рдорд┐рдЯ рдХреЛ рдмрдврд╝рд╛рдПрдВ ред

рд╕реНрдореГрддрд┐ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ


рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╣рдордиреЗ рджреЗрдЦрд╛ рдерд╛ рдХрд┐ рдХреИрд╕реЗ VACUUM рдиреЗ tid s рдХреЛ рд╡реИрдХреНрдпреВрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЬрд╝ рдореЗрдиреНрдЯреЗрдиреЗрдВрд╕_рд╡рд░реНрдХ_рдо рдХреА рд░реИрдо рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред

рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрдИ рдпреБрдЧрдкрдд рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдпрджрд┐ рдСрдЯреЛрд╡реИрдХреБрдо_рдореИрдХреНрд╕_рд╡рд░реНрдХрд░реНрд╕ рдПрдХ рдмрдбрд╝реЗ рдореВрд▓реНрдп рдкрд░ рд╕реЗрдЯ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рд╕рднреА рдореЗрдореЛрд░реА рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдПрдХ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреА рд╕реАрдорд╛ рдХреЛ рдСрдЯреЛрдХреИрд╕рдо_рд╡рд░реНрдХ_рдордо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди -1 рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, VACUUM рдиреНрдпреВрдирддрдо рд╕реНрдореГрддрд┐ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЗрдВрдбреЗрдХреНрд╕ рдЯреЗрдмрд▓ рдкрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЕрдиреБрд░рдХреНрд╖рдг_рд╡рд░реНрдХ_рдо рдХреА рдПрдХ рдЫреЛрдЯреА рд╡реИрд▓реНрдпреВ рдмрд╛рд░-рдмрд╛рд░ рдЗрдВрдбреЗрдХреНрд╕ рд╕реНрдХреИрди рдХрд░ рд╕рдХрддреА рд╣реИред рдСрдЯреЛрд╡реИрдХреНрдпреБрдо рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕рдЪ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, autovacuum_work_mem рдХрд╛ рдиреНрдпреВрдирддрдо рдорд╛рди рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреЛрдИ рджреЛрд╣рд░рд╛рдпрд╛ рд╕реНрдХреИрди рди рд╣реЛред

рд╣рдордиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ VACUUM рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, VERBOSE рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреЛ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдпрд╛ pg_stat_progress_vacuum рджреГрд╢реНрдп (рдЬреЛ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рддрд╛ рд╣реИ)ред рдЗрд╕рд▓рд┐рдП, рдСрдЯреЛрд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рд╕рд╛рдзрди log_autovacuum_min_duration рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рд╕рд░реНрд╡рд░ рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (-1 рдкрд░ рд╕реЗрдЯ)ред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ (0 рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде, рд╕рднреА рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рд░рди рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрдЧреА) рдФрд░ рдЖрдВрдХрдбрд╝реЗ рджреЗрдЦреЗрдВред

рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдЬрд╛рдирдХрд╛рд░реА рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

 => ALTER SYSTEM SET log_autovacuum_min_duration = 0; => SELECT pg_reload_conf(); 
  pg_reload_conf ---------------- t (1 row) 

 => UPDATE autovac SET s = 'C' WHERE id <= 31; 

 student$ tail -n 7 /var/log/postgresql/postgresql-11-main.log 
 2019-05-21 11:59:55.675 MSK [9737] LOG: automatic vacuum of table "test.public.autovac": index scans: 0 pages: 0 removed, 18 remain, 0 skipped due to pins, 0 skipped frozen tuples: 31 removed, 1000 remain, 0 are dead but not yet removable, oldest xmin: 4040 buffer usage: 78 hits, 0 misses, 0 dirtied avg read rate: 0.000 MB/s, avg write rate: 0.000 MB/s system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s 2019-05-21 11:59:55.676 MSK [9737] LOG: automatic analyze of table "test.public.autovac" system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.00 s 

рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдХреНрд╕рд░ рдореЗрдореЛрд░реА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрдо рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдХреНрдпреВрдо рдЯреНрд░рд┐рдЧрд░ рдХреЗ рд▓рд┐рдП рд╕реАрдорд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рд╡реИрдХреНрдпреВрдорд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдЙрдЪрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИ рдмрдврд╝рд╛рдиреЗ рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдСрдЯреЛрд╡реИрдХреНрдпреВрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рдХрдореА рд╣реИ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдПред

Source: https://habr.com/ru/post/hi486104/


All Articles