MVCC-7ред рдСрдЯреЛ рдХреА рд╕рдлрд╛рдИ

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

рддрдм рд╣рдордиреЗ рдЗрди-рдкреЗрдЬ рдХреНрд▓реАрдирд┐рдВрдЧ (рдФрд░ HOT рдЕрдкрдбреЗрдЯ), рдирд┐рдпрдорд┐рдд рд╕рдлрд╛рдИ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ , рд▓реЗрдХрд┐рди рдЖрдЬ рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдлрд╛рдИ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред

рдСрдЯреЛ рд╕рдлрд╛рдИ (рдСрдЯреЛрд╡реИрдХреНрдпреВрдо)


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

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

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

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

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдлрд╛рдИ рдХреЗрд╡рд▓ рдмрд╣реБрдд рд╣реА рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рдлрд╛рдИ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

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

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

рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ рдФрд░ рд╕реВрдЪреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:

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

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

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

рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░ рдЪрд░реНрдЪрд╛ рд╣реБрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдкреИрдЪ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрдм "рдХреНрдпрд╛ рд╕рдлрд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ" рдФрд░ "рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ" рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред

рдХрд┐рд╕ рдЯреЗрдмрд▓ рдХреЛ рд╕рдлрд╛рдИ рдХреА рдЬрд░реВрд░рдд рд╣реИ


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

  • autovacuum_vacuum_threshold рдирд┐рд░рдкреЗрдХреНрд╖ рдорд╛рди (рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ,
  • autovacuum_vacuum_scale_factor рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрдкрд╛рдд рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЕрдВрддрд┐рдо рд╕реВрддреНрд░ рд╣реИ: рдЕрдЧрд░ pg_stat_all_tables.n_dead_tup> = autovacuum_vacuum_threshold + autovacuum_vacuum_scale_factale * pg_class.reltupes рдкрд░ рд╕рдлрд╛рдИ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

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

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

  • рдСрдЯреЛрд╡реИрдХреНрдпреВрдо_рд╡реИрдХреНрдпреБрдо_рдереНрд░реЗрд╢реЛрд▓реНрдб рдФрд░ рдЯреЛрд╕реНрдЯ.рдУрдЯреЛрд╡реИрдХреНрдпреБрд▓рдо_рд╡рд╛рд╕реНрдХреВрдо_рдереНрд░реЙрд▓реНрдб ,
  • 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( --    ,    (SELECT option_value FROM pg_options_to_table(reloptions) WHERE option_name = CASE --  toast-    WHEN relkind = 't' THEN 'toast.' ELSE '' END || param ), --      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> = autovacuum_analyze_threshold + autovacuum_analyze_scalyze_scalyze_scalyzред

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

  • рдСрдЯреЛрд╡реИрдХреБрдо_рдпрд╛рдирд╛рд▓реАрдЬрд╝_рдереНрд░реЗрд╢реЛрд▓реНрдб ,
  • 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'; --     => 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. рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдЗрдП рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:

 => 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 рд▓рд╛рдЗрдиреЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ:

 => 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) 

рд▓реЛрдб рд╡рд┐рдирд┐рдпрдорди


рд╕рдлрд╛рдИ рдЕрдиреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреГрд╖реНрда рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреГрд╖реНрда рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд▓реЛрдб рдмрдирд╛рддреА рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓ рд╕рдХрддреА рд╣реИред

рдирд┐рдпрдорд┐рдд рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорди


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

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

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

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

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

рдСрдЯреЛ рдХреА рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорди


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

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

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

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

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


рдкрд┐рдЫрд▓реА рдмрд╛рд░, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреИрд╕реЗ рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░ рдореЗрдВрдЯреЗрдиреЗрдВрд╕_рд╡рд░реНрдХ_рдо рдХреА рд░реИрдо рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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

рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╕рдлрд╛рдИ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП, рдЖрдк 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/hi452762/


All Articles