ΠΠΈΡΠΎΠΊΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π΅ Π΅Π΄Π½ΠΎ ΠΎΡ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ. Π ΠΎΡΠ΄Π΅Π»Π° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Sberbank Π½ΠΈΠ΅ ΠΈΠ·ΠΏΠΎΠΌΠΏΠ²Π°ΠΌΠ΅ ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² Π½Π°ΡΠΈΡ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Hadoop Data Cloud ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΡΠ΅ ΡΠΏΡΠ°Π²ΡΠΌΠ΅ Ρ Π½Π°ΠΈΡΡΠΈΠ½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠΎΡΠΎΡΠΈ ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ, Π½ΠΈΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΡΡΠΈΠΌ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ ΡΠ΅Π³Π° ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π²ΠΈ ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΡΠΏΡΡ
ΠΌΠ΅ Π΄Π° Π·Π°ΠΊΡΡΠΏΠΈΠΌ RegionServer HBase ΠΈ HDFS ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΅ΡΠΎ ΡΡΠΏΡΡ
ΠΌΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠΌ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΠΊΡΠΌ ΡΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ°, ΡΡΡΡΠ²Π° ΡΠΈ Π΄Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π΅Π½ΠΈ, Π°ΠΊΠΎ ΡΠ΅Π΄Π½Π΅ΡΠ΅ Π½Π° HDD.
ΠΠ°ΡΠΎ HDD ΠΈ Π±ΡΡΠ·ΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π΄ΠΎΡΡΡΠΏ ΡΠ° Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ
ΠΠ°ΠΊΡΠΎ Π·Π½Π°Π΅ΡΠ΅, HBase ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈ Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅ Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ°. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ ΠΎΠΊΠΎΠ»ΠΎ 64 KB. Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°ΠΌΠΎ 100 Π±Π°ΠΉΡΠ° ΠΈ Π΄Π° ΠΏΠΎΠΈΡΠΊΠ°ΠΌΠ΅ ΠΎΡ HBase Π΄Π° Π½ΠΈ Π΄Π°Π΄Π΅ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΡΡ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° Π±Π»ΠΎΠΊΠ° Π² HFiles Π΅ 64 KB, Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ 640 ΠΏΡΡΠΈ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° (ΡΠ°ΠΌΠΎ ΠΌΠΈΠ½ΡΡΠ°!), ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π·Π°ΡΠ²ΠΊΠ°ΡΠ° ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΏΡΠ΅Π· HDFS ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ShortCircuitCache (ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅), ΡΠΎΠ²Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π²Π΅ΡΠ΅ 1 MB ΠΎΡ Π΄ΠΈΡΠΊΠ°. Π’ΠΎΠ²Π° ΠΎΠ±Π°ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ΅Π³ΡΠ»ΠΈΡΠ° Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° dfs.client.read.shortcircuit.buffer.size ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°ΠΈ ΠΈΠΌΠ° ΡΠΌΠΈΡΡΠ» Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ ΡΠ°Π·ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎ 126 KB.
ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π°, Π½ΠΎ ΠΎΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Π΄Π° ΡΠ΅ΡΠ΅ΠΌ Π΄Π°Π½Π½ΠΈ ΠΏΡΠ΅Π· Java API, ΠΊΠ°ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΡΠΎ FileChannel.read ΠΈ ΠΏΠΎΠΈΡΠΊΠ°ΠΌΠ΅ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°Π½ΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΠΈ, ΡΡ ΡΠ΅ΡΠ΅ βΠ·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉβ 2 ΠΏΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ , Ρ.Π΅. 256 KB Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ. Π’ΠΎΠ²Π° Π΅ ΡΠ°ΠΊΠ°, Π·Π°ΡΠΎΡΠΎ java Π½ΡΠΌΠ° Π»Π΅ΡΠ΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ»Π°Π³Π° FADV_RANDOM, Π·Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈ ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π°, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½Π°ΡΠΈΡΠ΅ 100 Π±Π°ΠΉΡΠ°, 2600 ΠΏΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΡΠ΅ΡΠ°Ρ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠ°ΠΊΠ°. ΠΠ·Π³Π»Π΅ΠΆΠ΄Π°, ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π΅ΠΊΠ° Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠ° Π΄ΠΎ ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ, Π·Π°Π΄Π°Π΄Π΅ΠΌ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΈΡ ΡΠ»Π°Π³ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π³ΠΎΠ»ΡΠΌΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠ²Π΅ΡΠ»Π΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΠΊΠ°ΡΠΎ Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠ° Ρ 2 ΠΏΡΡΠΈ, Π½ΠΈΠ΅ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΌΠ΅ Π±ΡΠΎΡ Π½Π° Π±Π°ΠΉΡΠΎΠ²Π΅ΡΠ΅, ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΈ Π·Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π²ΡΠ΅ΠΌΠ΅, Ρ 2 ΠΏΡΡΠΈ.
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΏΠ΅ΡΠ°Π»Π±Π° ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π½Π° ΡΠ»Π°Π³Π° FADV_RANDOM, Π½ΠΎ ΡΠ°ΠΌΠΎ Ρ Π²ΠΈΡΠΎΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ²ΠΎΡΡ ΠΈ Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠ° ΠΎΡ 128 KB, Π½ΠΎ ΡΠΎΠ²Π° Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠ°:
Π’Π΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π±ΡΡ
Π° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈ Π²ΡΡΡ
Ρ 100 ΡΠ°ΠΉΠ»Π°, Π²ΡΠ΅ΠΊΠΈ Ρ ΡΠ°Π·ΠΌΠ΅Ρ 1 GB ΠΈ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ Π½Π° 10 HDD.
ΠΠ΅ΠΊΠ° ΠΈΠ·ΡΠΈΡΠ»ΠΈΠΌ Π½Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ°Π·ΡΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΈ ΡΠ°Π·ΠΈ ΡΠΊΠΎΡΠΎΡΡ:
ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΡΠ΅ΡΠ΅ΠΌ ΠΎΡ 10 Π΄ΠΈΡΠΊΠ° ΡΡΡ ΡΠΊΠΎΡΠΎΡΡ 280 MB/sec, Ρ.Π΅. 3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΠΏΡΡΠΈ ΠΏΠΎ 100 Π±Π°ΠΉΡΠ°. ΠΠΎ ΠΊΠ°ΠΊΡΠΎ ΡΠΈ ΡΠΏΠΎΠΌΠ½ΡΠΌΠ΅, Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΠΌ, ΡΠ° 2600 ΠΏΡΡΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΠ΅ΡΠ΅. Π’Π°ΠΊΠ° ΡΠ°Π·Π΄Π΅Π»ΡΠΌΠ΅ 3 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π½Π° 2600 ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ 1100 Π·Π°ΠΏΠΈΡΠ° Π² ΡΠ΅ΠΊΡΠ½Π΄Π°.
ΠΠ΅ΠΏΡΠ΅ΡΠΈΡΠ°ΡΠΎ, Π½Π°Π»ΠΈ? Π’Π°ΠΊΠ°Π²Π° Π΅ ΠΏΡΠΈΡΠΎΠ΄Π°ΡΠ° Π‘Π»ΡΡΠ°ΠΉΠ½Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° HDD - Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠ°. Π’ΠΎΠ²Π° Π΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏ ΠΈ Π½ΠΈΠΊΠΎΡ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΡΡΡΠ³Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠ»ΠΎΠ²ΠΈΡ.
ΠΠ°ΠΊ ΡΠΎΠ³Π°Π²Π° Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΏΠΎΡΡΠΈΠ³Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ? ΠΠ° Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π½Π° ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ, Π½Π΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π½Π° ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΠ½ΠΈΠΌΠΊΠ°:
Π’ΡΠΊ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ Π·Π° ΠΏΡΡΠ²ΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ½ΡΡΠΈ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π°ΠΈΡΡΠΈΠ½Π° Π΅ ΠΎΠΊΠΎΠ»ΠΎ Ρ
ΠΈΠ»ΡΠ΄Π° Π·Π°ΠΏΠΈΡΠ° Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΎΠ±Π°ΡΠ΅, ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΡΠ΅ ΡΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΏΠΎΠΈΡΠΊΠ°Π½ΠΎΡΠΎ, Π΄Π°Π½Π½ΠΈΡΠ΅ ΡΠ΅ ΠΎΠ·ΠΎΠ²Π°Π²Π°Ρ Π² buff/cache Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° (linux) ΠΈ ΡΠΊΠΎΡΠΎΡΡΡΠ° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Π΄ΠΎ ΠΏΠΎ-ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΈΡΠ΅ 60 Ρ
ΠΈΠ»ΡΠ΄ΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ ΡΠ΅ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ Ρ ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° ΡΠ°ΠΌΠΎ Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π² ΠΊΠ΅ΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ»ΠΈ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π² SSD/NVMe ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΡ ΡΡΠ°Π²Π½ΠΈΠΌΠ° ΡΠΊΠΎΡΠΎΡΡ Π½Π° Π΄ΠΎΡΡΡΠΏ.
Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅ΠΌ ΡΠ΅ΡΡΠΎΠ²Π΅ Π½Π° ΡΡΠ΅Π½Π΄ ΠΎΡ 4 ΡΡΡΠ²ΡΡΠ°, Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ°ΠΊΡΡΠ²Π°, ΠΊΠ°ΠΊΡΠΎ ΡΠ»Π΅Π΄Π²Π°:
ΠΡΠΎΡΠ΅ΡΠΎΡ: Xeon E5-2680 v4 @ 2.40GHz 64 Π½ΠΈΡΠΊΠΈ.
ΠΠ°ΠΌΠ΅Ρ: 730 GB.
Π²Π΅ΡΡΠΈΡ Π½Π° java: 1.8.0_111
Π ΡΡΠΊ ΠΊΠ»ΡΡΠΎΠ²ΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π΄Π°Π½Π½ΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΈ. Π€Π°ΠΊΡ Π΅, ΡΠ΅ Π°ΠΊΠΎ ΡΠ΅ΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ Π΅ ΠΈΠ·ΡΡΠ»ΠΎ ΠΏΠΎΡΡΠ°Π²Π΅Π½Π° Π² ΠΊΠ΅ΡΠ° Π½Π° HBase, ΡΠΎΠ³Π°Π²Π° Π΄ΠΎΡΠΈ Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΡΡΠΈΠ³Π½Π΅ Π΄ΠΎ ΡΠ΅ΡΠ΅Π½Π΅ ΠΎΡ buff/cache Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. Π’ΡΠΉ ΠΊΠ°ΡΠΎ HBase ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ 40% ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΡΡΡΡΠΊΡΡΡΠ°, Π½Π°ΡΠ΅ΡΠ΅Π½Π° BlockCache. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²Π° Π΅ ConcurrentHashMap, ΠΊΡΠ΄Π΅ΡΠΎ ΠΊΠ»ΡΡΡΡ Π΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π° + ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π»ΠΎΠΊΠ°, Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΡΠΎΠ²Π° ΠΎΡΠΌΠ΅ΡΡΠ²Π°Π½Π΅.
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ΡΠ΅ΠΌ ΡΠ°ΠΌΠΎ ΠΎΡ ΡΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ°, Π½ΠΈΠ΅
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΎΠ±Π΅ΠΌΡΡ Π½Π° BlockCache Π½Π° Π΅Π΄ΠΈΠ½ RS Π΅ ΠΎΠΊΠΎΠ»ΠΎ 12 GB. ΠΠ°ΡΠ½Π°Ρ ΠΌΠ΅ Π΄Π²Π΅ RS Π½Π° Π΅Π΄ΠΈΠ½ Π²ΡΠ·Π΅Π», Ρ.Π΅. 96 GB ΡΠ° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π° BlockCache Π½Π° Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·Π»ΠΈ. Π ΠΈΠΌΠ° Π² ΠΏΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π΄Π°Π½Π½ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π΅ΠΊΠ° ΡΠ° 4 ΡΠ°Π±Π»ΠΈΡΠΈ, ΠΏΠΎ 130 ΡΠ΅Π³ΠΈΠΎΠ½Π°, Π² ΠΊΠΎΠΈΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΡΠ° Ρ ΡΠ°Π·ΠΌΠ΅Ρ 800 MB, ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ Ρ FAST_DIFF, Ρ.Π΅. ΠΎΠ±ΡΠΎ 410 GB (ΡΠΎΠ²Π° ΡΠ° ΡΠΈΡΡΠΈ Π΄Π°Π½Π½ΠΈ, Ρ.Π΅. Π±Π΅Π· Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠ°ΠΊΡΠΎΡΡΡ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ).
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ BlockCache Π΅ ΡΠ°ΠΌΠΎ ΠΎΠΊΠΎΠ»ΠΎ 23% ΠΎΡ ΠΎΠ±ΡΠΈΡ ΠΎΠ±Π΅ΠΌ Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎ ΡΠ΅Π°Π»Π½ΠΈΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° BigData. Π ΡΡΠΊ Π·Π°ΠΏΠΎΡΠ²Π° Π·Π°Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ - Π·Π°ΡΠΎΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ° ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π² ΠΊΠ΅ΡΠ°, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π»ΠΎΡΠ° Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°, Π°ΠΊΠΎ ΠΏΡΠΎΠΏΡΡΠ½Π΅ΡΠ΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ²ΡΡΡΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ° - Ρ.Π΅. ΠΎΡΠΈΠ΄Π΅ΡΠ΅ Π΄ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’ΠΎΠ²Π° ΠΎΠ±Π°ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π±Π΅Π³Π½Π°ΡΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π΅ΠΊΠ° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Π² ΡΡΠ²ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π°ΡΠΏΠ΅ΠΊΡ - ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ»ΡΡΠ²Π° Ρ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΠΊΠ΅ΡΠ°?
ΠΠ΅ΠΊΠ° ΠΎΠΏΡΠΎΡΡΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ΅ΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΠΊΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ±ΠΈΡΠ° ΡΠ°ΠΌΠΎ 1 ΠΎΠ±Π΅ΠΊΡ. ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈΠΌ Ρ ΠΎΠ±Π΅ΠΌ Π΄Π°Π½Π½ΠΈ 3 ΠΏΡΡΠΈ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ ΠΎΡ ΠΊΠ΅ΡΠ°, ΡΠ΅ ΡΡΡΠ±Π²Π°:
1. ΠΠΎΡΡΠ°Π²Π΅ΡΠ΅ Π±Π»ΠΎΠΊ 1 Π² ΠΊΠ΅ΡΠ°
2. ΠΡΠ΅ΠΌΠ°Ρ
Π½Π΅ΡΠ΅ Π±Π»ΠΎΠΊ 1 ΠΎΡ ΠΊΠ΅ΡΠ°
3. ΠΠΎΡΡΠ°Π²Π΅ΡΠ΅ Π±Π»ΠΎΠΊ 2 Π² ΠΊΠ΅ΡΠ°
4. ΠΡΠ΅ΠΌΠ°Ρ
Π½Π΅ΡΠ΅ Π±Π»ΠΎΠΊ 2 ΠΎΡ ΠΊΠ΅ΡΠ°
5. ΠΠΎΡΡΠ°Π²Π΅ΡΠ΅ Π±Π»ΠΎΠΊ 3 Π² ΠΊΠ΅ΡΠ°
5 ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ! Π’Π°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΎΠ±Π°ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΅ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π½Π°; Π²ΡΡΡΠ½ΠΎΡΡ Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΡΠΆΠ΄Π°Π²Π°ΠΌΠ΅ HBase Π΄Π° Π²ΡΡΡΠΈ ΠΊΡΠΏ Π½Π°ΠΏΡΠ»Π½ΠΎ Π±Π΅Π·ΠΏΠΎΠ»Π΅Π·Π½Π° ΡΠ°Π±ΠΎΡΠ°. Π’ΠΎΠΉ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΊΠ΅ΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΏΠΎΡΡΠ°Π²Ρ Π³ΠΈ Π² BlockCache, ΡΠ°ΠΌΠΎ Π·Π° Π΄Π° Π³ΠΈ ΠΈΠ·Ρ Π²ΡΡΠ»ΠΈ ΠΏΠΎΡΡΠΈ Π²Π΅Π΄Π½Π°Π³Π°, Π·Π°ΡΠΎΡΠΎ Π΅ ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Π»Π° Π½ΠΎΠ²Π° ΠΏΠΎΡΡΠΈΡ Π΄Π°Π½Π½ΠΈ. ΠΠ½ΠΈΠΌΠ°ΡΠΈΡΡΠ° Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΡΠ° ΠΏΠΎΠΊΠ°Π·Π²Π° ΡΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° - Garbage Collector ΠΈΠ·Π»ΠΈΠ·Π° ΠΎΡ ΠΌΠ°ΡΠ°Π±Π°, Π°ΡΠΌΠΎΡΡΠ΅ΡΠ°ΡΠ° ΡΠ΅ Π½Π°ΠΆΠ΅ΠΆΠ°Π²Π°, ΠΌΠ°Π»ΠΊΠ°ΡΠ° ΠΡΠ΅ΡΠ° Π² Π΄Π°Π»Π΅ΡΠ½Π° ΠΈ Π³ΠΎΡΠ΅ΡΠ° Π¨Π²Π΅ΡΠΈΡ ΡΠ΅ ΡΠ°Π·ΡΡΡΠΎΠΉΠ²Π°. Π Π½ΠΈΠ΅, Ρ ΠΎΡΠ°ΡΠ° ΠΎΡ ΠΠ’, Π½Π°ΠΈΡΡΠΈΠ½Π° Π½Π΅ Ρ Π°ΡΠ΅ΡΠ²Π°ΠΌΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π΄Π΅ΡΠ°ΡΠ° ΡΠ° ΡΡΠΆΠ½ΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΌΠΈΡΠ»ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΠΎ Π²ΡΠΏΡΠΎΡΠ°.
ΠΠΌΠΈ Π°ΠΊΠΎ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π½Π΅ Π²ΡΠΈΡΠΊΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π² ΠΊΠ΅ΡΠ°, Π° ΡΠ°ΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡ ΡΡΡ , ΡΠ°ΠΊΠ° ΡΠ΅ ΠΊΠ΅ΡΡΡ Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°? ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ°ΠΌΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅Π΄Π° ΠΊΠΎΠ΄ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² 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%, ΡΠ° ΡΠ°ΠΌΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ. Π ΠΎΡΡΠ°Π½Π°Π»ΠΎΡΠΎ ΡΠ° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ, ΠΊΠ°ΡΠΎ Bloom ΡΠΈΠ»ΡΡΠΈ ΠΈΠ»ΠΈ LEAF_INDEX ΠΈ
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π² ΠΊΠΎΠ΄Π° Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° buf.getBlockType().isData() ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΌΠ΅ΡΠ°, Π½ΠΈΠ΅ ΡΠ΅ Π³ΠΎ ΠΎΡΡΠ°Π²ΠΈΠΌ Π² ΠΊΠ΅ΡΠ° Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΡΠ»ΡΡΠ°ΠΉ.
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΡΠ²Π΅Π»ΠΈΡΠΈΠΌ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ Π»Π΅ΠΊΠΎ Π·Π°ΡΠ΅Π³Π½Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Ρ Π΅Π΄Π½ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅. Π ΠΏΡΡΠ²ΠΈΡ ΡΠ΅ΡΡ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ = 20 ΠΈ BlockCache Π±Π΅ΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½. Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π³ΠΎ Π·Π°Π΄Π°Π΄Π΅ΠΌ Π½Π° 23% ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ 100 Π½ΠΈΡΠΊΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ 5 ΠΌΠΈΠ½ΡΡΠΈ, Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Π² ΠΊΠΎΡ ΡΠΎΡΠΊΠ° Π½Π°ΡΡΡΠΏΠ²Π° Π½Π°ΡΠΈΡΠ°Π½Π΅ΡΠΎ:
Π’ΡΠΊ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΠΏΠΎΡΡΠΈ Π²Π΅Π΄Π½Π°Π³Π° Π΄ΠΎΡΡΠΈΠ³Π° ΡΠ°Π²Π°Π½Π° ΠΏΡΠΈ ΠΎΠΊΠΎΠ»ΠΎ 100 Ρ
ΠΈΠ»ΡΠ΄ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°. ΠΠΎΠΊΠ°ΡΠΎ ΠΏΠ»Π°ΡΡΠΈΡΡΡ Π΄Π°Π²Π° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎ 300 Ρ
ΠΈΠ»ΡΠ΄ΠΈ. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ ΡΡΠ½ΠΎ, ΡΠ΅ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½ΠΎΡΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° βΠ±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎβ; ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΡΡΡΠΎ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°.
Π’ΠΎΠ²Π° ΠΎΠ±Π°ΡΠ΅ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΅Π»Π΅Π³Π°Π½ΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠ°ΠΊΡΠ² ΠΏΡΠΎΡΠ΅Π½Ρ ΠΎΡ Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈ, Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΏΡΠΎΡΠΈΠ»Π° Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. ΠΠΎΡΠ°Π΄ΠΈ ΡΠΎΠ²Π° Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅Π³ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅.
ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΡΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΡΠΎΠ²Π°:
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 MB. ΠΠ° ΡΡΠ΅Π΄Π΅Π½ ΠΊΠ»Π°Ρ (~10 ΡΠ΄ΡΠ°) 200-300 MB. ΠΠ° ΡΠ»Π°Π±ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (2-5 ΡΠ΄ΡΠ°) 50-100 MB ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ° Π½ΠΎΡΠΌΠ°Π»Π½ΠΈ (Π½Π΅ ΡΠ° ΡΠ΅ΡΡΠ²Π°Π½ΠΈ Π½Π° ΡΠ΅Π·ΠΈ).
ΠΠ΅ΠΊΠ° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΠ²Π°: Π΄Π° ΡΠ΅ΡΠ΅ΠΌ, ΡΠ΅ ΡΠΌΠ΅ Π·Π°Π΄Π°Π»ΠΈ hbase.lru.cache.heavy.eviction.mb.size.limit = 500, ΠΈΠΌΠ° Π½ΡΠΊΠ°ΠΊΡΠ² Π²ΠΈΠ΄ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ (ΡΠ΅ΡΠ΅Π½Π΅) ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π½Π° Π²ΡΠ΅ΠΊΠΈ ~10 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠ»ΠΊΠΎ Π±Π°ΠΉΡΠ° ΡΠ° Π±ΠΈΠ»ΠΈ ΠΈΠ·Π³ΠΎΠ½Π΅Π½ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π°ΡΠ°:
Π Π°Π·Ρ ΠΎΠ΄ = Π‘ΡΠΌΠ° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ΠΈ Π±Π°ΠΉΡΠΎΠ²Π΅ (MB) * 100 / ΠΠΈΠΌΠΈΡ (MB) - 100;
ΠΠΊΠΎ Π²ΡΡΡΠ½ΠΎΡΡ 2000 MB ΡΠ° Π±ΠΈΠ»ΠΈ ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ, ΡΠΎΠ³Π°Π²Π° ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈΡΠ΅ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ ΡΠ° ΡΠ°Π²Π½ΠΈ Π½Π°:
2000 * 100 / 500 - 100 = 300%
ΠΠ»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°Ρ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π½Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠ° Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΊΠ°ΡΠΎ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΏΡΠΈΠ»Π°Π³Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, Π°ΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΡΠΏΠ°Π΄Π½Π΅, Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΡΠ°ΠΌΠΎ 200 MB ΡΠ° ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ ΠΈ Overhead ΡΡΠ°Π²Π° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π΅Π½ (ΡΠ°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ΠΎΡΠΎ ΠΏΡΠ΅Π²ΠΈΡΠ°Π²Π°Π½Π΅):
200 * 100 / 500 - 100 = -60%
ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΠ° Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅, Π΄ΠΎΠΊΠ°ΡΠΎ Overhead ΡΡΠ°Π½Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π΅Π½.
ΠΠΎ-Π΄ΠΎΠ»Ρ Π΅ Π΄Π°Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΊ ΡΠΎΠ²Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π° ΡΠ΅Π°Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΡΠΌΠ° Π½ΡΠΆΠ΄Π° Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΡΠ΅ Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅ΡΠ΅ 0%, ΡΠΎΠ²Π° Π΅ Π½Π΅Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΠ½ΠΎΠ³ΠΎ Π΅ Π΄ΠΎΠ±ΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ ΠΎΠΊΠΎΠ»ΠΎ 30 - 100%, ΡΠΎΠ²Π° ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ° Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈ ΠΊΡΠ°ΡΠΊΠΎΡΡΠ°ΠΉΠ½ΠΈ ΡΠΊΠΎΠΊΠΎΠ²Π΅.
hbase.lru.cache.heavy.eviction.overhead.coefficient β Π·Π°Π΄Π°Π²Π° ΠΊΠΎΠ»ΠΊΠΎ Π±ΡΡΠ·ΠΎ Π±ΠΈΡ ΠΌΠ΅ ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ°. ΠΠΊΠΎ Π·Π½Π°Π΅ΠΌ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, ΡΠ΅ Π½Π°ΡΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ° ΠΏΡΠ΅Π΄ΠΈΠΌΠ½ΠΎ Π΄ΡΠ»Π³ΠΈ ΠΈ Π½Π΅ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΠ°ΠΊΠ°ΠΌΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΠΌ ΡΠΎΠ²Π° ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π° ΠΏΠΎΡΡΠΈΠ³Π½Π΅ΠΌ Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½Ρ = 0.01. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Overhead (Π²ΠΈΠΆΡΠ΅ ΠΏΠΎ-Π³ΠΎΡΠ΅) ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠΎ ΡΠΎΠ²Π° ΡΠΈΡΠ»ΠΎ ΠΎΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΈ ΠΏΡΠΎΡΠ΅Π½ΡΡΡ Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½. ΠΠ° ΠΏΡΠΈΠ΅ΠΌΠ΅ΠΌ, ΡΠ΅ Overhead = 300% ΠΈ ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½Ρ = 0.01, ΡΠΎΠ³Π°Π²Π° ΠΏΡΠΎΡΠ΅Π½ΡΡΡ Π½Π° ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΡΠ΅ Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ Ρ 3%.
ΠΠΎΠ΄ΠΎΠ±Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° βΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π°Π»ΡΠ³Π°Π½Π΅β ΡΡΡΠΎ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½Π° Π·Π° ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° Overhead (ΠΏΡΠ΅Π²ΠΈΡΠ°Π²Π°Π½Π΅). Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΎΡΠ½ΠΈ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΡ Π² ΠΎΠ±Π΅ΠΌΠ° Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ, ΡΠΎΠ·ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ° Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ. ΠΠ±ΡΠ°ΡΠ½ΠΎΡΠΎ Π½Π°Π»ΡΠ³Π°Π½Π΅ ΠΈΠΌΠ° ΠΎΠ±ΡΡΠ½Π°ΡΠ° Π»ΠΎΠ³ΠΈΠΊΠ°: ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-ΡΠΈΠ»Π½ΠΎ Π΅ ΠΏΡΠ΅Π²ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΡΠ΅ ΠΊΠ΅ΡΠΈΡΠ°Ρ.
ΠΠΎΠ΄ Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅
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 ΠΌΠΈΠ½ΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π΅ΡΠ΅ multi-gets (25 Π½ΠΈΡΠΊΠΈ, ΠΏΠ°ΡΡΠΈΠ΄Π° = 100)
- Π‘Π»Π΅Π΄ 5 ΠΌΠΈΠ½ΡΡΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ΅ΡΠ΅ multi-gets (ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΎΡΡΠ°Π²Π° ΡΠ°ΠΌΠΎ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅)
ΠΡΠ°Π²ΠΈΠΌ Π΄Π²Π΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΈΡ, ΠΏΡΡΠ²ΠΎ hbase.lru.cache.heavy.eviction.count.limit = 10000 (ΠΊΠΎΠ΅ΡΠΎ Π²ΡΡΡΠ½ΠΎΡΡ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΡΡΠ½ΠΊΡΠΈΡΡΠ°) ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ limit = 0 (Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Ρ).
Π ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π° ΠΈ Π½ΡΠ»ΠΈΡΠ° Overshooting Π½Π° 14-71%. ΠΡ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° Backpressure ΠΈ HBase ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΊΠ΅ΡΠΈΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅.
Π Π΅Π³ΠΈΡΡΡΠΈΡΠ°ΠΉΡΠ΅ RegionServer
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΎ (MB): 0, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.0, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): -100, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½Π΅: 0, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 100
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΎ (MB): 0, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.0, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): -100, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½Π΅: 0, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 100
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 2170, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 1.09, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 985, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 1, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 91 < Π½Π°ΡΠ°Π»ΠΎ
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 3763, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 1.08, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 1781, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 2, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 76
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 3306, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 1.07, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 1553, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 3, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 61
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 2508, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 1.06, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 1154, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 4, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 50
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 1824, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 1.04, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 812, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 5, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 42
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 1482, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 1.03, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 641, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 6, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 36
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 1140, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 1.01, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 470, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 7, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 32
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 913, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 1.0, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 356, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 8, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 29
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 912, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.89, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 356, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 9, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 26
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 684, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.76, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 242, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 10, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 24
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 684, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.61, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 242, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 11, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 456, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.51, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 128, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 12, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 21
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 456, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.42, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 128, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 13, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 20
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 456, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 128, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 14, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 15, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.32, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 16, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.31, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 17, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.3, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 18, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.29, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 19, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.27, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 20, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.25, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 21, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.24, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 22, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.22, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 23, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.21, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 24, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.2, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 25, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.17, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 26, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 456, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.17, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 128, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 27, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 18 <Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π° (Π½ΠΎ ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Π΅ ΡΡΡΠ°ΡΠ°)
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 456, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.15, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 128, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 28, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.13, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 29, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.11, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 30, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.09, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 31, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.08, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 32, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.07, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 33, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.06, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 34, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.05, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 35, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.05, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 36, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.04, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 37, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 109, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.04, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): -46, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 37, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22 < ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π°Π»ΡΠ³Π°Π½Π΅
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 798, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.24, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 299, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 38, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 20
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 798, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.29, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 299, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 39, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 18
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 570, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.27, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 185, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 40, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 17
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 456, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.22, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 128, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 41, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 16
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.16, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 42, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 16
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.11, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 43, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 16
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.09, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 44, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 16
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.07, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 45, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 16
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.05, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 46, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 16
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 222, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.04, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 11, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 47, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 16
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 104, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.03, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): -48, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 47, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 21 < ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 684, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.2, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 242, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 48, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 19
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 570, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.23, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 185, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 49, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 18
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.22, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 50, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 18
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.21, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 51, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 18
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.2, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 52, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 18
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.18, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 53, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 18
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.16, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 54, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 18
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 228, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.14, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 14, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 55, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 18
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 112, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.14, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): -44, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 55, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 23 < ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π°Π»ΡΠ³Π°Π½Π΅
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 456, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.26, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 128, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 56, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.31, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 57, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 58, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 59, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 60, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 61, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 62, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 63, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.32, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 64, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 65, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 66, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.32, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 67, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 68, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.32, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 69, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.32, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 70, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 71, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 72, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 73, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 74, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 75, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΈ (MB): 342, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): 71, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½ΠΈΡ: 76, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 22
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΎ (MB): 21, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.33, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): -90, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½Π΅: 76, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 32
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΎ (MB): 0, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.0, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): -100, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½Π΅: 0, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 100
ΠΈΠ·Π³ΠΎΠ½Π΅Π½ΠΎ (MB): 0, ΡΡΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ 0.0, ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ (%): -100, ΡΠ΅ΠΆΡΠΊ Π±ΡΠΎΡΡ Π½Π° ΠΈΠ·Π³ΠΎΠ½Π²Π°Π½Π΅: 0, ΡΠ΅ΠΊΡΡΠΎ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ DataBlock (%): 100
Π‘ΠΊΠ°Π½ΠΈΡΠ°Π½ΠΈΡΡΠ° Π±ΡΡ Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ°Ρ ΡΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ° Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²Π΅ ΡΠ΅ΠΊΡΠΈΠΈ Π½Π° ΠΊΠ΅ΡΠ° - Π΅Π΄ΠΈΠ½ΠΈΡΠ½Π° (ΠΊΡΠ΄Π΅ΡΠΎ Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΡΠ° Π±ΠΈΠ»ΠΈ Π·Π°ΡΠ²Π΅Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ) ΠΈ ΠΌΡΠ»ΡΠΈ (Π΄Π°Π½Π½ΠΈΡΠ΅, βΠ·Π°ΡΠ²Π΅Π½ΠΈβ ΠΏΠΎΠ½Π΅ Π²Π΅Π΄Π½ΡΠΆ, ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΡΡΠΊ):
Π Π½Π°ΠΊΡΠ°Ρ, ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°. ΠΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, ΠΊΠ΅ΡΡΡ Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ HBase Π±Π΅ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½ Ρ ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΈ Π·Π°Π±Π°Π²ΡΠ½Π΅ Π½Π° Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ 5 ΠΌΠΈΠ½ΡΡΠΈ (30 ΡΠΈΠΊΡΠ»Π° Π½Π° ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅).
ΠΡΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ Π² Pull Request
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, 300 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π° Π½Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ Ρ Π°ΡΠ΄ΡΠ΅Ρ ΠΏΡΠΈ ΡΠ΅Π·ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ. Π€Π°ΠΊΡ Π΅, ΡΠ΅ ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΆΠ΄Π° ΠΎΡ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· HDFS, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ ShortCircuitCache (Π½Π°ΡΠΈΡΠ°Π½ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ SSC), ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΊΠ°ΡΠΎ ΠΈΠ·Π±ΡΠ³Π²Π°ΡΠ΅ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ.
ΠΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π΄Π°Π²Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΏΠ΅ΡΠ°Π»Π±Π°, ΡΠΎΠΉ ΡΡΡΠΎ Π² Π΄Π°Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠ° Π² ΠΏΡΠ΅ΡΠΊΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΠΆΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ Π²ΡΡΡΠ΅ Π² ΠΊΠ»ΡΡΠ°Π»ΠΊΠ°ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ ΠΏΡΠ΅Π· ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π²ΡΠ΅ΠΌΠ΅.
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΎΡΡΠ·Π½Π°Ρ
ΠΌΠ΅ ΡΠΎΠ²Π°, ΡΠ°Π·Π±ΡΠ°Ρ
ΠΌΠ΅, ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π΅Π½ ΡΡΠ΅Π· ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠΈΠ² ΠΎΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΈ 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 Ρ
ΠΈΠ»ΡΠ΄ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² 64 KB Π±Π»ΠΎΠΊΠΎΠ²Π΅ Ρ Π΅Π΄ΠΈΠ½ ΠΊΠ΅Ρ ΠΈΠ·ΠΈΡΠΊΠ²Π° 78 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠΎΠΊΠ°ΡΠΎ ΠΏΡΠΈ 5 ΠΊΠ΅ΡΠ° ΡΠΎΠ²Π° ΠΎΡΠ½Π΅ΠΌΠ° 16 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π’Π΅Π·ΠΈ. ΠΈΠΌΠ° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ~5 ΠΏΡΡΠΈ. ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ ΠΎΡ Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ°, Π΅ΡΠ΅ΠΊΡΡΡ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌ Π·Π° ΠΌΠ°Π»ΡΠΊ Π±ΡΠΎΠΉ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ; ΡΠΎΠΉ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΠΈΠ³ΡΠ°Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠ° ΡΠΎΠ»Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 50 ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π½ΠΈΡΠΊΠΈ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΎ, ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΡΠΎΡ Π½Π° SSC ββΠΎΡ 6 ΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅ Π΄Π°Π²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
ΠΠ΅Π»Π΅ΠΆΠΊΠ° 1: ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΠ΅ΡΡΠ° ΡΠ° Π΄ΠΎΡΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ (Π²ΠΈΠΆΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ»Ρ), Π±ΡΡ Π° ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈ 3 ΡΠ΅ΡΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π±ΡΡ Π° ΠΎΡΡΠ΅Π΄Π½Π΅Π½ΠΈ.
ΠΠ΅Π»Π΅ΠΆΠΊΠ° 2: Π£Π²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π΄ΠΎΡΡΡΠΏ Π΅ ΡΡΡΠΎΡΠΎ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ°ΠΌΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Π΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-Π±Π°Π²Π΅Π½.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅ ΠΎΠ±Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΡΡΠΎΡΠ½ΠΈ, ΡΠ΅ Π·Π° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΠ»ΡΡΠ°Ρ Ρ HBase, ΡΠΎΠ²Π° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΎ. Π’ΡΠΊ βΠΎΡΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅β ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π΄Π° Π²ΡΡΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° Π²ΠΈΡΠΈ Π½Π° ΠΊΠ»ΡΡΠ°Π»ΠΊΠΈ.
Π’ΡΠΊ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅, ΡΠ΅ ΠΊΠ°ΡΠΎ ΡΡΠ»ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΡΠΎΡ Π½Π° ΠΊΠ΅ΡΠΎΠ²Π΅ΡΠ΅ Π΄Π°Π²Π° ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. ΠΠΌΠ° ΠΎΠ±Π°ΡΠ΅ ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π»ΠΈΠ²ΡΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° SSC ββ= 3. Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΅ ΠΎΠΊΠΎΠ»ΠΎ 3.3 ΠΏΡΡΠΈ. ΠΠΎ-Π΄ΠΎΠ»Ρ ΡΠ° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΡΠΈΡΠ΅ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ΅ΡΠΈΠΈ.
ΠΠΎΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Ρ ΠΎΠΊΠΎΠ»ΠΎ 2.8 ΠΏΡΡΠΈ. Π Π°Π·Π»ΠΈΠΊΠ°ΡΠ° Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΡΠΌΠ°, Π½ΠΎ ΠΌΠ°Π»ΠΊΠ°ΡΠ° ΠΡΠ΅ΡΠ° Π²Π΅ΡΠ΅ Π΅ ΡΠ°ΡΡΠ»ΠΈΠ²Π° ΠΈ ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΈΠΌΠ° Π²ΡΠ΅ΠΌΠ΅ Π΄Π° ΠΏΠΎΡΠ΅ΡΠ°Π²Π° ΡΡΠΈΠ»ΠΈΡΠ΅ ΠΈ Π΄Π° Ρ
ΠΎΠ΄ΠΈ Π½Π° ΡΡΠΎΡΠΈ.
ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π΅Π½ Π΅ΡΠ΅ΠΊΡ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π³ΡΡΠΏΠΎΠ² Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ HDFS (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Spark ΠΈ Ρ.Π½.), ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ΅ ΠΊΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π»Π΅ΠΊ (Ρ.Π΅. ΡΠ΅ΠΏΡΠ΅Π»ΡΡ Π΅ ΠΎΡ ΡΡΡΠ°Π½Π°ΡΠ° Π½Π° HDFS ΠΊΠ»ΠΈΠ΅Π½ΡΠ°) ΠΈ ΠΈΠΌΠ° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΠΌΠΎΡΠ½ΠΎΡΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° . ΠΠ° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, Π½Π΅ΠΊΠ° ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΠΊΠ°ΠΊΡΠ² Π΅ΡΠ΅ΠΊΡ ΡΠ΅ ΠΈΠΌΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° BlockCache ΠΈ SSC Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΎΡ HBase.
ΠΠΈΠΆΠ΄Π° ΡΠ΅, ΡΠ΅ ΠΏΡΠΈ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠ»ΠΎΠ²ΠΈΡ Π΅ΡΠ΅ΠΊΡΡΡ Π½Π΅ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π³ΠΎΠ»ΡΠΌ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΡΠΈ ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ (ΡΠ΅ΡΠ΅Π½Π΅ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°), Π½ΠΎ ΡΡΠΊ Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΠΈΠ·ΡΡΡΠ³Π½Π΅ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ 80K. ΠΠ°Π΅Π΄Π½ΠΎ Π΄Π²Π΅ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ Π΄ΠΎ 4 ΠΏΡΡΠΈ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅.
ΠΠ°ΠΏΡΠ°Π²Π΅Π½ Π΅ ΠΈ PR Π·Π° ΡΠ°Π·ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ
Π Π½Π°ΠΊΡΠ°Ρ, Π±Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΡΠ°Π²Π½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Ρ ΡΠΈΡΠΎΠΊΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, Cassandra ΠΈ HBase.
ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠΎΠ²Π°, ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΌΠ΅ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΈ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° YCSB ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π·Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΠΎΡ Π΄Π²Π° Ρ ΠΎΡΡΠ° (ΠΎΠ±ΡΠΎ 800 Π½ΠΈΡΠΊΠΈ). ΠΡ ΡΡΡΠ°Π½Π° Π½Π° ΡΡΡΠ²ΡΡΠ° - 4 ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ Π½Π° RegionServer ΠΈ Cassandra Π½Π° 4 Ρ ΠΎΡΡΠ° (Π½Π΅ ΡΠ΅Π·ΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ ΡΠ°Π±ΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΡΠΎ ΠΈΠΌ). ΠΠΎΠΊΠ°Π·Π°Π½ΠΈΡΡΠ° ΠΈΠ΄Π²Π°Ρ ΠΎΡ ΡΠ°Π±Π»ΠΈΡΠΈ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΈ:
HBase β 300 GB Π½Π° HDFS (100 GB ΡΠΈΡΡΠΈ Π΄Π°Π½Π½ΠΈ)
Cassandra - 250 GB (ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½Ρ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ = 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 Π±ΡΡ Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Π² Π³ΡΠ°ΡΠΈΠΊΠΈ Π½Π° Excel:
ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅Π·ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π΄Π° ΡΠ΅ ΡΡΠ°Π²Π½ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅Π·ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΏΡΠΈ ΡΠ΅Π·ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π°Ρ 450 Ρ
ΠΈΠ»ΡΠ΄ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°.
ΠΠ°Π΄ΡΠ²Π°ΠΌΠ΅ ΡΠ΅, ΡΠ΅ ΡΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π° Π½Π° Π½ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²ΡΠ»Π½ΡΠ²Π°ΡΠ°ΡΠ° Π±ΠΎΡΠ±Π° Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com