Yandex
Обновяване на предпочитанията за бисквитки

Дисково пространство на сървъра

Преди да говорим за наличното дисково пространство, си струва да кажем няколко думи за единиците информационен обем. Единицата за цифрова информация е байт (byte), който се състои от 8 бита.
Съществуват две системи за измерване: десетична и двоична. Международната система единици (SI) използва десетичната система, в която увеличаващите префикси са кратни на 1000 = 103. А в двоичните системи, като IEC и ISO, са кратни на 1024 = 210.
 

Многобайтови единици от десетичната система единици

НазваниеОбозначениеЗначениеСъответствие
килобайт / kilobytekB103 = 10001 000 B
мегабайт / megabyteMB106 = 100021 000 KB = 1 000 000 B
гегабайт / gigabyteGB109 = 100031 000 MB = 1 000 000 KB
терабайт / terabyteTB1012 = 100041 000 GB = 1 000 000 MB
петабайт / petabytePB1015 = 100051 000 TB = 1 000 000 GB
 

Многобайтовые единицы двоичной системы единиц

НазваниеОбозначениеЗначениеСъответствие
кибибайт / kibibyteKiB210 = 10241 024 B
мебибайт / mebibyteMiB220 = 102421 024 KB = 1 048 576 B
гибибайт / gibibyteGiB230 = 102431 024 MB = 1 048 576 KB
тебибайт / tebibyteTiB240 = 102441 024 GB = 1 048 576 MB
пебибайт / pebibytePiB250 = 102451 024 TB = 1 048 576 GB
 

Нека сега да разгледаме това на практика

Нека да вземем за пример SSD диск Samsung 860 EVO 4TB с капацитет 4 000 787 030 016 байта [4,00 TB]. В бинарно изражение капацитетът на диска е приблизително 3,64 TiB.
В Linux често се използва помощната програма df за определяне на обема на даден диск и ние ще я използваме по-нататък.
Системата по подразбиране е двоичната. За удобство можете да използвате командата 
df -h /dev/sdb1където вместо /dev/sdb1 трябва да посочите или устройство, или точка за монтиране:
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       3.7T  903G  2.6T  26% /backup

За да видите капацитета на диска в десетична система, използвайте командата
df -H /dev/sdb1 или
df -si /dev/sdb1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       4.0T  970G  2.9T  26% /backup

 
И от пръв поглед изглежда точно. Но нека видим какво ще стане, ако изпишем обема в килобайти / кибибайти. В десетичната система:
df --block-size=kB /dev/sdb1
Filesystem       1kB-blocks        Used    Available Use% Mounted on
/dev/sdb1      3999089472kB 969324938kB 2829708461kB  26% /backup2

И в двоичен формат:
df --block-size=K /dev/sdb1  или 
df --block-size=KiB /dev/sdb1 или дори просто
df /dev/sdb1
Filesystem       1K-blocks       Used   Available Use% Mounted on
/dev/sdb1      3905360812K 946606384K 2763387168K  26% /backup2

 
Нека отбележим използването и наличното дисково пространство и да го сравним с общото.
946 606 384 KiB + 2 763 387 168 KiB = 3 709 993 552 KiB, което изобщо не съответства на стойността 3 905 360 812 KiB.
Всъщност причината е проста - всичко е свързано с файловата система в Linux. В този случай това е EXT4. По подразбиране Linux маркира 5% от всеки раздел на диска като място, резервирано за потребителя root.

Можете да проверите това с командата:
tune2fs -l /dev/sdb1 |grep -i 'Block count'
Block count:              976754385
Reserved block count:     48837719

Нека да го проверим. 48837719 / 976754385 и се умножава по 100. Получаваме 5%.
 

Важно

За по-големи дискове и при условие, че се използва файловата система ext4, това резервиране може да се окаже прекомерно и може да се намали леко.
При файловата система ext3 не се препоръчва да правите това, а е по-добре винаги да поддържате резерв от 5%, тъй като когато дискът е запълнен на повече от 95%, се получава фрагментация на файловете и вследствие на това се влошава производителността. Файловата система ext4 няма този проблем.
 

Обобщение

Имайте предвид, че по подразбиране разполагате с 5% по-малко налично дисково пространство. И не бъркайте kB и KiB.
28 Apr 2024, 13:41:41