ΠΠ΄Π΅Ρ ΡΡΠ°ΡΡΠΈ ΡΠΎΠ΄ΠΈΠ»Π°ΡΡ ΡΠΏΠΎΠ½ΡΠ°Π½Π½ΠΎ ΠΈΠ· Π΄ΠΈΡΠΊΡΡΡΠΈΠΈ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
ΠΊ ΡΡΠ°ΡΡΠ΅
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π°ΡΠΈΡ
ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ³ΡΠΎΠΌΠ°Π΄Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΌΠ΅Π»ΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ Π½Π°Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠΎΡΠ΅Π½ ΡΠ΅ΡΠ°Π±Π°ΠΉΡ ΡΠ°ΠΊΠΈΡ
Π΄Π°Π½Π½ΡΡ
. Π ΠΌΡ Π½Π°ΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠ΅ ΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ Π³ΡΠ°Π±Π΅Π»ΡΠΊΠΈ ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ ΠΏΡΠΎΡΠ»ΠΈΡΡ.
ΠΠΎΡΡΠΎΠΌΡ Π΄Π΅Π»ΡΡΡ Π½Π°ΡΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΡ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠ΅ΡΠ²Π°Ρ: Β«No space left on deviceΒ»
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π² Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΅ΡΡΡ, Π° Π²ΠΎΡ inode Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈΡΡ.
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΡ
ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ
inodes ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ df -ih
:
ΠΠ΅ Π±ΡΠ΄Ρ ΠΏΠ΅ΡΠ΅ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΡΠ°ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΊΡΠ°ΡΠΊΠΎ, ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠ΅ Π΅ΡΡΡ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΠΈ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ
, ΡΠ°ΠΊ ΠΈ Π±Π»ΠΎΠΊΠΈ Π΄Π»Ρ ΠΌΠ΅ΡΠ°-ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΎΠ½ΠΈ ΠΆΠ΅ inodes (index node). ΠΡ
ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ (ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎΠ± 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. Π―, Π½Π΅ Π΄ΠΎΠ»Π³ΠΎ Π΄ΡΠΌΠ°Ρ, Π·Π°Π΄Π°Π» ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° ΡΠΎ Π»ΠΈ 8ΠΊ, ΡΠΎ Π»ΠΈ 16ΠΊ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ 4ΠΊ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅ΡΠΈΠ² ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ. Π Π²ΡΠ΅ Π±ΡΠ»ΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ²Π½ΠΎ Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠ°ΠΊ ΡΠ°ΠΌ ΡΡΠΎΡΠ°Π΄ΠΆ Π½Π΅ Π²ΡΡΠ΅Π» ΠΈΠ· ΡΡΡΠΎΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄ΠΈΡΠΊ Π±ΡΠ» ΠΆΠΈΠ². ΠΠΎΡΡΠ°Π²ΠΈΠ² Π΄ΠΈΡΠΊ Π² ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅Π»ΠΎΠ²ΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ, ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡΡΠΏΡΠΈΠ·: Π½Π΅ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ°. ΠΡΠΈΠΏΠ»ΡΠ»ΠΈ. ΠΠ°Π½Π½ΡΠ΅ Π΅ΡΡΡ, Π²ΡΠ΅ Ρ
ΠΎΡΠΎΡΠΎ, Π½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. ΠΡΠΎΡΠ΅ΡΡΠΎΡΡ i386 ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π½Π΅ ΡΠΌΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ Π±Π»ΠΎΠΊΠ°, Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ, Π° ΠΎΠ½Π° ΡΠΎΠ²Π½ΠΎ 4ΠΊ. Π ΠΎΠ±ΡΠ΅ΠΌ, Π΄Π΅Π»ΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΈΠ»ΠΈΡ ΠΈΠ· user space, Π²ΡΠ΅ Π±ΡΠ»ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈ ΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΠΏΠ°ΡΠ»ΠΈ. ΠΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ β Π³ΡΠ³Π»ΠΈΡΠ΅ ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΡΠΈΠ»ΠΈΡΡ fuseext2
. ΠΠΎΡΠ°Π»Ρ: ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄ΡΠΌΡΠ²Π°ΡΡ Π²ΡΠ΅ ΠΊΠ΅ΠΉΡΡ Π½Π°ΠΏΠ΅ΡΠ΅Π΄, ΠΈΠ»ΠΈ Π½Π΅ ΡΡΡΠΎΠΈΡΡ ΠΈΠ· ΡΠ΅Π±Ρ ΡΡΠΏΠ΅ΡΠ³Π΅ΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ Π΄Π»Ρ Π΄ΠΎΠΌΠΎΡ
ΠΎΠ·ΡΠ΅ΠΊ.
UPD. ΠΠΎ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
ΠΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ°Π»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΡ.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠ΅ΡΠ°Π±Π°ΠΉΡΠ½ΡΠΉ Π΄ΠΈΡΠΊ Π±ΡΠ» Π·Π°Π±ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ, ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ.
ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΡΠΎΡΠ½ΠΎΠ΅.
Π ΠΈΡΠΎΠ³Π΅ ΠΌΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π±Π°Π»Π°Π½Ρ, ΡΠΌΠ΅Π½ΡΡΠΈΠ² ΡΠΈΡΠ»ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ².
Π§ΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠΈΠΉ Π°ΡΡ
ΠΈΠ². Π£ΡΠΈΡΡΠ²Π°Ρ Π½Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡ, ΠΌΡ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π»ΠΈ Π² ΠΎΠ΄ΠΈΠ½ Π°ΡΡ
ΠΈΠ² Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π·Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈ Π°ΡΡ
ΠΈΠ²Π°ΡΠΈΡ 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;
}
}
server {
listen *:8082;
location ~ ^/hydra/(d+)/(d+)/(.*)$ {
root /home/filestorage;
file_in_unzip_archivefile "/home/filestorage/hydra/\/\.zip";
file_in_unzip_extract "$2/\";
file_in_unzip;
}
}
Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π°ΠΏΡΡΡΠΈΠΌΠΎΠ² Π½Π° Π²ΡΡΠ΅ΡΡΠΎΡΡΠ΅ΠΌ nginx:
upstream storage {
server server.com:8081;
server server.com:8082;
}
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
- ΠΠ»ΠΈΠ΅Π½Ρ ΠΈΠ΄Π΅Ρ Π½Π° front nginx
- Front nginx ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ΄Π°ΡΡ ΡΠ°ΠΉΠ» Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΠΏΡΡΡΠΈΠΌΠ°, Ρ.Π΅. Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
- ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ»Π° Π½Π΅Ρ β ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ΄Π°ΡΡ ΡΠΎ Π²ΡΠΎΡΠΎΠ³ΠΎ Π°ΠΏΡΡΡΠΈΠΌΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΡΠ°Π΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΡΠ°ΠΉΠ» Π²Π½ΡΡΡΠΈ Π°ΡΡ ΠΈΠ²Π°
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠΎΡΠ°Ρ: ΠΎΠΏΡΡΡ Β«No space left on deviceΒ»
ΠΡΠΎ Π²ΡΠΎΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΡ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ», ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ³Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΡΠ° Π½Π΅Ρ. ΠΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΠΈ ΡΠ½ΠΎΠ²Π° ΠΏΡΡΠ°Π΅ΠΌΡΡ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ.
ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ.
ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΡΠΎΠ²Π΅ΡΠΊΠ° inodes Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π°Π»Π° β ΠΈΡ
ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ
.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΌΠ΅ΡΡΠ° β ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅.
ΠΠΎΠ΄ΡΠΌΠ°Π»ΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π° Π½Π° ΡΡΠΎ Π΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠΏΡΡΡ Π½Π΅Ρ: Maximum number of files per directory: ~1.3 Γ 10^20
ΠΠ° ΠΈ ΡΠ°ΠΉΠ»-ΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΈΠΌΡ.
ΠΡΠ²ΠΎΠ΄ β ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°.
ΠΠ°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΠΏΠΎΠΈΡΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ Ρ
Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²ΡΡΠ΅ΠΊΠ°ΡΡΠΈΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌΠΈ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΡΡ:
ΠΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡ ΠΎΠΏΡΠΈΡ, Π½ΠΎβ¦ ΠΏΠΎΠΈΡΠΊ ΡΠ°ΠΉΠ»Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ Π΄ΠΎΠ»Π³ΠΈΠΌ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ΅ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ².
tune2fs -O "^dir_index" /dev/sdb3
Π ΠΎΠ±ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎΡΠ°Π»Ρ: ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ β ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠ»ΠΎΡ ΠΎ. Π’Π°ΠΊ Π΄Π΅Π»Π°ΡΡ Π½Π΅ Π½Π°Π΄ΠΎ.
ΠΠ±ΡΡΠ½ΠΎ Π² ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
ΡΠΎΠ·Π΄Π°ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, ΠΏΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ Π±ΡΠΊΠ²Π°ΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ Π΄Π°ΡΠ°ΠΌ, Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΡΠΎ ΡΠΏΠ°ΡΠ°Π΅Ρ.
ΠΠΎ ΠΎΠ±ΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² β ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠ»ΠΎΡ
ΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΡ
ΡΠ°Π·Π±ΠΈΡΡ ΠΏΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌ β ΡΠΎΠ³Π΄Π° ΡΠΌ. ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠ΅ΡΡΡ: ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², Π΅ΡΠ»ΠΈ ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎ
Π Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΠΌΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ β ΠΊΠΎΠΌΠ°Π½Π΄Π° ls
.
ΠΠΊ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° 4772098 ΡΠ°ΠΉΠ»Π°Ρ
:
$ time ls /home/app/express.repository/offercache/ >/dev/null
real 0m30.203s
user 0m28.327s
sys 0m1.876s
30 ΡΠ΅ΠΊΡΠ½Π΄β¦ ΠΌΠ½ΠΎΠ³ΠΎΠ²Π°ΡΠΎ Π±ΡΠ΄Π΅Ρ. ΠΡΠΈΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² user space, Π° Π²ΠΎΠ²ΡΠ΅ Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΡ ΡΠ΄ΡΠ°.
ΠΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ΡΡΡ:
$ 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
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΡΠ°Ρ: ΠΠ°ΠΊ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Π² real-time
ΠΠΌΠ΅Π΅ΠΌ Π²ΡΠ΅ ΡΠ΅ ΠΆΠ΅ ΠΎΠ³ΡΠΎΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠΊΠ°ΠΏΠΈΡΡ Π½Π° Π²ΡΠΎΡΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅β¦ Π€Π°ΠΉΠ»Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠΈΡΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΈΠΌΠ΅ΡΡ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΏΠΎΡΠ΅ΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅: Rsync over SSH.
ΠΡΠΎ Ρ ΠΎΡΠΎΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ°Π· Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄. Π ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΡ Π½Π΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ β ΡΠΎ Π½Π°Π΄ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ, Π° ΡΡΠ°Π²Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² β ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° Π΄ΠΈΡΠΊΠΈ.
Π’.Π΅. Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΡΠ°Π·Ρ Π·Π½Π°ΡΡ, ΡΡΠΎ Π½Π°Π΄ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ, Π±Π΅Π· Π·Π°ΠΏΡΡΠΊΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·.
Π‘ΠΏΠ°ΡΠ΅Π½ΠΈΠ΅ β lsyncd
. Lsyncd
β
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΡΠ°Ρ: ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ, ΠΊΡΠΎ Π³ΡΡΠ·ΠΈΡ Π΄ΠΈΡΠΊΠΈ
ΠΡΠΎ Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΡ Π²ΡΠ΅, Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ: Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° iotop
β Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ top
, Π½ΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΡ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π΄ΠΈΡΠΊΠΈ.
ΠΡΡΠ°ΡΠΈ, ΡΡΠ°ΡΡΠΉ Π΄ΠΎΠ±ΡΡΠΉ top ΡΠΎΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ² Ρ Π΄ΠΈΡΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ Π΄Π²Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: Load Average ΠΈ IOwait.
ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΡΠΎΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π½Π° ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±ΡΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ 2Ρ
β ΡΠΆΠ΅ ΡΡΠΎ-ΡΠΎ ΠΈΠ΄Π΅Ρ Π½Π΅ ΡΠ°ΠΊ. ΠΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π±ΡΠΊΠ°ΠΏ-ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΌΡ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΠΌ Π΄ΠΎ 6-8, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΡΠ°ΡΠΈΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ Π½Π΅ΡΡΠ°ΡΠ½ΠΎΠΉ.
ΠΡΠΎΡΠΎΠΉ β Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π·Π°Π½ΡΡ Π΄ΠΈΡΠΊΠΎΠ²ΡΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ. IOwait >10% β ΠΏΡΠΈΡΠΈΠ½Π° Π΄Π»Ρ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΡΠ²Π°, Ρ ΠΎΡΡ Ρ Π½Π°Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΡΠΈΠ»Π΅ΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΡΠ²Π°Π΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ 40-50%, ΠΈ ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π½ΠΎΡΠΌΠ°.
ΠΠ° ΡΡΠΎΠΌ Π·Π°ΠΊΠΎΠ½ΡΡ, Ρ
ΠΎΡΡ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π½Π°ΠΌ Π½Π΅ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ, Ρ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ΠΌ Π±ΡΠ΄Ρ ΠΆΠ΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ
ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΡΠ»ΡΡΠ°Π΅Π².
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com