
рдПрдХ DBMS рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдПрдХ рд▓рдЧрд╛рддрд╛рд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╡рд╛рд▓рд╛ рднрд╡рд┐рд╖реНрдп рд╣реИред DBMSs рдмреЗрд╣рддрд░ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реНрд╡рдпрдВ рдЙрддреНрдкрд╛рджрдХрддрд╛, рдХреЛрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдореЗрдореЛрд░реА рдмрдврд╝рд╛рддреЗ рд╣реИрдВ - Achilles рдХрдЫреБрдП рдХреЗ рд╕рд╛рде рдкрдХрдбрд╝ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдирд╣реАрдВред рдбреАрдмреАрдПрдордПрд╕ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдЬреЛрд░реЛрдВ рдкрд░ рд╣реИред
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬрд╝ рдкреНрд░реЛрдлреЗрд╢рдирд▓ рдХреЛ рди рдХреЗрд╡рд▓ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдмрд▓реНрдХрд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ: рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рдереАред рдФрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
NUMA рд╕рд┐рд╕реНрдЯрдо рдкрд░ PostgreSQL рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдПрдХ рд╣реА рдорджрд░рдмреЛрд░реНрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рдХрдИ рдбреЗрдЯрд╛ рдмрд╕реЗрдВ рд╣реИрдВред рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди
рдпрд╣рд╛рдБ рдФрд░
рдпрд╣рд╛рдБ рдкрдврд╝реЗ рдЬрд╛ рд╕рдХрддреЗ
рд╣реИрдВ ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХ рдФрд░ рд╡рд░реНрдЧ рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рдХрдИ рдорджрд░рдмреЛрд░реНрдб рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╡рд┐рдирд┐рдордп рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЗрдВрдЯрд░рдХрдиреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдУрдПрд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЙрди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдПрдХ рдПрдХрд▓ рдорд╢реАрди рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдФрд░ рдпрджреНрдпрдкрд┐ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдРрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ NUMA рдХреЗ рд▓рд┐рдП рднреА рдЬрд┐рдореНрдореЗрджрд╛рд░ рдард╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡реЗ рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдХрд░реАрдм рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреЛрдб рдХреА рд╕реНрдерд╛рдиреАрдп рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдФрд░ рдкрдбрд╝реЛрд╕реА рдиреЛрдб рдХреА рдореЗрдореЛрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред PostgreSQL рд╕рдореБрджрд╛рдп рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрдорд╛рддреНрд░ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдЙрджрд╛рд╣рд░рдг рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реНрд░реЛрдд рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд╣реАрдВ рд╣реИред
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЕрдкрдиреА рдФрд░ рджреВрд░рд╕реНрде рдореЗрдореЛрд░реА рдХрд╛ рдПрдХреНрд╕реЗрд╕ рд╕рдордп рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рддреБрд▓рдиреАрдп рд╣реИред рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рд╣рдо рдХрдИ рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рддреЗрдЬ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдкрд░ рджрд╛рдВрд╡ рдЦреБрдж рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЗ рдХрд╛рд░рдг рдиреЛрдб (рдиреЛрдб) рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд "рд╕рд╕реНрддрд╛" рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╕реНрдерд┐рдд рд╣реИред рджрд┐рд▓рдЪрд╕реНрдк рдбреЗрдЯрд╛ рдмрд╕ рдкрд░ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рднреЗрдЬрдиреЗ рд╕реЗред рдЗрд╕рд▓рд┐рдП, рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрдИ рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╕рд┐рд╕реНрдЯрдо, рдХреНрд▓рд╕реНрдЯрд░ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдорд▓реНрдЯреА-рдиреЛрдб рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдареЗрда рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд╕рд╛рдЭрд╛-рдореЗрдореЛрд░реА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЕрдЧрд░ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд╕рдВрдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдЕрдкрдирд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░рддреА рд╣реИрдВ, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рднреА рдмрд╣реБрдд рдХреБрд╢рд▓ рд╣реЛрдЧреАред рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдорд▓реНрдЯреА-рдиреЛрдб рд╕рд░реНрд╡рд░ рдЦрд░реАрджрд╛ рдерд╛, рдФрд░ рд╣рдореЗрдВ рдЙрд╕ рдкрд░ PostgreSQL рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдерд╛ред
рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛рдПрдВ рдЧрдВрднреАрд░ рдереАрдВ: рд╕рдмрд╕реЗ рд╕рд░рд▓ рд▓реЗрдЦрди рдЕрдиреБрд░реЛрдз (рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдХрдИ рдлрд╝реАрд▓реНрдб рдорд╛рди рдмрджрд▓реЗрдВ) рдХрдИ рдорд┐рдирдЯ рд╕реЗ рдПрдХ рдШрдВрдЯреЗ рдХреА рдЕрд╡рдзрд┐ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЧрдП рдереЗред рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдкреБрд╖реНрдЯрд┐ рдХреА рдЧрдИ рдереА, рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдиреЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХреЛрд░ рдХреА рд╡рдЬрд╣ рд╕реЗ рдФрд░ рдареАрдХ рдЗрд╕реА рддрд░рд╣, рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд╡рд┐рдирд┐рдордп рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдХрдЯреНрдЯрд░рдкрдВрдереА рд╕рдорд╛рдирддрд╛ рдХреА рд╡рдЬрд╣ рд╕реЗ рдЕрдкрдиреЗ рд╕рднреА рдорд╣рд┐рдорд╛ рдореЗрдВ рдЦреБрдж рдХреЛ рдкреНрд░рдХрдЯ рдХрд┐рдпрд╛ред
рдЗрд╕рд▓рд┐рдП, рд▓реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЧрд░ рджреЛрд╣рд░реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
- рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ: рдХреНрдпрд╛ рдХрд░реЗрдВ рдЕрдЧрд░ рдорд▓реНрдЯреА-рдиреЛрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдпрд╛рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдХреИрд╕реЗ рдирд┐рджрд╛рди рдХрд░реЗрдВ, рдХрд╣рд╛рдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред
- рдмрддрд╛рдПрдВ рдХрд┐ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕реАрдХреНрдпреВрдмреА рдбреАрдмреАрдПрдордПрд╕ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рд╕рдВрдЧрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд┐рдирдореЗрдВ рддрд╛рд▓реЗ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдмрджрд▓рд╛рд╡ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрдпреВрдПрд▓ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рдФрд░ рдбреАрдмреА
рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 2 рд╕реЙрдХреЗрдЯ рдХреЗ рд╕рд╛рде 8 рдмреНрд▓реЗрдб рд╢рд╛рдорд┐рд▓ рдереЗред рдХреБрд▓ рдореЗрдВ, 300 рд╕реЗ рдЕрдзрд┐рдХ рдХреЛрд░ (рдЙрдЪреНрдЪ рд░рдХреНрддрдЪрд╛рдк рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред рдПрдХ рддреЗрдЬ рдЯрд╛рдпрд░ (рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдирд┐рд░реНрдорд╛рддрд╛ рддрдХрдиреАрдХ) рдмреНрд▓реЗрдб рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди DBMS рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИред
рд▓реЛрдб рднреА рдмрдбрд╝рд╛ рд╣реИред 1 рд╕реЗ рдЕрдзрд┐рдХ рдЯреЗрд░рд╛рдмрд╛рдЗрдЯ рдбреЗрдЯрд╛ред рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ 3000 рд▓реЗрдирджреЗрдиред 1000 рд╕реЗ рдЕрдзрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдкреНрд░рддрд┐ рдШрдВрдЯрд╛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЬреЛ рдкрд╣рд▓реА рдЪреАрдЬ рдХреА, рд╡рд╣ рджреЗрд░реА рдХреЗ рдХрд╛рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рд┐рдЦрдирд╛ рдерд╛ред рдЬреИрд╕реЗ рд╣реА рдЕрд╕рдВрдЧрдд рд╡рд┐рд▓рдВрдм рд╢реБрд░реВ рд╣реБрдЖ, рдкрд░реАрдХреНрд╖рдг рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ
tmpfs
рдкрд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд▓рдЧреЗред рддрд╕реНрд╡реАрд░ рдирд╣реАрдВ рдмрджрд▓реА рд╣реИред рдбрд┐рд╕реНрдХ рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред
рдирд┐рджрд╛рди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛: рджреГрд╢реНрдп
рдЪреВрдВрдХрд┐ рд╕рдорд╛рди рд╡рд╕реНрддреБрдУрдВ рдкрд░ "рджрд╕реНрддрдХ" рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЙрдЪреНрдЪ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХреЗ рдХрд╛рд░рдг рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рддрд╛рд▓реЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред PostgreSQL рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп
pg.catalog.pg_locks
рдФрд░
pg_stat_activity
ред рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрд╕реНрдХрд░рдг 9.6 рдореЗрдВ, рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдХреНрдпрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИ (
рдЕрдорд┐рдд рдХрдкрд┐рд▓рд╛, рдЗрд▓реНрдбрд╕ рдХреБрд░реНрдмрд╛рдирд╛рд▓рд┐рд╡реА ) -
wait_event_type
ред рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓реНрдп
рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд
рд╣реИрдВ ред
рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдмрд╕ рдЧрд┐рдирддреА:
postgres=
рдпреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╣реИрдВред 200,000 рддрд╛рд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪреЗред
рдЙрд╕реА рд╕рдордп, рдЗрд╕ рддрд░рд╣ рдХреЗ рддрд╛рд▓реЗ рдХреЛ рдЕрд╢реБрдн рдЕрдиреБрд░реЛрдз рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
SELECT COUNT(mode), mode FROM pg_locks WHERE pid =580707 GROUP BY mode; count | mode тАФ
рдмрдлрд░ рдкрдврд╝рддреЗ рд╕рдордп, рдбреАрдмреАрдПрдордПрд╕
share
рд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд▓реЗрдЦрди -
exclusive
ред рдЕрд░реНрдерд╛рддреН, рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ 1% рд╕реЗ рдХрдо рдХреЗ рд▓рд┐рдП рд▓реЙрдХ рд▓реЙрдХ рд▓рд┐рдЦреЗрдВред
pg_locks
рджреГрд╢реНрдп рдореЗрдВ, рд▓реЙрдХ рдкреНрд░рдХрд╛рд░ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рдореИрдЪ рдкреНрд▓реЗрдЯ рд╣реИ:
AccessShareLock = LockTupleKeyShare RowShareLock = LockTupleShare ExclusiveLock = LockTupleNoKeyExclusive AccessExclusiveLock = LockTupleExclusive
Pg_locks рдХреНрд╡реЗрд░реА рд╕реЗ рд╕реЗрд▓реЗрдХреНрдЯ рдореЛрдб рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХреНрд░рд┐рдПрдЯ рдЗрдВрдбреЗрдХреНрд╕ (CONCURRENTLY рдХреЗ рдмрд┐рдирд╛)
buffer content lock
рд▓рд┐рдП 234 INSERTs рдФрд░ 390 INSERT рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдЧрд╛ред рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рддреНрд░реЛрдВ рдореЗрдВ INSERTs рдХреЛ "рдкрдврд╝рд╛рдирд╛" рд╣реИ рддрд╛рдХрд┐ рдмрдлрд╝рд░реНрд╕ рдореЗрдВ рдХрдо рдЕрдВрддрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдпрд╣ perf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ
рд╕рд╣реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдмрд╣реБрдд рд╕рд╛рд░реА рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рддреА рд╣реИред
record
рдореЛрдб рдореЗрдВ ... рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдИрд╡реЗрдВрдЯ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡реЗ
./perf_data
), рдФрд░
report
рдореЛрдб рдореЗрдВ рдпрд╣ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЪрд┐рдВрддрд╛ рдХреЗрд╡рд▓
postgres
рдпрд╛ рджрд┐рдП рдЧрдП
pid
:
$ perf record -u postgres $ perf record -p 76876 , $ perf report > ./my_results
рдирддреАрдЬрддрди, рд╣рдо рдХреБрдЫ рдРрд╕рд╛ рджреЗрдЦреЗрдВрдЧреЗ

рдирд┐рджрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ PostgreSQL рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдБ , рд╕рд╛рде рд╣реА рд╕рд╛рде
pg рд╡рд┐рдХреА рдореЗрдВ рднреА ред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдореЛрдб рдиреЗ рд╕рдВрдкреВрд░реНрдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА рджреА - рдкреВрд░реНрдг
perf top
, рдЬреЛ
top
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
perf top
рд╕рд╛рде
perf top
рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рдкреНрд░реЛрд╕реЗрд╕рд░ рдореБрдЦреНрдп
PinBuffer()
, рд╕рд╛рде рд╣реА
PinBuffer()
рдФрд░
LWLockAttemptLock().
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИ
LWLockAttemptLock().
ред
PinBuffer()
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдмрдлрд░ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ (рд░реИрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛ рдкреЗрдЬ рдХреЛ рдореИрдк рдХрд░рддрд╛ рд╣реИ), рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдмрдлрд╝рд░реНрд╕ рдХреЛ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬреЛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
LWLockAttemptLock()
-
LWLock
рдХрд╛ рдХреИрдкреНрдЪрд░ рдлрд╝рдВрдХреНрд╢рдиред
LWLock
shared
рдФрд░
exclusive
рджреЛ рд╕реНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рддрд╛рд▓рд╛ рд╣реИ,
LWLock
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛, рддрд╛рд▓реЗ рдХреЛ
shared memory
рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреАрдХреНрд╖рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдХрддрд╛рд░ рдореЗрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рд╣реИред
рдпреЗ рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЧрдВрднреАрд░рддрд╛ рд╕реЗ PostgreSQL 9.5 рдФрд░ 9.6 рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрдирдХреЗ рдЕрдВрджрд░ рдХреЗ рд╕реНрдкрд┐рдирд▓реЙрдХ рдХреЛ рдкрд░рдорд╛рдгреБ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЬреНрд╡рд╛рд▓рд╛ рд░реЗрдЦрд╛рдВрдХрди
рдпрд╣ рдЙрдирдХреЗ рдмрд┐рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ: рднрд▓реЗ рд╣реА рд╡реЗ рдмреЗрдХрд╛рд░ рдереЗ, рдлрд┐рд░ рднреА рдпрд╣ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рд▓рд╛рдпрдХ рд╣реЛрдЧрд╛ - рд╡реЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реБрдВрджрд░ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡реЗ рдЙрдкрдпреЛрдЧреА рд╣реИрдВред рдпрд╣рд╛рдБ
github
рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рд╕реЗ рдирд╣реАрдВ (рди рддреЛ рд╣рдо рдФрд░ рди рд╣реА рдЧреНрд░рд╛рд╣рдХ рдЕрднреА рддрдХ рд╡рд┐рд╡рд░рдг рдХреЗ рдкреНрд░рдХрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ)ред

рдпреЗ рдЦреВрдмрд╕реВрд░рдд рддрд╕реНрд╡реАрд░реЗрдВ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рддреА рд╣реИрдВ рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЪрдХреНрд░ рдХреНрдпрд╛ рд▓реЗрддреЗ рд╣реИрдВред рд╡рд╣реА
perf
рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди
flame graph
рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХрддреНрд░рд┐рдд рдХреЙрд▓ рд╕реНрдЯреИрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреЗрдбрд╝реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИред рдЖрдк рд▓реМ рдЧреНрд░рд╛рдл рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдВ , рдФрд░
рдпрд╣рд╛рдВ рдЖрдкрдХреЛ рд╡рд╣ рд╕рдм рдХреБрдЫ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдПред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реМ рдЧреНрд░рд╛рдлрд╝ рдкрд░
nestloop
рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рджрд┐рдЦрд╛рдИ рджреЗ
nestloop
рдереАред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдХрдИ рд╕рдорд╡рд░реНрддреА рдкрдврд╝рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЬреЛрдЗрди рдиреЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ
access share
рддрд╛рд▓реЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ред
perf
рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░рд┐рдд рдЖрдБрдХрдбрд╝реЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╣рд╛рдБ рдЬрд╛рддреА рд╣реИ рдФрд░ рдпрджреНрдпрдкрд┐ рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдордп рддрд╛рд▓реЛрдВ рдкрд░ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рд╣рдордиреЗ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрд╛рд▓реЗ рдХреА рдЗрддрдиреА рд▓рдВрдмреА рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ рдХреНрдпрд╛ рд╣реЛрддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд▓реЙрдХ рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ рдХрд╣рд╛рдБ рд╣реЛрддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕реАрдкреАрдпреВ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдкреНрд░рддреАрдХреНрд╖рд╛ред
рдЕрдкреЗрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╕реНрд╡рдпрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕рд┐рд╕реНрдЯрдо рджреГрд╢реНрдп
pg_stat_activity
рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
SELECT wait_event_type, wait_event, COUNT(*) FROM pg_stat_activity GROUP BY wait_event_type, wait_event;
рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐:
LWLockTranche | buffer_content | UPDATE ************* LWLockTranche | buffer_content | INSERT INTO ******** LWLockTranche | buffer_content | \r | | insert into B4_MUTEX | | values (nextval('hib | | returning ID Lock | relation | INSERT INTO B4_***** LWLockTranche | buffer_content | UPDATE ************* Lock | relation | INSERT INTO ******** LWLockTranche | buffer_mapping | INSERT INTO ******** LWLockTranche | buffer_content | \r
(рдпрд╣рд╛рдВ рддрд╛рд░рд╛рдВрдХрди рдХреЗрд╡рд▓ рдЕрдиреБрд░реЛрдз рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдкреНрд░рдХрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдорд╛рди
buffer_content
(рдмрдлрд╝рд░реНрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдирд╛) рдФрд░
buffer_mapping
(рд╣реИрд╢ рдкреНрд▓реЗрдЯ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛
shared_buffers
)ред
рдЬреАрдбреАрдмреА рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП
рд▓реЗрдХрд┐рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрддрдиреА рдЙрдореНрдореАрджреЗрдВ рдХреНрдпреЛрдВ рд╣реИрдВ? рдЙрдореНрдореАрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ
GDB
рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
GDB
рд╕рд╛рде рд╣рдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирдореВрдирд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ, рдЕрд░реНрдерд╛рддреНред рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░реИрдВрдбрдо рдХреЙрд▓ рд╕реНрдЯреИрдХреНрд╕ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЕрдВрджрд╛рдЬрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдЯреИрдХ рдХреА рд╕рдмрд╕реЗ рд▓рдВрдмреА рдЕрдкреЗрдХреНрд╖рд╛рдПрдБ рд╣реИрдВред
рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рдВрдХрд▓рди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╣рдо рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ "рдореИрдиреБрдЕрд▓" рд╕рдВрдЧреНрд░рд╣ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ,
gdb
рдХреЛ PostgreSQL рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛
pid
рдвреВрдВрдвреЗрдВ, рд╕реЗ рдХрд╣реЗрдВ
$ ps aux | grep postgres
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдкрд╛рдпрд╛:
postgres 2025 0.0 0.1 172428 1240 pts/17 S 23 0:00 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
рдФрд░ рдЕрдм рдбрд┐рдмрдЧрд░ рдореЗрдВ
pid
рдбрд╛рд▓реЗрдВ:
igor_le:~$gdb -p 2025
рдбреАрдмрдЧрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдмрд╛рд░, рд╣рдо
bt
[рдХрд┐,
backtrace
] рдпрд╛
where
рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдФрд░ рд╣рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕реА рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ:
(gdb) bt #0 0x00007fbb65d01cd0 in __write_nocancel () from /lib64/libc.so.6 #1 0x00000000007c92f4 in write_pipe_chunks ( data=0x110e6e8 "2018тАР06тАР01 15:35:38 MSK [524647]: [392тАР1] db=bp,user=bp,app=[unknown],client=192.168.70.163 (http://192.168.70.163) LOG: relation 23554 new block 493: 248.389503\n2018тАР06тАР01 15:35:38 MSK [524647]: [393тАР1] db=bp,user=bp,app=["..., len=409, dest=dest@entry=1) at elog.c:3123 #2 0x00000000007cc07b in send_message_to_server_log (edata=0xc6ee60 <errordata>) at elog.c:3024 #3 EmitErrorReport () at elog.c:1479
рд╕рднреА рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдХреЙрд▓ рд╕реНрдЯреИрдХреНрд╕ рд╕рд╣рд┐рдд рдПрдХрддреНрд░рд┐рдд рдЖрдВрдХрдбрд╝реЗ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╕рдордп рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдмрд╛рд░-рдмрд╛рд░ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐
relation extension lock
рдЕрдВрджрд░
buffer partition lock
3706 рд╕реЗрдХрдВрдб (рд▓рдЧрднрдЧ рдПрдХ рдШрдВрдЯреЗ) рддрдХ рд░рд╣рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдмрдлрд░ рдХреЗ рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдкрд░ рддрд╛рд▓реЗред рдкреНрд░рдмрдВрдзрдХ, рдЬреЛ рдкреБрд░рд╛рдиреЗ рдмрдлрд░ рдХреЛ рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛, рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдЕрдиреБрд░реВрдк рдПрдХ рдирдП рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
buffer content lock
рд▓реЙрдХ
buffer content lock
рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдереА, рдЬреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП
B-tree
рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдереАред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд░рд╛рдХреНрд╖рд╕реА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдордп рдХреЗ рд▓рд┐рдП рджреЛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЖрдП:
- рдХрд┐рд╕реА рдФрд░ рдиреЗ рдпрд╣
LWLock
рд▓рд┐рдпрд╛ рдФрд░ рдЕрдЯрдХ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдмрдлрд░ рд╡рд┐рднрд╛рдЬрди рд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред - рд╣рдореЗрдВ
LWLock
рдХреБрдЫ рд░реЛрдЧ рд╕рдВрдмрдВрдзреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдХрд┐рд╕реА рдиреЗ рднреА рддрд╛рд▓рд╛ рдирд╣реАрдВ рд▓рд┐рдпрд╛, рдЙрд╕рдХреА рдЙрдореНрдореАрдж рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓реАред
рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдкреИрдЪ рдФрд░ рдкреЗрдбрд╝ рдЙрдкрдЪрд╛рд░
рдПрдХ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдХреЗ, рд╣рдо рд╕рдВрднрд╡рддрдГ рддрд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдзрд╛рд░рд╛ рдХрд╛ рдирд┐рд░реНрд╡рд╣рди рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рд╡рд╣ рд╕рдорд░реНрдкрдг рдЬреИрд╕рд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬрд╝ рдкреНрд░реЛрдлреЗрд╢рдирд▓ рдХреЗ рдореБрдЦреНрдп рд╡рд╛рд╕реНрддреБрдХрд╛рд░ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА),
рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдХреЛрд░реЛрдЯрдХреЛрд╡ рдиреЗ рдкреИрдЪ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрджрд╛ рдХреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рддрд╕реНрд╡реАрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рддреИрдпрд╛рд░ рдЙрдкрдХрд░рдг рдХрд┐рддрдиреЗ рдЕрдЪреНрдЫреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдкреИрдЪ рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреЗред
рдПрдХ рдкреИрдЪ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ
relation extension
рдореЗрдВ рдмрд┐рддрд╛рдП рдЧрдП рд╕рдордп рдХреЗ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд▓реЙрдЧрд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ
RelationAddExtraBlocks()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐
RelationAddExtraBlocks().
рдЕрдВрджрд░ рдХреНрдпрд╛ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
RelationAddExtraBlocks().
рдФрд░ рдЙрд╕рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ, рдПрдХ рдФрд░ рдкреИрдЪ
pg_stat_activity
рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╣рдо рдЕрдм
relation extension
рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдЬрдм
relation
рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ
application_name
RelationAddExtraBlocks
рдмрди рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдм
gdb bt
рдФрд░
perf
рдЙрдкрдпреЛрдЧ рд╕реЗ рдЕрдзрд┐рдХрддрдо рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд┐рдХрд┐рддреНрд╕рд╛ (рдФрд░ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдирд╣реАрдВ) рдкреИрдЪ рджреЛ рд▓рд┐рдЦреЗ рдЧрдП рдереЗред рдкрд╣рд▓реЗ рдкреИрдЪ рдиреЗ
BтАРtree
рд▓реАрдл рд▓реЙрдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛: рдкрд╣рд▓реЗ, рдЬрдм рдбрд╛рд▓рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдкрддреНрддреА рдХреЛ
share
рд░реВрдк рдореЗрдВ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдпрд╣
exclusive
рд╣реЛ рдЧрдпрд╛ред рдЕрдм рд╡рд╣ рддреБрд░рдВрдд
exclusive
рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдпрд╣ рдкреИрдЪ
рдкрд╣рд▓реЗ рд╣реА PostgreSQL 12 рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ
рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рд╡рд░реНрд╖
рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдХреЛрд░реЛрдЯрдХреЛрд╡ рдХреЛ рдПрдХ
рдХрдорд┐рдЯрд░ рдХрд╛
рджрд░реНрдЬрд╛ рдорд┐рд▓рд╛ - рд░реВрд╕ рдореЗрдВ рджреВрд╕рд░рд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдХреНрд╕реЗрд▓ рдХрдорд┐рдЯрд░ рдФрд░ рдХрдВрдкрдиреА рдореЗрдВ рджреВрд╕рд░рд╛ред
рдореИрдкрд┐рдВрдЧ рд▓реЙрдХреНрд╕ рдкрд░ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
NUM_BUFFER_PARTITIONS
рдорд╛рди рднреА 128 рд╕реЗ рдмрдврд╝рд╛рдХрд░ 512 рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдмрдлрд░ рдореИрдиреЗрдЬрд░ рд╣реИрд╢ рдЯреЗрдмрд▓ рдХреЛ рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреБрдХрдбрд╝реЗ рдкрд░ рд▓реЛрдб рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рдкреИрдЪ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдмрдлрд╝рд░реНрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рддрд╛рд▓реЗ рдЪрд▓реЗ рдЧрдП рдереЗ, рд▓реЗрдХрд┐рди
NUM_BUFFER_PARTITIONS
рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рдмрд╛рд╡рдЬреВрдж,
buffer_mapping
рдмрдиреА рд╣реБрдИ рдереА, рдпрд╛рдиреА рд╣рдо рдЖрдкрдХреЛ рдмрдлрд░ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдЯреЗрдмрд▓ рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ
locks_count | active_session | buffer_content | buffer_mapping ----тАРтАРтАР--тАРтАРтАР+тАР------тАРтАРтАРтАРтАРтАРтАРтАРтАР+тАРтАРтАР------тАРтАРтАРтАРтАРтАРтАР+тАРтАР------тАРтАРтАР 12549 | 1218 | 0 | 15
рдФрд░ рд╡рд╣ рднреА рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред рдмреА - рдкреЗрдбрд╝ рдЕрдм рдПрдХ рдЕрдбрд╝рдЪрди рдирд╣реАрдВ рд╣реИред
heap-
рд╡рд┐рд╕реНрддрд╛рд░ рд╕рд╛рдордиреЗ рдЖрдпрд╛ред
рдЕрдВрддрд░рд╛рддреНрдорд╛ рдХрд╛ рдЙрдкрдЪрд╛рд░
рдЕрдЧрд▓рд╛, рд╕рд┐рдХрдВрджрд░ рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЖрдЧреЗ рд░рдЦрд╛:
buffer parittion lock
рд╕рдордп
buffer parittion lock
рдкрд░ рд╣рдо рдмрд╣реБрдд рд╕рдордп рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдПрдХ рд╣реА
buffer parittion lock
рдкрд░ рдХреБрдЫ рдмрд╣реБрдд рдорд╛рдВрдЧ рд╡рд╛рд▓рд╛ рдкреГрд╖реНрда рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ
BтАРtree
рдХреА рдЬрдбрд╝ред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд░реАрдбрд┐рдВрдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ
shared lock
рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдПрдХ рдирд┐рд░рдВрддрд░ рдкреНрд░рд╡рд╛рд╣ рд╣реИред
LWLock
рдкрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рд░реЗрдЦрд╛ "рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИред" рдЪреВрдВрдХрд┐
shared lock
рдХреЛ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдлрд┐рд░ рдпрджрд┐
shared lock
рдкрд╣рд▓реЗ рд╣реА рд▓реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдж рдореЗрдВ
shared lock
рдмрд┐рдирд╛ рдХрддрд╛рд░ рдХреЗ рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рддрд╛рд▓реЛрдВ рдХреА рдзрд╛рд░рд╛ рдкрд░реНрдпрд╛рдкреНрдд рддреАрд╡реНрд░рддрд╛ рдХреА рд╣реИ, рддрд╛рдХрд┐ рдЙрдирдХреЗ рдмреАрдЪ рдХреЛрдИ "рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ" рди рд╣реЛрдВ, рддреЛ рдПрдХ
exclusive lock
рдЗрдВрддрдЬрд╛рд░ рд▓рдЧрднрдЧ рдЕрдирдВрдд рддрдХ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рддрд╛рд▓реЗ рдХреЗ "рдХреЛрдорд▓рддрд╛ рд╕реЗ" рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдПрдХ рдкреИрдЪред рдпрд╣
shared locker
рдХреЗ рд╡рд┐рд╡реЗрдХ рдХреЛ рдЬрд╛рдЧреГрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрддрд╛рд░ рдореЗрдВ
hwlock
, рдЬрдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ
exclusive lock
(рджрд┐рд▓рдЪрд╕реНрдк рд░реВрдк рд╕реЗ, рднрд╛рд░реА рддрд╛рд▓реЗ -
hwlock
- рд╡рд┐рд╡реЗрдХ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ: рд╡реЗ рд╣рдореЗрд╢рд╛ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрддрд╛рд░ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ)
locks_count | active_session | buffer_content | buffer_mapping | reladdextra | inserts>30sec тАРтАРтАРтАРтАРтАР-тАРтАРтАРтАРтАР+тАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАР+тАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАР+тАРтАРтАРтАРтАРтАРтАРтАРтАРтАРтАР--тАР-тАР+тАРтАРтАРтАРтАРтАР-тАРтАРтАРтАРтАРтАР+тАРтАРтАРтАР------ 173985 | 1802 | 0 | 569 | 0 | 0
рд╕рдм рдареАрдХ рд╣реИ! рд▓рдВрдмреЗ
insert
рдирд╣реАрдВ
insert
ред рдпрджреНрдпрдкрд┐ рд╣реИрд╢ рдкреНрд▓реЗрдЯреЛрдВ рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдкрд░ рддрд╛рд▓реЗ рдмрдиреЗ рд░рд╣реЗред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдХрд░реЗрдВ, рдпреЗ рд╣рдорд╛рд░реЗ рдЫреЛрдЯреЗ рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдЯрд╛рдпрд░реЛрдВ рдХреЗ рдЧреБрдг рд╣реИрдВред
рдЗрд╕ рдкреИрдЪ рдХреЛ
рд╕рдореБрджрд╛рдп рдХреЛ рднреА
рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╕рдореБрджрд╛рдп рдореЗрдВ рдЗрди рдкреИрдЪ рдХрд╛ рднрд╛рдЧреНрдп рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдХреБрдЫ рднреА рдЙрдиреНрд╣реЗрдВ
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдкреНрд░реЛ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рднрд╛рд░реА рд▓реЛрдб рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдиреИрддрд┐рдХрддрд╛
рдЙрдЪреНрдЪ-рдиреИрддрд┐рдХ рд╣рд▓реНрдХреЗ
share
- рддрд╛рд▓реЗ -
share
рдХрддрд╛рд░ рдХреЛ рд▓рдВрдШрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХ рдиреЗ рдмрд╣реБ-рдиреЛрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рддрд┐ рдШрдВрдЯрд╛ рджреЗрд░реА рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИред
buffer manager
рд╣реИрд╢ рдЯреИрдЧ рдиреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ
share lock
рдлреНрд▓реЛ рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рдкреБрд░рд╛рдиреЗ рдмрдлрд╝рд░реНрд╕ рдХреЛ рджрдмрд╛рдиреЗ рдФрд░ рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдореМрдХрд╛ рдирд╣реАрдВ рдмрдЪрд╛ред рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдлрд░ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдХреЗрд╡рд▓ рдЗрд╕рдХрд╛ рдПрдХ рдкрд░рд┐рдгрд╛рдо рдереАред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ,
B-tree
рд░реВрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рде рдЕрдбрд╝рдЪрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред
PostgreSQL NUMA рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ рд╕реБрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреЛрд╕реНрдЯрдЧреНрд░реИрдЬ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдЕрдкрдирд╛рдирд╛ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдХрд╛рдо рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрдИ рд▓реЛрдЧреЛрдВ рдФрд░ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд╕рдордиреНрд╡рд┐рдд рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдФрд░ рд╕рдВрднрд╡рддрдГ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред рд▓реЗрдХрд┐рди рдЗрди рд╡рд╛рд╕реНрддреБ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдЕрдкреНрд░рд┐рдп рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рд╣рдореЗрдВ рдпрд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛: рдЬрд┐рди рдкреНрд░рдХрд╛рд░ рдХреЗ рднрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░рдг рджреЗрд░реА рд╣реБрдИ, рдЙрдирдХрд╛ рд╡рд░реНрдгрди рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рднреА рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рдВрдХрдЯ рдХреЗ рд╕рдВрдХреЗрдд рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрддреЗ рд░рд╣рддреЗ рд╣реИрдВред рдЗрд╕реА рддрд░рд╣ рдХреА рдкрд░реЗрд╢рд╛рдиреА рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджреА - рдХрдо рдХреЛрд░ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдмрд╕ рдкрд░рд┐рдгрд╛рдо рдЗрддрдиреЗ рд░рд╛рдХреНрд╖рд╕реА рдирд╣реАрдВ рдереЗ, рдФрд░ рд▓рдХреНрд╖рдгреЛрдВ рдХрд╛ рдЗрд▓рд╛рдЬ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдФрд░ рдЕрдиреНрдп рдкреИрдЪ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рдПрдХ рдФрд░ рджрд╡рд╛ рджрд┐рдЦрд╛рдИ рджреА рд╣реИ - рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЬрдм PostgreSQL рд╕реНрдерд╛рдиреАрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╣рд╛рдИ-рд╕реНрдкреАрдб рдмрд╕ рд╕реНрдерд╛рдиреАрдп рдореЗрдореЛрд░реА рдХреЗ рдПрдХреНрд╕реЗрд╕ рдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИред рдЗрд╕ рдХрдард┐рди, рдЕрдХреНрд╕рд░ рдЬрд░реВрд░реА, рд▓реЗрдХрд┐рди рджрд┐рд▓рдЪрд╕реНрдк рдХреЗ рдХрд╛рд░рдг рдХрд╛рд░реНрдп рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рди рдХреЗрд╡рд▓ рдирд┐рд░реНрдгрд╛рдпрдХ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдкреВрд░реЗ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред
