рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рдореБрдЦ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред Sberbank рдХреЗ рдбреЗрдЯрд╛ рд▓реЛрдбрд┐рдВрдЧ рд╡рд┐рднрд╛рдЧ рдореЗрдВ, рд╣рдо рд▓рдЧрднрдЧ рд╕рднреА рд▓реЗрди-рджреЗрди рдЕрдкрдиреЗ Hadoop-рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕реВрдЪрдирд╛ рдХреЗ рдмрд╣реБрдд рдмрдбрд╝реЗ рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рддрд░реАрдХреЗ рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдЕрдм рд╣рдо рдЖрдкрдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдордиреЗ RegionServer HBase рдФрд░ HDFS рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХреИрд╕реЗ рдкреИрдЪ рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ рд░реАрдб рдСрдкрд░реЗрд╢рди рдХреА рдЧрддрд┐ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡реГрджреНрдзрд┐ рд╣реБрдИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рд░ рддрдХ рдкрд╣реБрдВрдЪреЗрдВ, рдЙрди рд╕реАрдорд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрджрд┐ рдЖрдк рдПрдЪрдбреАрдбреА рдкрд░ рдмреИрдареЗ рд╣реИрдВ рддреЛ рджрд░рдХрд┐рдирд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
HDD рдФрд░ рддреЗрдЬрд╝ рд░реИрдВрдбрдо рдПрдХреНрд╕реЗрд╕ рд░реАрдбрд┐рдВрдЧ рдЕрд╕рдВрдЧрдд рдХреНрдпреЛрдВ рд╣реИрдВ?
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, HBase рдФрд░ рдХрдИ рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕, рдХрдИ рджрд╕рд┐рдпреЛрдВ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд▓рдЧрднрдЧ 64 KB рд╣реЛрддрд╛ рд╣реИред рдЕрдм рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ 100 рдмрд╛рдЗрдЯреНрд╕ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╣рдо HBase рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдбреЗрдЯрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред рдЪреВрдБрдХрд┐ HFiles рдореЗрдВ рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдХрд╛рд░ 64 KB рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ 640 рдЧреБрдирд╛ рдЕрдзрд┐рдХ (рд╕рд┐рд░реНрдлрд╝ рдПрдХ рдорд┐рдирдЯ!) рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЪреВрдВрдХрд┐ рдЕрдиреБрд░реЛрдз HDFS рдФрд░ рдЙрд╕рдХреЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреИрд╢рд┐рдВрдЧ рддрдВрддреНрд░ рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░реЗрдЧрд╛ рд╢реЙрд░реНрдЯ рд╕рд░реНрдХрд┐рдЯ рдХреИрд╢ (рдЬреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рд╕реАрдзреА рдкрд╣реБрдБрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ), рдЗрд╕рд╕реЗ рдбрд┐рд╕реНрдХ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 1 рдПрдордмреА рдкрдврд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ dfs.client.read.shortcircuit.buffer.size рдФрд░ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрд╕ рдорд╛рди рдХреЛ рдХрдо рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 126 KB рддрдХред
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдо рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╣рдо рдЬрд╛рд╡рд╛ рдПрдкреАрдЖрдИ, рдЬреИрд╕реЗ FileChannel.read, рдХреЗ рдЬрд╝рд░рд┐рдП рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ "рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ" 2 рдЧреБрдирд╛ рдЬрд╝реНрдпрд╛рджрд╛, рдпрд╛рдиреА рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 256 KB рдкрдврд╝рддрд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ FADV_RANDOM рдлрд╝реНрд▓реИрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗред
рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ 100 рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣реБрдб рдХреЗ рдиреАрдЪреЗ 2600 рдЧреБрдирд╛ рдЬрд╝реНрдпрд╛рджрд╛ рдмрд╛рдЗрдЯреНрд╕ рдкрдврд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╛рдзрд╛рди рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЖрдЗрдП рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдХрд╛рд░ рдПрдХ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рддрдХ рдХрдо рдХрд░реЗрдВ, рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдорд╣рд╛рди рдЬреНрдЮрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ - рддреНрд╡рд░рдгред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХ рдХрд╛ рдЖрдХрд╛рд░ 2 рдЧреБрдирд╛ рдХрдо рдХрд░рдиреЗ рд╕реЗ, рд╣рдо рд╕рдордп рдХреА рдкреНрд░рддрд┐ рдЗрдХрд╛рдИ рдкрдврд╝реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рднреА 2 рдЧреБрдирд╛ рдХрдо рдХрд░ рджреЗрддреЗ рд╣реИрдВред
FADV_RANDOM рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрдЪреНрдЪ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдФрд░ 128 KB рдХреЗ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХрддрдо рдХреБрдЫ рджрд╕рд┐рдпреЛрдВ рдкреНрд░рддрд┐рд╢рдд рд╣реИ:

рдпрд╣ рдкрд░реАрдХреНрд╖рдг 100 рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЖрдХрд╛рд░ 1 рдЬреАрдмреА рдерд╛ рдФрд░ рдЬреЛ 10 рдПрдЪрдбреАрдбреА рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрдерд┐рдд рдереАрдВред
рдЖрдЗрдП рдЧрдгрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ рдЧрддрд┐ рдкрд░ рд╣рдо рд╕рд┐рджреНрдзрд╛рдВрддрддрдГ рдХреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо 10 рдбрд┐рд╕реНрдХ рд╕реЗ 280 рдПрдордмреА/рд╕реЗрдХрдВрдб рдХреА рдЧрддрд┐ рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рдпрд╛рдиреА 3 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ 100 рд▓рд╛рдЦ рдЧреБрдирд╛ред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ, рд╣рдореЗрдВ рдЬрд┐рддрдирд╛ рдбреЗрдЯрд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣ рдкрдврд╝реЗ рдЧрдП рдбреЗрдЯрд╛ рд╕реЗ 2600 рдЧреБрдирд╛ рдХрдо рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдо 3 рд▓рд╛рдЦ рдХреЛ 2600 рд╕реЗ рднрд╛рдЧ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рддреЗ рд╣реИрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 1100 рд░рд┐рдХреЙрд░реНрдб.
рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ рдирд╛? рдпрд╣реА рддреЛ рд╕реНрд╡рднрд╛рд╡ рд╣реИред рд░реИрдВрдбрдо рдПрдХреНрд╕реЗрд╕ HDD рдкрд░ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪ - рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред рдпрд╣ рд░реИрдВрдбрдо рдПрдХреНрд╕реЗрд╕ рдХреА рднреМрддрд┐рдХ рд╕реАрдорд╛ рд╣реИ рдФрд░ рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХреЛрдИ рднреА DB рдЗрд╕рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рддреЛ рдлрд┐рд░ рдпреЗ рдмреЗрд╕ рдЗрддрдиреА рдЬрд╝реНрдпрд╛рджрд╛ рдЧрддрд┐ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ? рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдореЗрдВ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ:

рдпрд╣рд╛рдБ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╢реБрд░реБрдЖрддреА рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдЧрддрд┐ рд▓рдЧрднрдЧ рдПрдХ рд╣рдЬрд╝рд╛рд░ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдмрд╛рдж рдореЗрдВ, рдЕрдиреБрд░реЛрдзрд┐рдд рдорд╛рддреНрд░рд╛ рд╕реЗ рдХрд╣реАрдВ рдЬрд╝реНрдпрд╛рджрд╛ рдкрдврд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг, рдбреЗрдЯрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рд▓рд┐рдирдХреНрд╕) рдХреЗ рдмрдлрд╝/рдХреИрд╢ рдореЗрдВ рдЬрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЧрддрд┐ рдмрдврд╝рдХрд░ 60 рд╣рдЬрд╝рд╛рд░ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдЧреЗ рд╣рдо рдХреЗрд╡рд▓ рдЙрди рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рддреНрд╡рд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдУрдПрд╕ рдХреИрд╢ рдореЗрдВ рд╣реИрдВ рдпрд╛ рддреБрд▓рдиреАрдп рдкрд╣реБрдВрдЪ рдЧрддрд┐ рд╡рд╛рд▓реЗ рднрдВрдбрд╛рд░рдг рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдПрд╕рдПрд╕рдбреА/рдПрдирд╡реАрдПрдордИред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо 4 рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдПрдХ рд╕реНрдЯреИрдВрдб рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рд╢реБрд▓реНрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рд╕реАрдкреАрдпреВ: Xeon E5-2680 v4 @ 2.40GHz 64 рдереНрд░реЗрдбред
рдореЗрдореЛрд░реА: 730 рдЬреАрдмреА.
рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг: 1.8.0_111
рдФрд░ рдпрд╣рд╛рдБ рдореБрдЦреНрдп рдмрд╛рдд рд╣реИ - рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдк рдХрд┐рд╕реА рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╣реИрдВ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ HBase рдХреИрд╢ рдореЗрдВ рд╕рдорд╛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЖрдк рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрдлрд╝/рдХреИрд╢ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝ рд╣реА рдирд╣реАрдВ рдкрд╛рдПрдБрдЧреЗред рдХреНрдпреЛрдВрдХрд┐ HBase рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 40% рдореЗрдореЛрд░реА BlockCache рдирд╛рдордХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ ConcurrentHashMap рд╣реИ, рдЬрд╣рд╛рдБ рдХреБрдВрдЬреА рдлрд╝рд╛рдЗрд▓ рдирд╛рдо + рдмреНрд▓реЙрдХ рдСрдлрд╝рд╕реЗрдЯ рд╣реИ, рдФрд░ рдорд╛рди рдЗрд╕ рдСрдлрд╝рд╕реЗрдЯ рдкрд░ рдореМрдЬреВрдж рдбреЗрдЯрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдЬрдм рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ , рдпрд╛рдиреА рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рджрд╕ рд▓рд╛рдЦ рдЕрдиреБрд░реЛрдзред рд▓реЗрдХрд┐рди рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдо рд╕рд┐рд░реНрдлрд╝ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реИрдХрдбрд╝реЛрдВ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдореЗрдореЛрд░реА рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрди рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдХрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЪреАрдЬрд╝реЗрдВ рднреА рдЪрд▓ рд░рд╣реА рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ RS рдкрд░ BlockCache рдХрд╛ рдЖрдХрд╛рд░ рд▓рдЧрднрдЧ 12 GB рд╣реИред рд╣рдордиреЗ рдПрдХ рдиреЛрдб рдкрд░ рджреЛ RS рддреИрдирд╛рдд рдХрд┐рдП рд╣реИрдВ, рдпрд╛рдиреА рд╕рднреА рдиреЛрдбреНрд╕ рдкрд░ BlockCache рдХреЗ рд▓рд┐рдП 96 GB рдЖрд╡рдВрдЯрд┐рдд рд╣реИрдВред рдФрд░ рдбреЗрдЯрд╛ рдХрдИ рдЧреБрдирд╛ рдмрдбрд╝рд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ 4 рдЯреЗрдмрд▓ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 130 рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ 800 MB рдЖрдХрд╛рд░ рдХреА рд╣реИрдВ, рд╕рдВрдкреАрдбрд╝рд┐рдд FAST_DIFF, рдпрд╛рдиреА рдХреБрд▓ 410 GB (рдпрд╣ рд╢реБрджреНрдз рдбреЗрдЯрд╛ рд╣реИ, рдпрд╛рдиреА рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛рд░рдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ рдмрд┐рдирд╛)ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдмреНрд▓реЙрдХрдХреИрд╢ рдХреБрд▓ рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдХреЗрд╡рд▓ рд▓рдЧрднрдЧ 23% рд╣реИ рдФрд░ рдпрд╣ рдмрд┐рдЧрдбреЗрдЯрд╛ рдХрд╣реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рдлрд╝реА рдХрд░реАрдм рд╣реИред рдФрд░ рдпрд╣реАрдВ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдЖрддреА рд╣реИ - рдХреНрдпреЛрдВрдХрд┐ рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХреИрд╢ рд╣рд┐рдЯ рдЬрд┐рддрдиреЗ рдХрдо рд╣реЛрдВрдЧреЗ, рдкреНрд░рджрд░реНрд╢рди рдЙрддрдирд╛ рд╣реА рдЦрд░рд╛рдм рд╣реЛрдЧрд╛ред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЕрдЧрд░ рдХреЛрдИ рдЪреВрдХ рд╣реЛ рдЬрд╛рдП, рддреЛ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рдпрд╛рдиреА рд╕рд┐рд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рд╕реЗ рдмрдЪрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛, рддреЛ рдЖрдЗрдП рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рдкрд╣рд▓реВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рдХреИрд╢ рдХреЗ рдЕрдВрджрд░ рдореМрдЬреВрдж рдбреЗрдЯрд╛ рдХрд╛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?
рдЖрдЗрдП рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХреИрд╢ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реА рд╕рдорд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╢ рд╕реЗ рддреАрди рдЧреБрдирд╛ рдЬрд╝реНрдпрд╛рджрд╛ рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдХреНрдпрд╛ рд╣реЛрдЧрд╛, рд╣рдореЗрдВ рдпрд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
1. рдмреНрд▓реЙрдХ 1 рдХреЛ рдХреИрд╢ рдореЗрдВ рд░рдЦреЗрдВ
2. рдХреИрд╢ рд╕реЗ рдмреНрд▓реЙрдХ 1 рдирд┐рдХрд╛рд▓реЗрдВ
3. рдмреНрд▓реЙрдХ 2 рдХреЛ рдХреИрд╢ рдореЗрдВ рд░рдЦреЗрдВ
4. рдХреИрд╢ рд╕реЗ рдмреНрд▓реЙрдХ 2 рдирд┐рдХрд╛рд▓реЗрдВ
5. рдмреНрд▓реЙрдХ 3 рдХреЛ рдХреИрд╢ рдореЗрдВ рд░рдЦреЗрдВ
5 рдХрд╛рдо рд╣реЛ рдЧрдП! рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛, рджрд░рдЕрд╕рд▓, рд╣рдо HBase рдХреЛ рдвреЗрд░ рд╕рд╛рд░рд╛ рдмреЗрдХрд╛рд░ рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдордЬрдмреВрд░ рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ OS рдХреИрд╢ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ, рдЙрд╕реЗ BlockCache рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдирдпрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЖ рдЬрд╛рдиреЗ рдкрд░ рдЙрд╕реЗ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдлреЗрдВрдХ рджреЗред рдкреЛрд╕реНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдПрдиреАрдореЗрд╢рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ - рдЧрд╛рд░рдмреЗрдЬ рдХрд▓реЗрдХреНрдЯрд░ рдХрд╛ рдкреИрдорд╛рдирд╛ рдмрд┐рдЧрдбрд╝ рдЧрдпрд╛ рд╣реИ, рдорд╛рд╣реМрд▓ рдЧрд░реНрдо рд╣реЛ рд░рд╣рд╛ рд╣реИ, рджреВрд░ рдФрд░ рдЧрд░реНрдо рд╕реНрд╡реАрдбрди рдореЗрдВ рдЫреЛрдЯреА рдЧреНрд░реЗрдЯрд╛ рдкрд░реЗрд╢рд╛рди рд╣реИред рдФрд░ рд╣рдо рдЖрдИрдЯреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЛ рдмрдЪреНрдЪреЛрдВ рдХрд╛ рдЙрджрд╛рд╕ рд╣реЛрдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрддрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реЛрдЪрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рд╕рднреА рдмреНрд▓реЙрдХреНрд╕ рдХреЛ рдХреИрд╢ рди рдХрд░реЗрдВ, рдмрд▓реНрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рддрд┐рд╢рдд рдХреЛ рд╣реА рдХреИрд╢ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдХреИрд╢ рдУрд╡рд░рдлреНрд▓реЛ рди рд╣реЛ? рдЖрдЗрдП, BlockCache рдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреЛрдб рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝рдХрд░ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ:
public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf, boolean inMemory) {
if (cacheDataBlockPercent != 100 && buf.getBlockType().isData()) {
if (cacheKey.getOffset() % 100 >= cacheDataBlockPercent) {
return;
}
}
...
рдпрд╣рд╛рдБ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ: рдСрдлрд╕реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмреНрд▓реЙрдХ рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЕрдВрддрд┐рдо рдЕрдВрдХ 00 рд╕реЗ 99 рддрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ рдЬреЛ рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХ рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рдЖрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП cacheDataBlockPercent = 20 рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:

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

рд╕реАрдкреАрдпреВ рдЙрдкрдпреЛрдЧ рдмрдврд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо:

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ BlockCache рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдмреНрд▓реЙрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢, рд▓рдЧрднрдЧ 95%, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рд╣реЛрддреЗ рд╣реИрдВред рд╢реЗрд╖ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдмреНрд▓реВрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ LEAF_INDEX рдФрд░ рдпрд╣ рдбреЗрдЯрд╛ рдЫреЛрдЯрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рддрдХ рд╕реАрдзреЗ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, HBase рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрд╕реЗ рдЖрдЧреЗ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдЬрд┐рд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рдЙрд╕рдХреА рд░реБрдЪрд┐ рд╣реИ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИред
рдЗрд╕реАрд▓рд┐рдП рдХреЛрдб рдореЗрдВ рд╣рдо рдХрдВрдбреАрд╢рди рдЪреЗрдХ рджреЗрдЦрддреЗ рд╣реИрдВ buf.getBlockType().isData() рдФрд░ рдЗрд╕ рдореЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдХреИрд╢ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред
рдЕрдм рд▓реЛрдб рдмрдврд╝рд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рде рд╣реА рдлрд╝реАрдЪрд░ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рднреА рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╣рдордиреЗ рдХрдЯрдСрдл рдкреНрд░рддрд┐рд╢рдд = 20 рд░рдЦрд╛ рдерд╛ рдФрд░ BlockCache рдереЛрдбрд╝рд╛ рдХрдо рд▓реЛрдб рд╣реБрдЖ рдерд╛ред рдЕрдм рдЗрд╕реЗ 23% рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ 100 рдорд┐рдирдЯ рдореЗрдВ 5 рдереНрд░реЗрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╕рдВрддреГрдкреНрддрд┐ рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣реЛрддреА рд╣реИ:

рдпрд╣рд╛рдБ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рд▓рдЧрднрдЧ рддреБрд░рдВрдд рд╣реА рд▓рдЧрднрдЧ 100 рд╣рдЬрд╝рд╛рд░ рдЕрдиреБрд░реЛрдз рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреА рдЕрдзрд┐рдХрддрдо рд╕реАрдорд╛ рдХреЛ рдЫреВ рд▓реЗрддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдкреИрдЪ 300 рд╣рдЬрд╝рд╛рд░ рддрдХ рддреНрд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдЧреЗ рддреНрд╡рд░рдг рдЗрддрдирд╛ "рдореБрдлрд╝реНрдд" рдирд╣реАрдВ рд╣реИ, CPU рдЙрдкрдпреЛрдЧ рднреА рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдХреЛрдИ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдХрд┐рддрдиреЗ рдкреНрд░рддрд┐рд╢рдд рдмреНрд▓реЙрдХ рдХреИрд╢ рдХрд░рдиреЗ рд╣реИрдВ, рдпрд╣ рд▓реЛрдб рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд░реАрдб рдСрдкрд░реЗрд╢рди рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдорд╛рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ:
hbase.lru.cache.heavy.eviction.count.limit тАФ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди (рдпрд╛рдиреА рдмреНрд▓реЙрдХ рдЫреЛрдбрд╝рдирд╛) рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреИрд╢ рд╕реЗ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд┐рддрдиреА рдмрд╛рд░ рд╢реБрд░реВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ MAX_INT = 2147483647 рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЗрд╕ рдорд╛рди рдХреЗ рд╕рд╛рде рдХрднреА рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░реЗрдЧреАред рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд╖реНрдХрд╛рд╕рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣рд░ 5 - 10 рд╕реЗрдХрдВрдб рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ (рдпрд╣ рд▓реЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ) рдФрд░ 2147483647 * 10 / 60 / 60 / 24 / 365 = 680 рд╡рд░реНрд╖ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ 0 рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧреА рд▓реЛрдб рднреА рд╣реИред рдЕрдЧрд░ рд╣рдорд╛рд░рд╛ рд▓реЛрдб рдРрд╕рд╛ рд╣реИ рдХрд┐ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд░реАрдбрд┐рдВрдЧ (рдорд╛рди рд▓реАрдЬрд┐рдП, рджрд┐рди рдХреЗ рджреМрд░рд╛рди) рдФрд░ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд░реАрдбрд┐рдВрдЧ (рд░рд╛рдд рдореЗрдВ) рд▓рдЧрд╛рддрд╛рд░ рдмрджрд▓рддреА рд░рд╣рддреА рд╣реИрдВ, рддреЛ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреЗрд╡рд▓ рддрднреА рд╕рдХреНрд╖рдо рд╣реЛ рдЬрдм рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд░реАрдбрд┐рдВрдЧ рдСрдкрд░реЗрд╢рди рдЪрд▓ рд░рд╣реЗ рд╣реЛрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд░реАрдбрд┐рдВрдЧ рдЖрдорддреМрд░ рдкрд░ рд▓рдЧрднрдЧ 1 рдорд┐рдирдЯ рддрдХ рдЪрд▓рддреА рд╣реИред рд╣рдореЗрдВ рдмреНрд▓реЙрдХреНрд╕ рдХреЛ рдмрд╛рд╣рд░ рдлреЗрдВрдХрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдХреИрд╢ рдХреЛ рдкреБрд░рд╛рдирд╛ рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 10 рдХреЗ рдмрд░рд╛рдмрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рддрднреА рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ рдЬрдм рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдХреНрд░рд┐рдп рд░реАрдбрд┐рдВрдЧ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧреА, рдпрд╛рдиреА 100 рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рджред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд░реАрдбрд┐рдВрдЧ рд╣реИ, рддреЛ рд╕рднреА рдмреНрд▓реЙрдХ рдХреИрд╢ рдореЗрдВ рдЖ рдЬрд╛рдПрдБрдЧреЗ рдФрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗ (рд╕рд┐рд╡рд╛рдп рдЙрдирдХреЗ рдЬреЛ рдорд╛рдирдХ рдПрд▓реНрдЧреЛрд░рд┐рдердо рджреНрд╡рд╛рд░рд╛ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рдПрдБрдЧреЗ)ред рдФрд░ рдЬрдм рд╣рдо рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд░реАрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╕рдХреНрд╖рдо рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рд╣рдорд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рди рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред
hbase.lru.cache.heavy.eviction.mb.size.limit тАФ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо 10 рд╕реЗрдХрдВрдб рдореЗрдВ рдХрд┐рддрдиреЗ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХреИрд╢ рдореЗрдВ рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдФрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ)ред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЗрд╕ рдорд╛рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧреАред рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ: рдпрджрд┐ рд╣рдо рдХреИрд╢ рдореЗрдВ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдирд┐рдХрд╛рд▓рдиреЗ рд╣реЛрдВрдЧреЗ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдКрдкрд░ рджреЗрдЦрд╛, рдпрд╣ рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдкрдХреЛ рдЗрд╕реЗ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдмреНрд▓реЙрдХ рд╕реНрдХрд┐рдкрд┐рдВрдЧ рдореЛрдб рд╕реЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рд░реНрд╡рд░ (рд▓рдЧрднрдЧ 20-40 рднреМрддрд┐рдХ рдХреЛрд░) рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ 300-400 рдПрдордмреА рд╕реЗрдЯ рдХрд░рдирд╛ рдЗрд╖реНрдЯрддрдо рд╣реИред рдордзреНрдпрдо рд╡рд░реНрдЧ (~10 рдХреЛрд░) рдХреЗ рд▓рд┐рдП, 200-300 рдПрдордмреАред рдХрдордЬреЛрд░ рд╕рд┐рд╕реНрдЯрдо (2-5 рдХреЛрд░) рдХреЗ рд▓рд┐рдП, 50-100 рдПрдордмреА рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдРрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдордиреЗ hbase.lru.cache.heavy.eviction.mb.size.limit = 500 рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдХреБрдЫ рд▓реЛрдб (рд░реАрдб) рд╣реИ рдФрд░ рдлрд┐рд░ рд╣рд░ ~ 10 рд╕реЗрдХрдВрдб рдореЗрдВ рд╣рдо рд╕реВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рддрдиреЗ рдмрд╛рдЗрдЯреНрд╕ рдирд┐рдХрд╛рд▓реЗ рдЧрдП:
рдУрд╡рд░рд╣реЗрдб = рдореБрдХреНрдд рдмрд╛рдЗрдЯреНрд╕ рдпреЛрдЧ (рдПрдордмреА) * 100 / рд╕реАрдорд╛ (рдПрдордмреА) - 100;
рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 2000 рдПрдордмреА рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдУрд╡рд░рд╣реЗрдб рдмрд░рд╛рдмрд░ рд╣реИ:
2000 * 100 / 500 - 100 = 300%
рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреБрдЫ рджрд╕ рдкреНрд░рддрд┐рд╢рдд рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреИрд╢ рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдкреНрд░рддрд┐рд╢рдд рдХреЛ рдХрдо рдХрд░ рджреЗрдЧреА, рдЬрд┐рд╕рд╕реЗ рдСрдЯреЛ-рдЯреНрдпреВрдирд┐рдВрдЧ рддрдВрддреНрд░ рд▓рд╛рдЧреВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рд▓реЛрдб рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдорд╛рди рд▓реЗрдВ рдХрд┐ рдХреЗрд╡рд▓ 200 рдПрдордмреА рд╣реА рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдУрд╡рд░рд╣реЗрдб рдЛрдгрд╛рддреНрдордХ рд╣реЛ рдЧрдпрд╛ рд╣реИ (рддрдерд╛рдХрдерд┐рдд рдУрд╡рд░рд╢реВрдЯрд┐рдВрдЧ):
200 * 100 / 500 - 100 = -60%
рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреИрд╢ рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рддрдм рддрдХ рдмрдврд╝рд╛рддреА рд░рд╣реЗрдЧреА рдЬрдм рддрдХ рдУрд╡рд░рд╣реЗрдб рд╕рдХрд╛рд░рд╛рддреНрдордХ рди рд╣реЛ рдЬрд╛рдПред
рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдкрд░ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред 0% рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИред 30 - 100% рдХреЗ рдЖрд╕рдкрд╛рд╕ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рдпрд╣ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдЙрдЫрд╛рд▓ рдХреЗ рджреМрд░рд╛рди рдЕрдиреБрдХреВрд▓рди рдореЛрдб рд╕реЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
hbase.lru.cache.heavy.eviction.overhead.coefficient тАФ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдЕрдЧрд░ рд╣рдореЗрдВ рдкрдХреНрдХрд╛ рдкрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рд░реАрдбрд┐рдВрдЧ рдЬрд╝реНрдпрд╛рджрд╛рддрд░ рд▓рдВрдмреА рд╣реЛрддреА рд╣реИ рдФрд░ рд╣рдо рдЗрдВрддрдЬрд╝рд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ, рддреЛ рд╣рдо рдЗрд╕ рдХрд╛рд░рдХ рдХреЛ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддреЗрдЬрд╝реА рд╕реЗ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдЧреБрдгрд╛рдВрдХ рдХреЛ 0.01 рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдУрд╡рд░рд╣реЗрдб (рдКрдкрд░ рджреЗрдЦреЗрдВ) рдХреЛ рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЧреБрдгрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХреИрд╢реНрдб рдмреНрд▓реЙрдХреНрд╕ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдУрд╡рд░рд╣реЗрдб = 300% рд╣реИ, рдФрд░ рдЧреБрдгрд╛рдВрдХ = 0.01 рд╣реИ, рддреЛ рдХреИрд╢реНрдб рдмреНрд▓реЙрдХреНрд╕ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд 3% рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
"рдмреИрдХрдкреНрд░реЗрд╢рд░" рдХрд╛ рд╕рдорд╛рди рддрд░реНрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдУрд╡рд░рд╣реЗрдб (рдУрд╡рд░рд╢реВрдЯрд┐рдВрдЧ) рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рд░реАрдб-рдПрд╡рд┐рдХреНрд╢рди рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣ рддрдВрддреНрд░ рдЕрдиреБрдХреВрд▓рди рдореЛрдб рд╕реЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмреИрдХрдкреНрд░реЗрд╢рд░ рдХрд╛ рддрд░реНрдХ рдЙрд▓реНрдЯрд╛ рд╣реИ: рдУрд╡рд░рд╢реВрдЯрд┐рдВрдЧ рдЬрд┐рддрдиреА рдЬрд╝реНрдпрд╛рджрд╛ рд╣реЛрдЧреА, рдЙрддрдиреЗ рд╣реА рдЬрд╝реНрдпрд╛рджрд╛ рдмреНрд▓реЙрдХ рдХреИрд╢ рд╣реЛрдВрдЧреЗред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛрдб
LruBlockCache cache = this.cache.get();
if (cache == null) {
break;
}
freedSumMb += cache.evict()/1024/1024;
/*
* Sometimes we are reading more data than can fit into BlockCache
* and it is the cause a high rate of evictions.
* This in turn leads to heavy Garbage Collector works.
* So a lot of blocks put into BlockCache but never read,
* but spending a lot of CPU resources.
* Here we will analyze how many bytes were freed and decide
* decide whether the time has come to reduce amount of caching blocks.
* It help avoid put too many blocks into BlockCache
* when evict() works very active and save CPU for other jobs.
* More delails: https://issues.apache.org/jira/browse/HBASE-23887
*/
// First of all we have to control how much time
// has passed since previuos evict() was launched
// This is should be almost the same time (+/- 10s)
// because we get comparable volumes of freed bytes each time.
// 10s because this is default period to run evict() (see above this.wait)
long stopTime = System.currentTimeMillis();
if ((stopTime - startTime) > 1000 * 10 - 1) {
// Here we have to calc what situation we have got.
// We have the limit "hbase.lru.cache.heavy.eviction.bytes.size.limit"
// and can calculte overhead on it.
// We will use this information to decide,
// how to change percent of caching blocks.
freedDataOverheadPercent =
(int) (freedSumMb * 100 / cache.heavyEvictionMbSizeLimit) - 100;
if (freedSumMb > cache.heavyEvictionMbSizeLimit) {
// Now we are in the situation when we are above the limit
// But maybe we are going to ignore it because it will end quite soon
heavyEvictionCount++;
if (heavyEvictionCount > cache.heavyEvictionCountLimit) {
// It is going for a long time and we have to reduce of caching
// blocks now. So we calculate here how many blocks we want to skip.
// It depends on:
// 1. Overhead - if overhead is big we could more aggressive
// reducing amount of caching blocks.
// 2. How fast we want to get the result. If we know that our
// heavy reading for a long time, we don't want to wait and can
// increase the coefficient and get good performance quite soon.
// But if we don't sure we can do it slowly and it could prevent
// premature exit from this mode. So, when the coefficient is
// higher we can get better performance when heavy reading is stable.
// But when reading is changing we can adjust to it and set
// the coefficient to lower value.
int change =
(int) (freedDataOverheadPercent * cache.heavyEvictionOverheadCoefficient);
// But practice shows that 15% of reducing is quite enough.
// We are not greedy (it could lead to premature exit).
change = Math.min(15, change);
change = Math.max(0, change); // I think it will never happen but check for sure
// So this is the key point, here we are reducing % of caching blocks
cache.cacheDataBlockPercent -= change;
// If we go down too deep we have to stop here, 1% any way should be.
cache.cacheDataBlockPercent = Math.max(1, cache.cacheDataBlockPercent);
}
} else {
// Well, we have got overshooting.
// Mayby it is just short-term fluctuation and we can stay in this mode.
// It help avoid permature exit during short-term fluctuation.
// If overshooting less than 90%, we will try to increase the percent of
// caching blocks and hope it is enough.
if (freedSumMb >= cache.heavyEvictionMbSizeLimit * 0.1) {
// Simple logic: more overshooting - more caching blocks (backpressure)
int change = (int) (-freedDataOverheadPercent * 0.1 + 1);
cache.cacheDataBlockPercent += change;
// But it can't be more then 100%, so check it.
cache.cacheDataBlockPercent = Math.min(100, cache.cacheDataBlockPercent);
} else {
// Looks like heavy reading is over.
// Just exit form this mode.
heavyEvictionCount = 0;
cache.cacheDataBlockPercent = 100;
}
}
LOG.info("BlockCache evicted (MB): {}, overhead (%): {}, " +
"heavy eviction counter: {}, " +
"current caching DataBlock (%): {}",
freedSumMb, freedDataOverheadPercent,
heavyEvictionCount, cache.cacheDataBlockPercent);
freedSumMb = 0;
startTime = stopTime;
}
рдЖрдЗрдП рдЕрдм рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдм рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ:
- рдЖрдЗрдП рд╕реНрдХреИрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ (25 рдереНрд░реЗрдб, рдмреИрдЪ = 100)
- 5 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж рдорд▓реНрдЯреА-рдЧреЗрдЯреНрд╕ рдЬреЛрдбрд╝реЗрдВ (25 рдереНрд░реЗрдбреНрд╕, рдмреИрдЪ = 100)
- 5 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж, рдорд▓реНрдЯреА-рдЧреЗрдЯреНрд╕ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВ (рдХреЗрд╡рд▓ рд╕реНрдХреИрди рд╣реА рд╢реЗрд╖ рд░рд╣ рдЬрд╛рддрд╛ рд╣реИ)
рд╣рдо рджреЛ рдмрд╛рд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ hbase.lru.cache.heavy.eviction.count.limit = 10000 (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ), рдФрд░ рдлрд┐рд░ рд╣рдо limit = 0 рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЬреЛ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИ)ред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓реЙрдЧ рдореЗрдВ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИ, рдУрд╡рд░рд╢реВрдЯрд┐рдВрдЧ рдХреЛ 14-71% рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░рддреА рд╣реИред рд╕рдордп-рд╕рдордп рдкрд░ рд▓реЛрдб рдХрдо рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдмреИрдХрдкреНрд░реЗрд╢рд░ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ рдФрд░ HBase рдлрд┐рд░ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдмреНрд▓реЙрдХ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред
рдХреНрд╖реЗрддреНрд░ рд╕рд░реНрд╡рд░ рд▓реЙрдЧ
рдмреЗрджрдЦрд▓ (MB): 0, рдЕрдиреБрдкрд╛рдд 0.0, рдУрд╡рд░рд╣реЗрдб (%): -100, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 0, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 100
рдмреЗрджрдЦрд▓ (MB): 0, рдЕрдиреБрдкрд╛рдд 0.0, рдУрд╡рд░рд╣реЗрдб (%): -100, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 0, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 100
рдмреЗрджрдЦрд▓ (MB): 2170, рдЕрдиреБрдкрд╛рдд 1.09, рдУрд╡рд░рд╣реЗрдб (%): 985, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 1, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 91 < рдкреНрд░рд╛рд░рдВрдн
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 3763, рдЕрдиреБрдкрд╛рдд 1.08, рдУрд╡рд░рд╣реЗрдб (%): 1781, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 2, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 76
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 3306, рдЕрдиреБрдкрд╛рдд 1.07, рдУрд╡рд░рд╣реЗрдб (%): 1553, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 3, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 61
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 2508, рдЕрдиреБрдкрд╛рдд 1.06, рдУрд╡рд░рд╣реЗрдб (%): 1154, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 4, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 50
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 1824, рдЕрдиреБрдкрд╛рдд 1.04, рдУрд╡рд░рд╣реЗрдб (%): 812, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 5, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 42
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 1482, рдЕрдиреБрдкрд╛рдд 1.03, рдУрд╡рд░рд╣реЗрдб (%): 641, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 6, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 36
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 1140, рдЕрдиреБрдкрд╛рдд 1.01, рдУрд╡рд░рд╣реЗрдб (%): 470, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 7, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 32
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 913, рдЕрдиреБрдкрд╛рдд 1.0, рдУрд╡рд░рд╣реЗрдб (%): 356, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 8, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 29
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 912, рдЕрдиреБрдкрд╛рдд 0.89, рдУрд╡рд░рд╣реЗрдб (%): 356, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 9, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 26
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 684, рдЕрдиреБрдкрд╛рдд 0.76, рдУрд╡рд░рд╣реЗрдб (%): 242, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 10, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 24
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 684, рдЕрдиреБрдкрд╛рдд 0.61, рдУрд╡рд░рд╣реЗрдб (%): 242, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 11, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.51, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 12, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 21
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.42, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 13, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 20
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 14, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 15, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.32, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 16, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.31, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 17, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.3, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 18, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.29, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 19, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.27, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 20, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.25, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 21, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.24, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 22, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.22, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 23, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.21, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 24, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.2, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 25, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.17, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 26, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.17, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 27, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18 < рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ (рд▓реЗрдХрд┐рди рддрд╛рд▓рд┐рдХрд╛ рд╕рдорд╛рди)
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.15, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 28, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.13, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 29, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.11, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 30, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.09, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 31, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.08, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 32, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.07, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 33, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.06, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 34, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.05, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 35, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.05, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 36, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.04, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 37, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 109, рдЕрдиреБрдкрд╛рдд 0.04, рдУрд╡рд░рд╣реЗрдб (%): -46, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 37, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22 < рдмреИрдХ рдкреНрд░реЗрд╢рд░
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 798, рдЕрдиреБрдкрд╛рдд 0.24, рдУрд╡рд░рд╣реЗрдб (%): 299, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 38, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 20
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 798, рдЕрдиреБрдкрд╛рдд 0.29, рдУрд╡рд░рд╣реЗрдб (%): 299, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 39, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 570, рдЕрдиреБрдкрд╛рдд 0.27, рдУрд╡рд░рд╣реЗрдб (%): 185, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 40, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 17
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.22, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 41, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.16, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 42, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.11, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 43, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.09, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 44, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.07, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 45, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.05, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 46, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 222, рдЕрдиреБрдкрд╛рдд 0.04, рдУрд╡рд░рд╣реЗрдб (%): 11, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 47, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 16
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 104, рдЕрдиреБрдкрд╛рдд 0.03, рдУрд╡рд░рд╣реЗрдб (%): -48, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 47, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 21 < рдЗрдВрдЯрд░рдкреНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 684, рдЕрдиреБрдкрд╛рдд 0.2, рдУрд╡рд░рд╣реЗрдб (%): 242, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 48, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 19
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 570, рдЕрдиреБрдкрд╛рдд 0.23, рдУрд╡рд░рд╣реЗрдб (%): 185, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 49, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.22, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 50, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.21, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 51, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.2, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 52, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.18, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 53, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.16, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 54, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 228, рдЕрдиреБрдкрд╛рдд 0.14, рдУрд╡рд░рд╣реЗрдб (%): 14, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 55, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 18
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 112, рдЕрдиреБрдкрд╛рдд 0.14, рдУрд╡рд░рд╣реЗрдб (%): -44, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 55, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 23 < рдмреИрдХ рдкреНрд░реЗрд╢рд░
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 456, рдЕрдиреБрдкрд╛рдд 0.26, рдУрд╡рд░рд╣реЗрдб (%): 128, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 56, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.31, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 57, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 58, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 59, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 60, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 61, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 62, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 63, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.32, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 64, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 65, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 66, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.32, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 67, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 68, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.32, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 69, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.32, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 70, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 71, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 72, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 73, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 74, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 75, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (рдПрдордмреА): 342, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): 71, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 76, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 22
рдмреЗрджрдЦрд▓ (MB): 21, рдЕрдиреБрдкрд╛рдд 0.33, рдУрд╡рд░рд╣реЗрдб (%): -90, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 76, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 32
рдмреЗрджрдЦрд▓ (MB): 0, рдЕрдиреБрдкрд╛рдд 0.0, рдУрд╡рд░рд╣реЗрдб (%): -100, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 0, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 100
рдмреЗрджрдЦрд▓ (MB): 0, рдЕрдиреБрдкрд╛рдд 0.0, рдУрд╡рд░рд╣реЗрдб (%): -100, рднрд╛рд░реА рдмреЗрджрдЦрд▓реА рдХрд╛рдЙрдВрдЯрд░: 0, рд╡рд░реНрддрдорд╛рди рдХреИрд╢рд┐рдВрдЧ рдбреЗрдЯрд╛рдмреНрд▓реЙрдХ (%): 100
рд╕реНрдХреИрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреИрд╢ рдХреЗ рджреЛ рдЦрдВрдбреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдХреЗ рдЧреНрд░рд╛рдл рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдереА - рдПрдХрд▓ (рдЬрд╣рд╛рдВ рдРрд╕реЗ рдмреНрд▓реЙрдХ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА рддрдХ рдХрд┐рд╕реА рдиреЗ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ) рдФрд░ рдмрд╣реБ тАЛтАЛ(рдЬрд╣рд╛рдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ "рдЕрдиреБрд░реЛрдзрд┐рдд" рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИред рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреИрд╢ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рдерд╛, рдлрд┐рд░ HBase рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд╢реБрд░реВ рд╣реЛрдиреЗ рдореЗрдВ 5 рдорд┐рдирдЯ рдХреА рджреЗрд░реА рд╣реБрдИ (30 рдирд┐рд╖реНрдХрд╛рд╕рди рдЪрдХреНрд░)ред
рдкреВрд░рд╛ рдХреЛрдб рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреАрдердм рдкрд░.
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 300 рд╣рдЬрд╝рд╛рд░ рд░реАрдбреНрд╕ рд╣реА рд╕рдм рдХреБрдЫ рдирд╣реАрдВ рд╣реИрдВред рд╕рдЪ рддреЛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдкрдХреЛ HDFS рдХреЗ рдЬрд╝рд░рд┐рдП рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рддреЛ ShortCircuitCache (рдЬрд┐рд╕реЗ рдЖрдЧреЗ SSC рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛) рдореИрдХреЗрдирд┐рдЬрд╝реНрдо рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░реИрдХреНрд╢рди рд╕реЗ рдмрдЪрддреЗ рд╣реБрдП рд╕реАрдзреЗ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИред
рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рддрдВрддреНрд░, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдн рджреЗрддрд╛ рд╣реИ, рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рдпрд╣ рдПрдХ рдЕрдбрд╝рдЪрди рднреА рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рд╕рднреА рднрд╛рд░реА рдСрдкрд░реЗрд╢рди рд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдЕрд╡рд░реЛрдз рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред

рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдореЗрдВ рдпрд╣ рдмрд╛рдд рд╕рдордЭ рдореЗрдВ рдЖ рдЧрдИ, рддреЛ рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╕реНрд╡рддрдВрддреНрд░ рдПрд╕рдПрд╕рд╕реА рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
private final ShortCircuitCache[] shortCircuitCache;
...
shortCircuitCache = new ShortCircuitCache[this.clientShortCircuitNum];
for (int i = 0; i < this.clientShortCircuitNum; i++)
this.shortCircuitCache[i] = new ShortCircuitCache(тАж);
рдФрд░ рдлрд┐рд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ, рдСрдлрд╕реЗрдЯ рдХреЗ рдЕрдВрддрд┐рдо рдЕрдВрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдЪреНрдЫреЗрджрди рдХреЛ рднреА рдЫреЛрдбрд╝ рджреЗрдВ:
public ShortCircuitCache getShortCircuitCache(long idx) {
return shortCircuitCache[(int) (idx % clientShortCircuitNum)];
}
рдЕрдм рд╣рдо рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HDFS рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдврд╝реЗрдВрдЧреЗред рд╣рдо рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:
conf.set("dfs.client.read.shortcircuit", "true");
conf.set("dfs.client.read.shortcircuit.buffer.size", "65536"); // ╨┐╨╛ ╨┤╨╡╤Д╨╛╨╗╤В╤Г = 1 ╨Ь╨С ╨╕ ╤Н╤В╨╛ ╤Б╨╕╨╗╤М╨╜╨╛ ╨╖╨░╨╝╨╡╨┤╨╗╤П╨╡╤В ╤З╤В╨╡╨╜╨╕╨╡, ╨┐╨╛╤Н╤В╨╛╨╝╤Г ╨╗╤Г╤З╤И╨╡ ╨┐╤А╨╕╨▓╨╡╤Б╤В╨╕ ╨▓ ╤Б╨╛╨╛╤В╨▓╨╡╤В╤Б╤В╨▓╨╕╨╡ ╨║ ╤А╨╡╨░╨╗╤М╨╜╤Л╨╝ ╨╜╤Г╨╢╨┤╨░╨╝
conf.set("dfs.client.short.circuit.num", num); // ╨╛╤В 1 ╨┤╨╛ 10
рдФрд░ рдмрд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ рдкрдврд╝реЗрдВ:
FSDataInputStream in = fileSystem.open(path);
for (int i = 0; i < count; i++) {
position += 65536;
if (position > 900000000)
position = 0L;
int res = in.read(position, byteBuffer, 0, 65536);
}
рдпрд╣ рдХреЛрдб рдЕрд▓рдЧ-рдЕрд▓рдЧ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╣рдо рдПрдХ рд╕рд╛рде рдкрдврд╝реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдХреНрд╖реИрддрд┐рдЬ рдЕрдХреНрд╖ рдкрд░ 10 рд╕реЗ 200 рддрдХ) рдФрд░ рдХреИрд╢ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдЧреНрд░рд╛рдлрд╝ рдкрд░ 1 рд╕реЗ 10 рддрдХ) рдмрдврд╝рд╛рдПрдБрдЧреЗред рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдЕрдХреНрд╖ рдЙрд╕ рдЧрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬреЛ SSC рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╕реЗ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рдХреИрд╢ рд╣реЛрддрд╛ рд╣реИред

рдЧреНрд░рд╛рдлрд╝ рдХреИрд╕реЗ рдкрдврд╝реЗрдВ: рдПрдХ рдХреИрд╢ рдХреЗ рд╕рд╛рде 100 KB рдмреНрд▓реЙрдХ рдореЗрдВ 64 рд╣рдЬрд╝рд╛рд░ рд░реАрдбреНрд╕ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ 78 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рдЬрдмрдХрд┐ 5 рдХреИрд╢ рдХреЗ рд╕рд╛рде рдпрд╣ 16 рд╕реЗрдХрдВрдб рдореЗрдВ рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА, рд▓рдЧрднрдЧ 5 рдЧреБрдирд╛ рддреНрд╡рд░рдг рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЧреНрд░рд╛рдлрд╝ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рдорд╛рдирд╛рдВрддрд░ рд░реАрдбреНрд╕ рдХреА рдХрдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡ рдмрд╣реБрдд рдЬрд╝реНрдпрд╛рджрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рддрдм рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдиреЗ рд▓рдЧрддрд╛ рд╣реИ рдЬрдм рдереНрд░реЗрдбреНрд╕ рдХреЗ 50 рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рд░реАрдбреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ SSC рдХреА рд╕рдВрдЦреНрдпрд╛ 6 рдФрд░ рдЙрд╕рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдХрд░рдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрд╛рдлрд╝реА рдХрдо рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред
рдиреЛрдЯ 1: рдЪреВрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛рдлреА рдЕрд╕реНрдерд┐рд░ рд╣реИрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ), 3 рд░рди рдХрд┐рдП рдЧрдП рдФрд░ рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдФрд╕рдд рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ред
рдиреЛрдЯ 2: рд░реИрдВрдбрдо рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдЯреНрдпреВрдирд┐рдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рд╕рдорд╛рди рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХреНрд╕реЗрд╕ рд╕реНрд╡рдпрдВ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЬрд╝рд░реВрд░реА рд╣реИ рдХрд┐ HBase рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рддреНрд╡рд░рдг рд╣рдореЗрд╢рд╛ рдореБрдлрд╝реНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ред рдпрд╣рд╛рдБ рд╣рдо CPU рдХреЛ рд▓реЙрдХ рдкрд░ рд▓рдЯрдХрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЙрд╕рдХреА рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ "рдЕрдирд▓реЙрдХ" рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреИрд╢ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдиреЗ рд╕реЗ CPU рдЙрдкрдпреЛрдЧ рдореЗрдВ рд▓рдЧрднрдЧ рд╕рдорд╛рдиреБрдкрд╛рддрд┐рдХ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдФрд░ рднреА рд▓рд╛рднрдкреНрд░рдж рд╕рдВрдпреЛрдЬрди рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП SSC = 3 рд╕реЗрдЯрд┐рдВрдЧ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдЗрд╕ рд░реЗрдВрдЬ рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд▓рдЧрднрдЧ 3.3 рдЧреБрдирд╛ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред рдиреАрдЪреЗ рддреАрдиреЛрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рджрд┐рдП рдЧрдП рд╣реИрдВред

рдЬрдмрдХрд┐ CPU рдХреА рдЦрдкрдд рд▓рдЧрднрдЧ 2.8 рдЧреБрдирд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдЕрдВрддрд░ рдмрд╣реБрдд рдЬрд╝реНрдпрд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЫреЛрдЯреА рдЧреНрд░реЗрдЯрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦреБрд╢ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдЕрдм рдЙрд╕реЗ рд╕реНрдХреВрд▓ рдЬрд╛рдХрд░ рдкрдврд╝рд╛рдИ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, HDFS рддрдХ рдорд╛рд╕ рдПрдХреНрд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЯреВрд▓ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдкрд╛рд░реНрдХ, рдЖрджрд┐) рдкрд░ рдЗрд╕рдХрд╛ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛, рдмрд╢рд░реНрддреЗ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╣рд▓реНрдХрд╛ рд╣реЛ (рдЕрд░реНрдерд╛рдд рдмрд╛рдзрд╛ HDFS рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░ рд╣реЛ) рдФрд░ CPU рдкрд╛рд╡рд░ рдЙрдкрд▓рдмреНрдз рд╣реЛред рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ HBase рд╕реЗ рд░реАрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП BlockCache рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ SSC рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд╕рдВрдпреБрдХреНрдд рдЙрдкрдпреЛрдЧ рд╕реЗ рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛ред

рдпрд╣рд╛рдБ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рднрд╛рд╡ рдЙрддрдирд╛ рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рдЬрд┐рддрдирд╛ рдкрд░рд┐рд╖реНрдХреГрдд рдкрд░реАрдХреНрд╖рдгреЛрдВ (рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд░реАрдбрд┐рдВрдЧ) рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдЕрддрд┐рд░рд┐рдХреНрдд 80K рдирд┐рдХрд╛рд▓рдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИред рджреЛрдиреЛрдВ рдЕрдиреБрдХреВрд▓рди рдорд┐рд▓рдХрд░ 4x рддрдХ рддреНрд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреА.рдЖрд░. рднреА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред , рдЬрд┐рд╕реЗ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдПрдХ рд╕рдорд╛рди рд╡рд╛рдЗрдб-рдХреЙрд▓рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕рдВрдбреНрд░рд╛ рдФрд░ рдПрдЪрдмреЗрд╕ рдХреЗ рдкрдарди рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред
рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ YCSB рд▓реЛрдб рдкрд░реАрдХреНрд╖рдг рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рджреЛ рд╣реЛрд╕реНрдЯреНрд╕ (рдХреБрд▓ 800 рдереНрд░реЗрдбреНрд╕) рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдереЗред рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░, 4 рд╣реЛрд╕реНрдЯреНрд╕ рдкрд░ RegionServer рдФрд░ Cassandra рдХреЗ 4 рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдереЗ (рдЙрди рд╣реЛрд╕реНрдЯреНрд╕ рдкрд░ рдирд╣реАрдВ рдЬрд╣рд╛рдБ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдереЗ, рддрд╛рдХрд┐ рдЙрдирдХрд╛ рдкреНрд░рднрд╛рд╡ рди рдкрдбрд╝реЗ)ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдХрд╛рд░реЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рд╕реЗ рд░реАрдб рдХрд┐рдП рдЧрдП рдереЗ:
HBase - HDFS рдкрд░ 300 GB (100 GB рд╕реНрд╡рдЪреНрдЫ рдбреЗрдЯрд╛)
рдХреИрд╕рдВрдбреНрд░рд╛ - 250 рдЬреАрдмреА (рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд╛рд░рдХ = 3)
рдЕрд░реНрдерд╛рддреН, рд╡реЙрд▓реНрдпреВрдо рд▓рдЧрднрдЧ рд╕рдорд╛рди рдерд╛ (HBase рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ)ред
HBase рдкреИрд░рд╛рдореАрдЯрд░:
dfs.client.short.circuit.num = 5 (HDFS рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрдХреВрд▓рди)
hbase.lru.cache.heavy.eviction.count.limit = 30 - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреИрдЪ 30 рдирд┐рд╖реНрдХрд╛рд╕рдиреЛрдВ (~5 рдорд┐рдирдЯ) рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛
hbase.lru.cache.heavy.eviction.mb.size.limit = 300 тАФ рдХреИрд╢рд┐рдВрдЧ рдФрд░ рдирд┐рд╖реНрдХрд╛рд╕рди рдХреА рд▓рдХреНрд╖рд┐рдд рдорд╛рддреНрд░рд╛
YCSB рд▓реЙрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдПрдХреНрд╕реЗрд▓ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛:

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпреЗ рдЕрдиреБрдХреВрд▓рди рд╣рдореЗрдВ рдЗрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЗрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рдорд╛рди рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 450 рд╣рдЬрд╛рд░ рд░реАрдб рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рд╣рдореЗрдВ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рд░реЛрдорд╛рдВрдЪрдХ рд╕рдВрдШрд░реНрд╖ рдореЗрдВ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИред
рд╕реНрд░реЛрдд: www.habr.com
