рдПрдХ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╣реЗрдбрд▓рд╛рдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ ...
Straceред рд╢рд╛рдпрдж рдХреЛрдИ рдРрд╕рд╛ рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдзрд╛рд░рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирддрд╛ред рдпрджрд┐ рдХрд┐рд╕реА рдиреЗ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ, рддреЛ рд╕реНрдЯреНрд░реЗрд╕ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЕрдиреБрд╡рд╛рдж рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рдХрд░реНрдиреЗрд▓) рдХреЗ рдмреАрдЪ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрди рдХреЙрд▓реНрд╕ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдХреЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдкрд░ рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИред рдЗрди рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдмреЗрд╣рддрд░ рд╕рдордЭ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛ рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЙрд╕реЗ ptrace рдХрд╣рддреЗ рд╣реИрдВред рд╕реНрдЯреНрд░реЗрд╕ ptrace рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ, рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╡рд┐рд╡рд░рдг
рд╡рд┐рдХреА рдпрд╛
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЖрджрдореА рдкрд░ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдареАрдХ рд╣реИ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдо рд▓рд┐рдирдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдкрдиреЗ рдПрдирд╛рд▓реЙрдЧ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдореЗрд░реЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рд╕реНрдЯреНрд░реЗрд╕ рдПрдХ рдЕрдВрддрд┐рдо рдЙрдкрд╛рдп рдХреА рддрд░рд╣ рд╣реИред рдЬрдм рд╕рднреА рд▓реЙрдЧ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦреЗ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рдбреАрдмрдЧ рдФрд░ рд╡рд░реНрдмреЛрдЬрд╝ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЪрд╛рд▓реВ рд╣реИрдВ, рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рдореБрдЭреЗ
рд╡рд┐рд╕реНрддреГрдд рдкреИрд░реЛрдВ рд╕реЗ рд╕реНрдЯреНрд░реЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИ ред рдПрдХ рдмрд╛рдд рд╣реИ рд▓реЗрдХрд┐рди, рд╕реНрдЯреНрд░реЗрд╕ рдПрдХ рдРрд╕рд╛ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдЪрд╛рдВрджреА рдХреА рдЧреЛрд▓реА рдирд╣реАрдВ рд╣реИ, рдЬреЛ рддреБрд░рдВрдд рд╕рдм рдХреБрдЫ рджрд┐рдЦрд╛рдПрдЧрд╛ рдФрд░ рдмрддрд╛рдПрдЧрд╛ред рд╕реНрдЯреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣ рдЬреНрдЮрд╛рди рдЬрд┐рддрдирд╛ рд╡реНрдпрд╛рдкрдХ рдФрд░ рдЧрд╣рд░рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЙрддрдиреА рд╣реА рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрддреА рд╣реИред
рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░рд┐рдЪрдпрд╛рддреНрдордХ рд▓реЗрдЦреЛрдВ рд╕реЗ рднрд░рд╛ рд╣реИ рдЬреЛ рдЪрд▓ рд░рд╣реЗ рд╕реНрдЯреНрд░реЗрд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕реНрдЯреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред
рдкрд╣рд▓рд╛ рдорд╛рдорд▓рд╛ред KVM рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП
рд╕рдХреНрд╖рдо рд╕реЗрдЯрд┐рдВрдЧ
рдкрд░ vhost = рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ
рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрддреА рд╣реИред
рдЗрд╕рд▓рд┐рдП рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдХрд▓реНрдк рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рд╕реНрдЯреНрд░реАрдореНрд╕ рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╡реГрджреНрдзрд┐ рди рд╣реЛ:
# qemu-system-x86_64 -m 4096 -netdev рдЯреИрдк, ifname = tap90, id = tap90, vhost = on-service virtio-net-pci, netdev = tap90, mac = 08: 77: D1: 00: 90: 90
qemu-system-x86_64: -netdev рдЯреИрдк, ifname = tap90, id = tap90, vhost = on:
vhost-net рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдЖрд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрд╛qemu-system-x86_64: -netdev рдЯреИрдк, ifname = tap90, id = tap90, vhost = on:
рдбрд┐рд╡рд╛рдЗрд╕ 'рдЯреИрдк' рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрд╛рддреЛ, рд╣рдо рд╕реНрдЯреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рдХреЗрд╡рд▓ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ,
/ dev / vhost-net рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЦреЛрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп
рдЦреБрд▓реЗ () рдХреЙрд▓ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореБрджреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рдПрдХ рд╕рд░рд▓ рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рд╛рде рджреЗрдЦреЗ рдЧрдП рдереЗред
рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ
echo 3> / proc / sys / vm / drop_caches рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреЗрдЬ рдХреИрд╢ рдФрд░ рдмрдлрд╝рд░реНрд╕ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдирд╛ рдкрдбрд╝рд╛
, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╢реБрд░реВ рд╣реБрдИред рдлрд┐рд░ рдХреБрдЫ рдорд╢реАрдиреЛрдВ рдХреЛ рдЕрдиреНрдп рд╣реЛрд╕реНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдФрд░ рдХрд╣рд╛рдиреА рд╣реИред
рджреВрд╕рд░рд╛ рдорд╛рдорд▓рд╛ред рдФрд░ рдлрд┐рд░ рд╕реЗ, рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдФрд░ рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣рд╛рдВ рдлрд┐рд░ рд╕реЗ рд╕реНрдореГрддрд┐ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдЖрд╡рдВрдЯрд┐рдд рд╕реНрдореГрддрд┐ рдХреА рдПрдХ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ,
-m 10240 ред рдпрджрд┐ рдЖрдк рдХрдо рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдорд╢реАрди рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдкрд░ рдореБрдлреНрдд рдореЗрдореЛрд░реА 10GB рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдФрд░ рдлрд┐рд░ рд╕реЗ, рдзрд╛рд░рд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдФрд░ рдХреБрдЫ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕реНрдЯреНрд░реЗрд╕ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВред
рдФрд░ рдлрд┐рд░ рд╕реЗ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдЮрд╛рдд рдореЗрдореЛрд░реА рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
рдЕрд╕реБрд░рдХреНрд╖рд┐рдд () рдореЗрдВ ред рд╣рдо
рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕ рд╕реАрдорд╛ рддрдХ sysctl рдХреБрдВрдЬреА
vm.overcommit_memory рдорд╛рди 2 рдХреЗ рд╕рд╛рде рд╣реИред 0 рдореЗрдВ рдмрджрд▓реЗрдВ рдФрд░ рдорд╢реАрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред
рддреАрд╕рд░рд╛ рдорд╛рдорд▓рд╛ред рдпрд╣рд╛рдВ рдХреБрдЫ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рд╕рдордп рд╕реЗ рдЪрд▓ рд░рд╣реА рд╣реИ, рдлрд┐рд░ рдЕрдЪрд╛рдирдХ рд╕реАрдкреАрдпреВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЦрд░реНрдЪ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рд▓реЛрдб рдФрд╕рдд 0.5 рд╕реЗ 1.5 рддрдХ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ (рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ 2 рд╡рд░реНрдЪреБрдЕрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИ)ред рд▓реЗрдЯреЗрдВрд╕реА рдмрдврд╝ рдЬрд╛рддреА рд╣реИ, рд╕рд░реНрд╡рд┐рд╕ рд░рд┐рд╕реНрдкреЙрдиреНрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЬрдм рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рд╕реНрдерд┐рддрд┐ рджреЛрд╣рд░рд╛рддреА рд╣реИред рд╢реБрд░реБрдЖрдд рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж рдХрд╛ рд╕рдордп рд╣рдореЗрд╢рд╛ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЙрд╕ рд╕рдордп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрдЯреНрд░реЗрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИред рдФрд░ рдлрд┐рд░ рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ:
ppoll([{fd=10, events=POLLIN|POLLPRI}], 1, {0, 90000000}, NULL, 8) = 1 ([{fd=10, revents=POLLIN}], left {0, 90000000}) rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 epoll_wait(10, {{EPOLLIN, {u32=57661216, u64=57661216}}}, 4096, 0) = 1 rt_sigprocmask(SIG_SETMASK, ~[SEGV VTALRM RTMIN RT_1], NULL, 8) = 0 accept(15, 0x7ffff8f46af0, [16]) = -1 EMFILE (Too many open files)
рд╕реНрд╡реАрдХрд╛рд░ () рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ "EMFILE (рдмрд╣реБрдд рд╕рд╛рд░реА рдЦреБрд▓реА рд╣реБрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ)" рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛
/ рд╕реАрдорд╛ / рдкреАрдЖрдИрдбреА тАЛтАЛ/ рд╕реАрдорд╛ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░
lsof рдХреЗ рд╕рд╛рде рдЦреБрд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред
рдЦреБрд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реАрдорд╛ 1024 рд╣реИ, рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЦреЛрд▓реА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд╛ рд╕реЗ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ рд╣реИред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдкрд╣рд▓реЗ
рд╣рдо рдкреНрд░реАрд▓рд┐рдЯ рдХреА рдорджрдж рд╕реЗ
рд░рдирд┐рдВрдЧ рдкреНрд░реЛрд╕реЗрд╕ рдХреА рд▓рд┐рдорд┐рдЯ рд╡реИрд▓реНрдпреВ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╣рдо /etc/security/limits.conf рдПрдбрд┐рдЯ рдХреЗ рдЬрд░рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд┐рдорд┐рдЯ рддрдп рдХрд░рддреЗ рд╣реИрдВред
рдЪреМрдерд╛ рдорд╛рдорд▓рд╛ ред рдпрд╣рд╛рдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдБ рд╣рдо
pgBouncer рдХреЛ
рджреЗрдЦрддреЗ рд╣реИрдВ - PostgreSQL рдЧреБрдЪреНрдЫрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди pgBouncer рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдЗрд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, pgBouncer рдкреВрд▓ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрдиреЗрдХреНрд╢рди рдкреВрд▓ рдореЗрдВ рд▓реМрдЯрддрд╛ рд╣реИ рдФрд░ рддрдм рддрдХ рд╕реНрдерд┐рдд рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЕрдЧрд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреЛ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧ рдореЗрдВ рдФрд░ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рд▓реЙрдЧ рдореЗрдВ, рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреЗ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓реЗрдирджреЗрди рдбреЗрдЯрд╛ рдХреЛ рдЕрджреНрдпрддрди / рд╣рдЯрд╛ / рд╕рдореНрдорд┐рд▓рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЗрди-рджреЗрди READ ONLY рдореЛрдб рдореЗрдВ рд╣реИред
рдЦреЛрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдХрдИ рдкрд░рд┐рдХрд▓реНрдкрдирд╛рдУрдВ рдХреЛ рд╕рд╛рдордиреЗ рд░рдЦрд╛ рдЧрдпрд╛, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдмрд╛рдж рдореЗрдВ рд╕рд╣реА рд╣реЛ рдЧрдИред рдХреНрд▓рд╛рдЗрдВрдЯ, рдЦреАрдВрдЪрдиреЗ рд╡рд╛рд▓реЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реБрдП, READ ONLY рдореЛрдб рдореЗрдВ рд╕рддреНрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдЪрд┐рдкрдХ рдЬрд╛рддреА рд╣реИ рдФрд░ рддрдм рддрдХ рдЙрд╕рдХреЗ рд╕рд╛рде рд░рд╣рддреА рд╣реИ рдЬрдм рддрдХ pgBouncer рдЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЬрдмрд░рди рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк pgBouncer рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ server_reset_query = DISCARD ALL рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░, рд╕рднреА рд╕рддреНрд░-рдЖрдзрд╛рд░рд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреАред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд┐рд╕реА рдиреЗ рдХреЗрд╡рд▓ READ рд╕рддреНрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА, рдЗрд╕реЗ рдмрдЪрд╛ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдлрд┐рд░ рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдЕрдиреНрдп рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛ рдЧрдпрд╛ред рджреЛрд╖реА рдХреА рддрд▓рд╛рд╢ рдХреЗ рджреМрд░рд╛рди Vobschem DISCARD ALL рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдерд╛ред рдЦреЛрдЬ рд▓рдВрдмреА рдереА рдФрд░ рд╕рдВрджреЗрд╣ рдЖрд╡реЗрджрди рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреЛрдб рдореЗрдВ рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рдХреА ...
рд╣рдореЗрдВ рд╕реНрдЯреНрд░реЗрд╕ рдорд┐рд▓рддрд╛ рд╣реИ, pgBouncer рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред
рд╣рдо рдХреЗрд╡рд▓ READ рдХреАрд╡рд░реНрдб рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВред рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рдЕрд▓рдЧ рд▓реЙрдЧ рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЦреЛрдЬ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рддреЛ рдХреБрдЫ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:
recvfrom(10, "Q\0\0\0:SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY;\0", 2048, 0, NULL, NULL) = 59 sendto(11, "Q\0\0\0:SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY;\0", 59, 0, NULL, 0) = 59 sendto(10, "C\0\0\0\10SET\0Z\0\0\0\5T", 15, 0, NULL, 0) = 15
рд╣рдо рдХреБрдЫ рдФрд░ рд╕рдордп рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ (рд╣рдо рдПрдХ рд╣реА рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЕрдиреНрдп рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ), рд╕реНрдЯреНрд░реЗрд╕ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдЕрдкрдирд╛ рд▓реЙрдЧ рдЦреЛрд▓реЗрдВред
рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕рдВрдЦреНрдпрд╛рдПрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдирдВрдмрд░ 10 (
рд░рд┐рдХрд╡рд░рдлреНрд░реЙрдо (10 ) рдкрд░ рдзреНрдпрд╛рди
рджреЗрдВ ред рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдкрдХрдбрд╝реЗ рдЧрдП рд╕рдВрджреЗрд╢ рд╕реЗ рдкрд╣рд▓реЗ рдЗрди рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдХрд┐рд╕рдиреЗ рдЦреЛрд▓рд╛, рдереЛрдбрд╝рд╛ рд╕рд╛
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рдФрд░ рдпрд╣ рд╣реИред рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓
рд╕реНрд╡реАрдХрд╛рд░ () (
рд╕реНрд╡реАрдХрд╛рд░ ...) = 10 ) 10 рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдЦреЛрд▓рддрд╛ рд╣реИред
accept(8, {sa_family=AF_INET, sin_port=htons(58952), sin_addr=inet_addr("192.168.10.1")}, [16]) = 10 getpeername(10, {sa_family=AF_INET, sin_port=htons(58952), sin_addr=inet_addr("192.168.10.1")}, [16]) = 0 getsockname(10, {sa_family=AF_INET, sin_port=htons(6432), sin_addr=inet_addr("192.168.10.10")}, [16]) = 0
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рддрдЪреАрдд рдореЗрдВ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкрддрд╛ 192.168.10.1 рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рд╢реИрдХреНрд╖рд┐рдХ рдЪрд░реНрдЪрд╛ рдФрд░ рд╕рдВрдЧрдардирд╛рддреНрдордХ рдЙрдкрд╛рдпреЛрдВ рдХреЗ рдмрд╛рдж, рд╕рдорд╕реНрдпрд╛ рдЕрдм рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реБрдИред
рдпреЗ рдмрд╛рддреЗрдВ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред