ΠΠ΄Π΅ΡΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΡΠΎΠ΄ΠΈ ΡΠΏΠΎΠ½ΡΠ°Π½Π½ΠΎ ΠΎΡ Π΄ΠΈΡΠΊΡΡΠΈΡ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΊΡΠΌ ΡΡΠ°ΡΠΈΡΡΠ° .

Π€Π°ΠΊΡ Π΅, ΡΠ΅ Π²ΡΡΡΠ΅ΡΠ½Π°ΡΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° Π½Π°ΡΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ Π΅ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ°Π»ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅ Ρ ΠΎΠΊΠΎΠ»ΠΎ ΡΡΠΎΡΠΈΡΠΈ ΡΠ΅ΡΠ°Π±Π°ΠΉΡΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π‘ΡΠ΅ΡΠ½Π°Ρ
ΠΌΠ΅ ΡΠ΅ Ρ Π½ΡΠΊΠΎΠΈ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈ ΠΈ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ
ΠΌΠ΅ ΠΏΡΠ΅Π· ΡΡΡ
.
ΠΠ°ΡΠΎΠ²Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠΌ Π½Π°ΡΠΈΡ ΠΎΠΏΠΈΡ, ΠΌΠΎΠΆΠ΅ Π½Π° Π½ΡΠΊΠΎΠ³ΠΎ Π΄Π° ΠΌΡ Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½.
ΠΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ ΠΏΡΡΠ²ΠΈΡΡ: Β«ΠΡΠΌΠ° ΠΌΡΡΡΠΎ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎΒ»
ΠΠ°ΠΊΡΠΎ Π±Π΅ ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠΎ Π² Π³ΠΎΡΠ΅ΠΏΠΎΡΠΎΡΠ΅Π½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅, ΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ, Π½ΠΎ inodes ΡΠ° ΡΠ²ΡΡΡΠΈΠ»ΠΈ.
ΠΡΠΎΡΡ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΈ inodes ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° df -ih:

ΠΡΠΌΠ° Π΄Π° ΠΏΡΠ΅ΡΠ°Π·ΠΊΠ°Π·Π²Π°ΠΌ ΡΡΠ°ΡΠΈΡΡΠ°, Π² ΠΊΡΠ°ΡΡΠ΅, Π½Π° Π΄ΠΈΡΠΊΠ° ΠΈΠΌΠ° ΠΊΠ°ΠΊΡΠΎ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π·Π° ΠΌΠ΅ΡΠ°ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠΎ ΡΠ° inodes (ΠΈΠ½Π΄Π΅ΠΊΡΠ΅Π½ Π²ΡΠ·Π΅Π»). ΠΡΠΎΡΡ ΠΈΠΌ ΡΠ΅ Π·Π°Π΄Π°Π²Π° ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° (ΡΡΠ°Π²Π° Π΄ΡΠΌΠ° Π·Π° ext2 ΠΈ Π½Π΅ΠΉΠ½ΠΈ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΡΠΈ) ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ. ΠΠ°Π»Π°Π½ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ inodes ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Π½Π° Π±Π°Π·Π° ΡΡΠ΅Π΄Π½ΠΎΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ, Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π±Π°Π»Π°Π½ΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΌΠ΅ΡΡΠΈ ΠΊΡΠΌ Π±ΡΠΎΡ Π½Π° inodes β ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅.
Π Linux Π²Π΅ΡΠ΅ ΡΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΈ ΠΎΠΏΡΠΈΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ Π±Π°Π»Π°Π½Ρ, ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ ΠΏΡΠ΅Π΄ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ°Ρ Π² ΡΠ°ΠΉΠ»Π° /etc/mke2fs.conf.
ΠΠ°ΡΠΎΠ²Π° ΠΏΡΠΈ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π°ΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ΅Π· mke2fs ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΆΠ΅Π»Π°Π½ ΠΏΡΠΎΡΠΈΠ».
ΠΡΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΎΡ ΡΠ°ΠΉΠ»Π°:
small = {
blocksize = 1024
inode_size = 128
inode_ratio = 4096
}
big = {
inode_ratio = 32768
}
largefile = {
inode_ratio = 1048576
blocksize = -1
}
ΠΠ·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΎΠΏΡΠΈΡΡΠ° Β«-TΒ» ΠΏΡΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° mke2fs. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ½ΠΎ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π°ΠΊΠΎ Π½ΡΠΌΠ°ΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π² ΠΌΠ°Π½ΡΠ°Π»ΠΈΡΠ΅ Π·Π° mke2fs.conf ΠΈ mke2fs.
ΠΠ΅ΠΎΠ±ΡΡΠ΄Π΅Π½Π°ΡΠ° Π² ΡΠΏΠΎΠΌΠ΅Π½Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡ Π΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠ° Π΄Π°Π½Π½ΠΈ. ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π΅, ΡΠ΅ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π΅ ΡΠΌΠΈΡΠ»Π΅Π½ΠΎ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠ°, Π° Π·Π° ΠΌΠ°Π»ΠΊΠΈ β ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°ΡΠ° ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡ, ΠΊΠ°ΡΠΎ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°.
ΠΡΠΊΠΎΠ³Π° ΡΠΈ ΠΏΠΎΠΌΠΈΡΠ»ΠΈΡ
, ΡΠ΅ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΌΠΈ ΡΡΡΠ±Π²Π° ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠ°. Π‘ΡΠ°Π²Π°ΡΠ΅ Π²ΡΠΏΡΠΎΡ Π·Π° Π΄ΠΎΠΌΠ°ΡΠ½ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ, Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° WD Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ARM. ΠΠ΅Π· ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π° ΡΠ΅ Π·Π°ΠΌΠΈΡΠ»Ρ, Π·Π°Π΄Π°Π΄ΠΎΡ
ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠ° 8k ΠΈΠ»ΠΈ 16k Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ 4k, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠΈΡ
ΡΠΏΠ΅ΡΡΡΠ²Π°Π½Π΅ΡΠΎ. Π Π²ΡΠΈΡΠΊΠΎ Π±Π΅ΡΠ΅ ΡΡΠ΄Π΅ΡΠ½ΠΎ, ΡΠΎΡΠ½ΠΎ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ°ΠΌΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠ·Π»Π΅Π·Π΅ ΠΎΡ ΡΡΡΠΎΡ, Π° Π΄ΠΈΡΠΊΠ° ΠΎΡΡΠ°Π½Π° Π½Π΅ΠΏΠΎΠΊΡΡΠ½Π°Ρ. ΠΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ Π΄ΠΈΡΠΊΠ° Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΠΊΠΎΠΌΠΏΡΡΡΡ Ρ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Intel ΠΏΡΠΎΡΠ΅ΡΠΎΡ, ΠΏΠΎΠ»ΡΡΠΈΡ
ΠΈΠ·Π½Π΅Π½Π°Π΄Π°: Π½Π΅ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠ°. Π‘ΠΈΡΡΠ°ΡΠΈΡΡΠ° ΡΡΠ°Π½Π° ΡΠ»ΠΎΠΆΠ½Π°. ΠΠ°Π½Π½ΠΈΡΠ΅ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ, Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄, Π½ΠΎ Π½Π΅ ΠΌΠΎΠ³Π° Π΄Π° Π³ΠΈ ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ i386 ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π½Π° Π±Π»ΠΎΠΊΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π° ΡΡ Π΅ ΡΠΎΡΠ½ΠΎ 4k. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ°, Π²ΡΠΈΡΠΊΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠΈ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΈΠ»ΠΈΡΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π²ΡΠΈΡΠΊΠΎ Π±Π΅ΡΠ΅ Π±Π°Π²Π½ΠΎ ΠΈ ΡΡΠΆΠ½ΠΎ, Π½ΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π±ΡΡ
Π° ΡΠΏΠ°ΡΠ΅Π½ΠΈ. ΠΠ° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠΈΡΠ΅ ΡΠ΅ β ΠΏΠΎΡΡΡΡΠ΅ΡΠ΅ ΠΏΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° fuseext2. ΠΠΎΡΠ°Π»Π΅Π½ ΡΡΠΎΠΊ: ΠΈΠ»ΠΈ Π΄Π° ΠΎΠ±ΠΌΠΈΡΠ»ΠΈΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ, ΠΈΠ»ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½Π° ΡΡΠΏΠ΅ΡΠ³Π΅ΡΠΎΠΉ ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π·Π° Π΄ΠΎΠΌΠ°ΠΊΠΈΠ½ΠΈ.
UPD. ΠΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΡΡΠΎΡΠ½ΡΠ²Π°ΠΌ, ΡΠ΅ Π·Π° i386 ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° Π±Π»ΠΎΠΊΠ° Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°Π΄Π²ΠΈΡΠ°Π²Π° 4ΠΊ, Π½ΠΎ Π½Π΅ Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΎΡΠ½ΠΎ 4ΠΊ, Ρ.Π΅. Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΈ ΡΠ° 1ΠΊ ΠΈ 2ΠΊ.
Π ΡΠ°ΠΊΠ°, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ°Π²Π°Ρ ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅.
ΠΡΡΠ²ΠΎ, ΡΠ±Π»ΡΡΠΊΠ°Ρ ΠΌΠ΅ ΡΠ΅ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΅ΡΠ°Π±Π°ΠΉΡΠ½ΠΈΡΡ Π΄ΠΈΡΠΊ Π±Π΅ΡΠ΅ Π·Π°ΠΏΡΠ»Π½Π΅Π½ Ρ Π΄Π°Π½Π½ΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ΅ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΠ° Π²ΡΠΎΡΠΎ ΠΌΡΡΡΠΎ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠΏΠ΅ΡΠ½ΠΎ.
Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ΡΠΈΡ
ΠΌΠ΅, ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ Π±Π°Π»Π°Π½ΡΠ°, ΠΊΠ°ΡΠΎ Π½Π°ΠΌΠ°Π»ΠΈΠΌ Π±ΡΠΎΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅.
ΠΠ° Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ Π±ΡΠΎΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅, ΡΠ΅ΡΠΈΡ
ΠΌΠ΅ Π΄Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π² Π΅Π΄ΠΈΠ½ ΠΎΠ±Ρ Π°ΡΡ
ΠΈΠ². Π‘ΡΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΠΉΠΊΠΈ ΡΠ΅ ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½ΠΈ, ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ
ΠΌΠ΅ Π² Π΅Π΄ΠΈΠ½ Π°ΡΡ
ΠΈΠ² Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅ ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Ρ
ΠΌΠ΅ Π°ΡΡ
ΠΈΠ²ΠΈΡΠ°Π½Π΅ Ρ cron Π·Π°Π΄Π°ΡΠ° Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ ΠΏΡΠ΅Π· Π½ΠΎΡΡΠ°.
ΠΠ·Π±ΡΠ°Ρ ΠΌΠ΅ zip Π°ΡΡ ΠΈΠ². Π ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ tar, Π½ΠΎ Ρ Π½Π΅Π³ΠΎ ΠΈΠΌΠ° Π΅Π΄Π½Π° ΡΡΡΠ΄Π½ΠΎΡΡ: ΡΠΎΠΉ Π½ΡΠΌΠ° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΠ° ΠΏΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ (Π½Π΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Β«tarΒ» Π΅ ΡΡΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ Β«Tape ArchiveΒ», Π½Π°ΡΠ»Π΅Π΄ΡΡΠ²ΠΎ ΠΎΡ Π»Π΅Π½ΡΠΎΠ²ΠΈΡΠ΅ Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ), Ρ.Π΅. Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΠ°ΠΉΠ» Π² ΠΊΡΠ°Ρ Π½Π° Π°ΡΡ ΠΈΠ²Π° β ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΠ΅Π»ΠΈΡ Π°ΡΡ ΠΈΠ², ΡΡΠΉ ΠΊΠ°ΡΠΎ Π² Π½Π΅Π³ΠΎ Π½ΡΠΌΠ° ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ» ΡΠΏΡΡΠΌΠΎ Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π°ΡΡ ΠΈΠ²Π°. Π Π·Π°ΡΠΎΠ²Π° ΡΠΎΠ²Π° Π΅ Π΄ΡΠ»Π³Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΡΠΈ zip Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅: ΡΠΎΠΉ ΠΈΠΌΠ° ΡΡΡΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π² Π°ΡΡ ΠΈΠ²Π°, Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ» Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π΄Π΅ ΠΎΠΏΡΠΈΡ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Β«0Β», ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π²Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π±ΡΡ Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ Π² gzip.
ΠΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΈΠ·ΡΠ΅Π³Π»ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΡΠ΅Π· nginx, ΠΈ ΡΠΏΠΎΡΠ΅Π΄ ΡΡΠ°ΡΠΎΡΠΎ API, ΡΠ΅ ΠΏΠΎΡΠΎΡΠ²Π° ΠΏΡΠΎΡΡΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠ°:
http://www.server.com/hydra/20170416/0453/3bd24ae7-1df4-4d76-9d28-5b7fcb7fd8e5
ΠΠ° Π΄Π° ΡΠ°Π·ΠΏΠ°ΠΊΠΎΠ²Π²Π°ΠΌΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π»Π΅ΡΡΡΠΎ, Π½Π°ΠΌΠ΅ΡΠΈΡ ΠΌΠ΅ ΠΈ ΡΠ²ΡΡΠ·Π°Ρ ΠΌΠ΅ ΠΌΠΎΠ΄ΡΠ»Π° nginx-unzip-module () ΠΈ Π½Π°ΡΡΡΠΎΠΈΡ ΠΌΠ΅ Π΄Π²Π° Π°ΠΏΡΡΡΠΈΠΌΠ°.
Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ ΡΠ°ΠΊΠ°Π²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ:

ΠΠ²Π°ΡΠ° Ρ
ΠΎΡΡΠ° Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ
Π° ΡΠ°ΠΊΠ°:
server {
listen *:8081;
location / {
root /home/filestorage;
}
}ΡΡΡΠ²ΡΡ {
ΡΠ»ΡΡΠ°ΠΉ *:8082;
ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ~ ^/hydra/(d+)/(
d+)/(.)$ {
ΠΊΠΎΡΠ΅Π½ /home/filestorage;
file_in_unzip_archivefile "/home/filestorage/hydra/$1/$2.zip";
file_in_unzip_extract "$2/$3";
file_in_unzip;
}
}
Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° Π°ΠΏΡΡΡΠΈΠΌΠΈΡΠ΅ Π·Π° ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΈΡ nginx:
upstream storage {
server server.com:8081;
server server.com:8082;
}
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ:
- ΠΠ»ΠΈΠ΅Π½ΡΡΡ ΠΎΡΠΈΠ²Π° Π½Π° front nginx
- Front nginx ΠΎΠΏΠΈΡΠ²Π° Π΄Π° ΠΎΡΠ΄Π°Π΄Π΅ ΡΠ°ΠΉΠ» ΠΎΡ ΠΏΡΡΠ²ΠΈΡ Π°ΠΏΡΡΡΠΈΠΌ, Ρ.Π΅. Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°
- ΠΠΊΠΎ ΡΠ°ΠΉΠ»ΡΡ Π»ΠΈΠΏΡΠ²Π° β ΠΎΠΏΠΈΡΠ²Π° Π΄Π° ΠΎΡΠ΄Π°Π΄Π΅ ΠΎΡ Π²ΡΠΎΡΠΈΡ Π°ΠΏΡΡΡΠΈΠΌ, ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈ ΡΠ°ΠΉΠ»Π° Π² Π°ΡΡ ΠΈΠ²Π°
ΠΡΠΎΡΠ°ΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΎΡΠ½ΠΎΠ²ΠΎ βΠΡΠΌΠ° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎβ
Π’ΠΎΠ²Π° Π΅ Π²ΡΠΎΡΠ°ΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°Ρ
ΠΌΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ°ΠΉΠ», ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ ΠΎΠΏΠ»Π°ΠΊΠ²Π°, ΡΠ΅ Π½ΡΠΌΠ° ΠΌΡΡΡΠΎ. ΠΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π° ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΄Π° Π³ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ.
ΠΠΎΠ»ΡΡΠ°Π²Π° ΡΠ΅.
ΠΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ°ΠΊΠ°:

ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΈΠ½ΠΎΠ΄ΠΈΡΠ΅ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π° Π½ΠΈΡΠΎ β ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΈ.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΌΡΡΡΠΎ β ΡΡΡΠΎΡΠΎ.
ΠΠΎΠΌΠΈΡΠ»ΠΈΡ
ΠΌΠ΅, ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΈΠΌΠ° ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π° Π½Π° ΡΠΎΠ²Π° ΠΈΠΌΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎ Π½Π΅: ΠΠ°ΠΊΡΠΈΠΌΠ°Π»Π΅Π½ Π±ΡΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ: ~1.3 Γ 10^20
Π ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅, Π°ΠΊΠΎ ΡΠ΅ ΡΠΌΠ΅Π½ΠΈ ΠΈΠΌΠ΅ΡΠΎ.
ΠΠ·Π²ΠΎΠ΄ β ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ Π² ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π°.
ΠΠΎ-Π½Π°ΡΠ°ΡΡΡΠ½ΠΈΡΠ΅ ΡΡΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΊΠ°Π·Π°Ρ Π°, ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Π΅ Π² Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π½Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΏΡΠΈ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Ρ ΠΊΠΎΠ»ΠΈΠ·ΠΈΠΈ Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΈΠ·ΡΠΈΡΠ°ΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΈΡΠΈ. ΠΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΠΊ:
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΡΠ°Π·ΠΈ ΠΎΠΏΡΠΈΡ, Π½ΠΎβ¦ ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ» ΠΏΠΎ ΠΈΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ Π΄ΡΠ»Π³ΠΎ ΠΏΡΠΈ ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
tune2fs -O "^dir_index" /dev/sdb3
Π ΠΎΠ±ΡΠΈ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΠ°ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π±ΠΎΡΠΈ.
ΠΠΎΡΠ°Π»: ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° β ΡΠΎΠ²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π΅ Π»ΠΎΡΠΎ. ΠΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΡΠ°ΠΊΠ°.
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π² ΡΠ°ΠΊΠΈΠ²Π° ΡΠ»ΡΡΠ°ΠΈ ΡΡΠ·Π΄Π°Π²Π°Ρ Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ·ΠΈ, ΠΏΠΎ ΠΏΡΡΠ²ΠΈΡΠ΅ Π±ΡΠΊΠ²ΠΈ Π½Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ Π΄Π°ΡΠΈ, Π² ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠ»ΡΡΠ°ΠΈ ΡΠΎΠ²Π° ΡΠΏΠ°ΡΡΠ²Π°.
ΠΠΎ ΠΎΠ±ΡΠΈΡΡ Π±ΡΠΎΠΉ Π½Π° ΠΌΠ°Π»ΠΊΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ β ΡΠΎΠ²Π° Π²ΡΠ΅ ΠΏΠ°ΠΊ Π΅ Π»ΠΎΡΠΎ, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΡΠ° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ·ΠΈ β ΡΠΎΠ³Π°Π²Π° Π²ΠΈΠΆΡΠ΅ ΠΏΡΡΠ²ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
Π’ΡΠ΅ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ: ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ ΡΠΏΠΈΡΡΠΊΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π°ΠΊΠΎ ΡΠ΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ
Π Π½Π°ΡΠ°ΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠ°ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅, ΡΠΌΠ΅ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°Π»ΠΈ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠ°ΠΊ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° ls.
ΠΠΎΠ±ΡΠ΅, Π½Π΅ΠΊΠ° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Ρ 477209 ΡΠ°ΠΉΠ»Π°:
$ time ls /home/app/express.repository/offercache/ >/dev/null
real 0m30.203s
user 0m28.327s
sys 0m1.876s
30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ... ΠΌΠ°Π»ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ Π΅. ΠΡΠΎΠ±Π΅Π½ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΎΡΠΈΠ²Π° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π° Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ.
ΠΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅:
$ time find /home/app/express.repository/offercache/ >/dev/null
real 0m3.714s
user 0m1.998s
sys 0m1.717s
3 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. 10 ΠΏΡΡΠΈ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ.
Π£ΡΠ°!
UPD.
ΠΡΠ΅ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ β Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΡΡΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ ls
time ls -U /home/app/express.repository/offercache/ >/dev/null
real 0m2.985s
user 0m1.377s
sys 0m1.608s
ΠΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅ΡΠ²ΡΡΡΠΈ: Π²ΠΈΡΠΎΠΊ LA ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅
ΠΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΡΠΈΡΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ Π΅Π΄Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π½Π° Π΄ΡΡΠ³Π°. ΠΡΠΈ ΡΠΎΠ²Π° ΡΠ΅ΡΡΠΎ LA Π½Π°ΠΈΡΡΠΈΠ½Π° ΡΠΊΠ°ΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΎ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ°ΠΌΠΈΡΠ΅ Π΄ΠΈΡΠΊΠΎΠ²Π΅.
ΠΠ°ΠΉ-ΡΠ°Π·ΡΠΌΠ½ΠΎΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ β Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ SSD. ΠΠ°ΠΈΡΡΠΈΠ½Π° Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ. ΠΡΠΏΡΠΎΡΡΡ Π΅ ΡΠ°ΠΌΠΎ Π² ΡΠ΅Π½Π°ΡΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΅ΡΠ°Π±Π°ΠΉΡΠ½ΠΈΡΠ΅ SSD.
ΠΠΎ Π°ΠΊΠΎ Π΄ΠΈΡΠΊΠΎΠ²Π΅ΡΠ΅ ΡΠ° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ, ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Ρ, Π° ΡΠΎΠ²Π° Π΅ ΠΈ ΠΏΡΠΎΠ΄Π°ΠΊΡΡΠ½ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΡΠ΄Π΅ΡΠΎ ΠΏΡΠ΅ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ Π²ΡΠ·Π³Π»Π°ΡΠΈ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ? ΠΠΌΠ° ΠΏΠΎΠ½Π΅ Π΄Π²Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°: nice ΠΈ ionice.
nice β Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°, ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ ΡΠ΅Π΄ΡΠ»Π΅ΡΠ° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΊΠ²Π°Π½ΡΠΎΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π΄ΡΡΠ³ΠΈΡΠ΅, ΠΏΠΎ-ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ.
Π Π½Π°ΡΠ°ΡΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π΅ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π° Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ nice Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ (19 β ΡΠΎΠ²Π° Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ, -20 (ΠΌΠΈΠ½ΡΡ 20) β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π΅Π½).
ionice β ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° Π½Π° Π²Ρ
ΠΎΠ΄Π°/ΠΈΠ·Ρ
ΠΎΠ΄Π° (I/O scheduling)
ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ RAID ΠΈ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ° Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ (ΡΠ»Π΅Π΄ Π½Π΅ΡΡΠΏΠ΅ΡΠ΅Π½ ΡΠ΅Π±ΡΡ ΠΈΠ»ΠΈ Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° RAID ΠΌΠ°ΡΠΈΠ²Π° ΡΠ»Π΅Π΄ ΡΠΌΡΠ½Π° Π½Π° Π΄ΠΈΡΠΊ), Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈΠΌΠ° ΡΠΌΠΈΡΡΠ» Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΡΡ ΠΏΠΎ-Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΠΎ. ΠΠ° ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°:
echo 1000 > /proc/sys/dev/raid/speed_limit_max
ΠΡΠΎΠ±Π»Π΅ΠΌ ΠΏΠ΅Ρ: ΠΠ°ΠΊ Π΄Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅
ΠΠΌΠ°ΠΌΠ΅ ΡΡΡΠΈΡΠ΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π°ΡΡ ΠΈΠ²ΠΈΡΠ°Ρ Π½Π° Π²ΡΠΎΡΠΈ ΡΡΡΠ²ΡΡ, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅β¦ Π€Π°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ, Π·Π°ΡΠΎΠ²Π°, Π·Π° Π΄Π° ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Ρ Π·Π°Π³ΡΠ±ΠΈΡΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΈ ΠΊΠΎΠΏΠΈΡΠ°ΠΌΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π±ΡΡΠ·ΠΎ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅: Rsync over SSH.
Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡΡ Π²Π°ΡΠΈΠ°Π½Ρ, Π°ΠΊΠΎ Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ°Π²ΠΈ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠΎΡΠΈ Π°ΠΊΠΎ Π½Π΅ Π³ΠΈ ΠΊΠΎΠΏΠΈΡΠ°ΠΌΠ΅ β Π²ΡΠ΅ ΠΏΠ°ΠΊ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ, Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΡΠ°ΠΉΠ»Π° Π΅ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²Π΅ΡΠ΅.
Π’.Π΅. ΡΡΡΠ±Π²Π° Π΄Π° Π·Π½Π°Π΅ΠΌ Π²Π΅Π΄Π½Π°Π³Π° ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΊΠΎΠΏΠΈΡΠ°ΠΌΠ΅, Π±Π΅Π· Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ.
Π‘ΠΏΠ°ΡΠ΅Π½ΠΈΠ΅ β lsyncd. Lsyncd β . Π’ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΡΡΠ΅Π· rsync, Π½ΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»Π΅Π΄ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° inotify ΠΈ fsevents ΠΈ ΡΡΠ°ΡΡΠΈΡΠ° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ.
ΠΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅ΡΡΠΈ: ΠΊΠ°ΠΊ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠΎΠΉ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π° Π΄ΠΈΡΠΊΠΎΠ²Π΅ΡΠ΅
ΠΠ΅ΡΠΎΡΡΠ½ΠΎ Π²ΡΠ΅ΠΊΠΈ Π·Π½Π°Π΅ ΡΠΎΠ²Π°, Π½ΠΎ Π²ΡΠ΅ ΠΏΠ°ΠΊ Π·Π° ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° ΠΊΠ°ΡΡΠΈΠ½Π°ΡΠ°: Π·Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° Π΄ΠΈΡΠΊoΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° iotop β ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° top, Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΉ-Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΄ΠΈΡΠΊΠΎΠ²Π΅ΡΠ΅.

ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΡΡΠ°ΡΠΈΡΡ Π΄ΠΎΠ±ΡΡ top ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π΄ΠΈΡΠΊΠΎΠ²Π΅ΡΠ΅ ΠΈΠ»ΠΈ Π½Π΅. ΠΠ° ΡΠΎΠ²Π° ΠΈΠΌΠ° Π΄Π²Π° Π½Π°ΠΉ-ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ°: Load Average ΠΈ IOwait.

ΠΡΡΠ²ΠΈΡΡ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈ ΡΠ°ΠΊΠ°Ρ Π² ΠΎΠΏΠ°ΡΠΊΠ° Π·Π° ΠΎΠ±ΡΠ»ΡΠΆΠ²Π°Π½Π΅, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 2 β Π½Π΅ΡΠΎ Π½Π΅ Π΅ Π½Π°ΡΠ΅Π΄. ΠΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΡΡΡΠ²ΡΡΠΈ Π΄ΠΎΠΏΡΡΠΊΠ°ΠΌΠ΅ Π΄ΠΎ 6-8, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΡΠΈΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΡΡΠΈΡΠ° Π·Π° Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°.
ΠΡΠΎΡΠΈΡΡ β ΠΊΠΎΠ»ΠΊΠΎ Π·Π°Π΅Ρ Π΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ Ρ Π΄ΠΈΡΠΊΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. IOwait >10% Π΅ ΠΏΡΠΈΡΠΈΠ½Π° Π·Π° ΠΏΡΠΈΡΠ΅ΡΠ½Π΅Π½ΠΈΠ΅, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ Π½Π° Π½Π°ΡΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΠΏΡΠΎΡΠΈΠ» Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ 40-50%, ΠΈ ΡΠΎΠ²Π° Π½Π°ΠΈΡΡΠΈΠ½Π° Π΅ Π½ΠΎΡΠΌΠ°.
ΠΠ° ΡΠΎΠ²Π° ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°ΠΌ, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠΌΠ΅ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°Π»ΠΈ, Ρ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΠ²ΠΈΠ΅ ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π°ΠΌ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ»ΡΡΠ°ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
