Π₯Π°ΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большим числом ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

ИдСя ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ€ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ спонтанно ΠΈΠ· дискуссии Π² коммСнтариях ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠ΅ «КоС-Ρ‡Ρ‚ΠΎ ΠΎΠ± inodeΒ».

Π₯Π°ΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большим числом ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ спСцификой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°ΡˆΠΈΡ… сСрвисов являСтся Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ³Ρ€ΠΎΠΌΠ°Π΄Π½ΠΎΠ³ΠΎ числа ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Ρƒ нас порядка сотСн Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚ Ρ‚Π°ΠΊΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. И ΠΌΡ‹ Π½Π°Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π³Ρ€Π°Π±Π΅Π»ΡŒΠΊΠΈ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΎ Π½ΠΈΠΌ ΠΏΡ€ΠΎΡˆΠ»ΠΈΡΡŒ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ дСлюсь нашим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΡƒ ΠΈ пригодится.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° пСрвая: Β«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. По Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ berez ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽ, Ρ‡Ρ‚ΠΎ для 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 (https://github.com/youzee/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

Π”Π° ΠΈ Ρ„Π°ΠΉΠ»-Ρ‚ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ, Ссли ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ имя.
Π’Ρ‹Π²ΠΎΠ΄ β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°.

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ поиски ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡ€ΠΈ построСнии индСкса ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΏΡ€ΠΈ большом числС Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π°Π±Π»ΡŽΠ΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ со всСми Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ послСдствиями. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚: https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout#Hash_Tree_Directories

МоТно ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту ΠΎΠΏΡ†ΠΈΡŽ, но… поиск Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ нСпрСдсказуСмо Π΄ΠΎΠ»Π³ΠΈΠΌ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ всСх Ρ„Π°ΠΉΠ»ΠΎΠ².

 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.

Π•Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ быстроС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ berez β€” ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сортировки Ρƒ 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 β€” Live Syncing (Mirror) Daemon. Он Ρ‚ΠΎΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· rsync, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с использованиСм inotify ΠΈ fsevents ΠΈ запускаСт ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились ΠΈΠ»ΠΈ измСнились.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΡˆΠ΅ΡΡ‚Π°Ρ: ΠΊΠ°ΠΊ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΡ‚ΠΎ Π³Ρ€ΡƒΠ·ΠΈΡ‚ диски

Π­Ρ‚ΠΎ Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ Π·Π½Π°ΡŽΡ‚ всС, Π½ΠΎ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹: для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° дисковой подсистСмы Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° iotop β€” Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ top, Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ процСссы, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ диски.

Π₯Π°ΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большим числом ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠšΡΡ‚Π°Ρ‚ΠΈ, старый Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ top Ρ‚ΠΎΠΆΠ΅ позволяСт ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ² с дисками ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Для этого Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: Load Average ΠΈ IOwait.

Π₯Π°ΠΊΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большим числом ΠΌΠ΅Π»ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько процСссов стоят Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° обслуТиваниС, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ большС 2Ρ… β€” ΡƒΠΆΠ΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ. ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° бэкап-сСрвСра ΠΌΡ‹ допускаСм Π΄ΠΎ 6-8, послС этого ситуация считаСтся Π½Π΅ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΉ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ β€” насколько процСссор занят дисковыми опСрациями. IOwait >10% β€” ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° для бСспокойства, хотя Ρƒ нас Π½Π° сСрвСрах со спСцифичСским ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΌ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±Ρ‹Π²Π°Π΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ 40-50%, ΠΈ это Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π½ΠΎΡ€ΠΌΠ°.

На этом Π·Π°ΠΊΠΎΠ½Ρ‡Ρƒ, хотя навСрняка Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π°ΠΌ Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ, с ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Ρƒ ΠΆΠ΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ описаний интСрСсных Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… случаСв.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com