Π₯Π°ΠΊΠΎΠ²Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с голям Π±Ρ€ΠΎΠΉ ΠΌΠ°Π»ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

Π˜Π΄Π΅ΡΡ‚Π° Π½Π° статията сС Ρ€ΠΎΠ΄ΠΈ спонтанно ΠΎΡ‚ дискусия Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ към статията «НСщо Π·Π° inodeΒ».

Π₯Π°ΠΊΠΎΠ²Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с голям Π±Ρ€ΠΎΠΉ ΠΌΠ°Π»ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

Π€Π°ΠΊΡ‚ Π΅, Ρ‡Π΅ Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° спСцифика Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ услуги Π΅ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ количСство ΠΌΠ°Π»ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅ с ΠΎΠΊΠΎΠ»ΠΎ стотици Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚ΠΈ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ. Π‘Ρ€Π΅Ρ‰Π½Π°Ρ…ΠΌΠ΅ сС с някои ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΈ ΠΈ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ…ΠΌΠ΅ ΠΏΡ€Π΅Π· тях.

Π—Π°Ρ‚ΠΎΠ²Π° сподСлям нашия ΠΎΠΏΠΈΡ‚, ΠΌΠΎΠΆΠ΅ Π½Π° някого Π΄Π° ΠΌΡƒ Π΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΠΏΡŠΡ€Π²ΠΈΡΡ‚: «Няма място Π½Π° устройството»

ΠšΠ°ΠΊΡ‚ΠΎ Π±Π΅ спомСнато Π² горСпосочСната статия, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ свободнитС Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма са Π½Π°Π»ΠΈΡ‡Π½ΠΈ, Π½ΠΎ 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. По Π·Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°Ρ‚Π° Π½Π° потрСбитСля 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;
  }
}

ΡΡŠΡ€Π²ΡŠΡ€ {
  ΡΠ»ΡƒΡˆΠ°ΠΉ *: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

И Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° сС създадС, Π°ΠΊΠΎ сС смСни ΠΈΠΌΠ΅Ρ‚ΠΎ.
Извод β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ Π² ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π°.

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

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ Ρ‚Π°Π·ΠΈ опция, но… Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ» ΠΏΠΎ ΠΈΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° станС нСпрСдсказуСмо дълго ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° всички Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

 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.

ΠžΡ‰Π΅ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ потрСбитСля 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

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΠ΅Ρ‚: Как Π΄Π° синхронизирамС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅

ИмамС ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΈ количСства Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° сС Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Ρ‚ Π½Π° Π²Ρ‚ΠΎΡ€ΠΈ ΡΡŠΡ€Π²ΡŠΡ€, Π·Π° Π΄Π° сС избСгнС… Π€Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ постоянно сС записват, Π·Π°Ρ‚ΠΎΠ²Π°, Π·Π° Π΄Π° сС ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚ Π·Π°Π³ΡƒΠ±ΠΈΡ‚Π΅, трябва Π΄Π° Π³ΠΈ ΠΊΠΎΠΏΠΈΡ€Π°ΠΌΠ΅ максимално Π±ΡŠΡ€Π·ΠΎ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅: Rsync over SSH.

Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±ΡŠΡ€ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π°ΠΊΠΎ Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° сС ΠΏΡ€Π°Π²ΠΈ Π½Π° всСки няколко сСкунди. А Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ са ΠΌΠ½ΠΎΠ³ΠΎ. Π”ΠΎΡ€ΠΈ Π°ΠΊΠΎ Π½Π΅ Π³ΠΈ ΠΊΠΎΠΏΠΈΡ€Π°ΠΌΠ΅ β€” всС ΠΏΠ°ΠΊ трябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ сС Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠ»ΠΎ, Π° сравнСниСто Π½Π° няколко ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ„Π°ΠΉΠ»Π° Π΅ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° дисковСтС.

Π’.Π΅. трябва Π΄Π° Π·Π½Π°Π΅ΠΌ Π²Π΅Π΄Π½Π°Π³Π° ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π°ΠΌΠ΅, Π±Π΅Π· Π΄Π° стартирамС сравнСниС всСки ΠΏΡŠΡ‚.

БпасСниС β€” lsyncd. Lsyncd β€” Π”Π΅ΠΌΠΎΠ½ Π·Π° ΠΆΠΈΠ²ΠΎ синхронизиранС (Mirror). Π’ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ Ρ‡Ρ€Π΅Π· rsync, Π½ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ слСди Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° inotify ΠΈ fsevents ΠΈ стартира ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ само Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ са сС появили ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ ΡˆΠ΅ΡΡ‚ΠΈ: ΠΊΠ°ΠΊ Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠΉ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π° дисковСтС

ВСроятно всСки Π·Π½Π°Π΅ Ρ‚ΠΎΠ²Π°, Π½ΠΎ всС ΠΏΠ°ΠΊ Π·Π° цСлостта Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°Ρ‚Π°: Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π½Π° дискoΠ²Π°Ρ‚Π° подсистСма ΠΈΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° iotop β€” ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° top, Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° процСситС, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π°ΠΉ-Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ дисковСтС.

Π₯Π°ΠΊΠΎΠ²Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с голям Π±Ρ€ΠΎΠΉ ΠΌΠ°Π»ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, старият Π΄ΠΎΠ±ΡŠΡ€ top ΡΡŠΡ‰ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с дисковСтС ΠΈΠ»ΠΈ Π½Π΅. Π—Π° Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° Π΄Π²Π° Π½Π°ΠΉ-подходящи ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π°: Load Average ΠΈ IOwait.

Π₯Π°ΠΊΠΎΠ²Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с голям Π±Ρ€ΠΎΠΉ ΠΌΠ°Π»ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅

ΠŸΡŠΡ€Π²ΠΈΡΡ‚ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠ»ΠΊΠΎ процСси Ρ‡Π°ΠΊΠ°Ρ‚ Π² опашка Π·Π° обслуТванС, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 2 β€” Π½Π΅Ρ‰ΠΎ Π½Π΅ Π΅ Π½Π°Ρ€Π΅Π΄. ΠŸΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ допускамС Π΄ΠΎ 6-8, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ситуацията сС счита Π·Π° нСстандартна.

Вторият β€” ΠΊΠΎΠ»ΠΊΠΎ Π·Π°Π΅Ρ‚ Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΠΎΡ€ΡŠΡ‚ с дискови ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. IOwait >10% Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° притСснСниС, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΏΡ€ΠΎΡ„ΠΈΠ» Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ стабилно ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ 40-50%, ΠΈ Ρ‚ΠΎΠ²Π° наистина Π΅ Π½ΠΎΡ€ΠΌΠ°.

На Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°ΠΌ, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ със сигурност ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΈ, с ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ смС сС сблъсквали, с удоволствиС Ρ‰Π΅ ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ ΠΈ описания Π½Π° интСрСсни дСйствитСлни случаи.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster