Что такое лимит inode и как с ним бороться?

Что такое лимит inode и как с ним бороться? inode это индексный дескриптор для файлов и каталогов в файловых системах UNIX подобных ОС, например файловой системы UFS. inode является одной из настроек механизма квот файловой системы для пользователей и обычно используется как защита от файловых и decompression-бомб.

Обычно для установки и снятия показаний используют специальные программы, обычно состоящие в составе пакета quota UNIX подобных ОС и не доступны обычному смертному пользователю, а поэтому при покупке хостинга нужно уточнять у хостинг-провайде и желательно через эл. почту (что бы следы оставались) о том, какой у него там лимит inode для хостинг акаунтов.

inode используется для каждого файла или каталога, 1 inode = 1 файл или каталог. Вот, что про лимит inode пишут на hostgator.com:

http://support.hostgator.com/articles/pre-sales-policies/rules-terms-of-service/inode-limits

Support Portal Home » Pre-Sales & Policies » Rules & Terms of Service » Inode Limits

An inode is a data structure used to keep information about a file on your hosting account. The number of inodes indicates the number of files and folders you have. This includes everything on your account, emails, files, folders, anything you store on the server.
Shared and Reseller

There is currently an limit of 100k/250k inodes on our shared accounts.
What is the 100k/250k inode limit?

Shared and Reseller servers only allow 100,000 files per cPanel. This is a "Soft limit" meaning that while the limit is reached, you will still be able to upload files. However once the account passes the 100,000 file threshold it will no longer be included in our weekly backups. Additionally, if the account happens to exceed 250,000 files then it will be in violation of our Terms of Service and can result in possible suspension.

TOS Inode violations can consist of the following (however not limited to):
Continuously publishing and deleting large numbers of files (i.e. 10,000+)
If the cPanel account exceeds 250,000 inodes, Please refer to section 7b) of our Terms of Service.

VPS

VPS accounts come with a default inode limit of 1,000,000 to better protect the file system. The limit can be increased if there is a legitimate reason to have it increased. To make a request, please email our support team.

Reference: VPS Terms of Service

Linux Dedicated Severs

We do not enforce a specific inode limit on dedicated servers. Since you have root access and exclusive use of the server, you can allocate resources how you feel is best, up to the physical limits of the server and file system. However, please note that an excessive number of inodes on any server does negatively affect performance.

------------------------------------------------------

http://www.hostgator.com/tos/tos.php?/tos.shtml
7b.) INODES
The use of more than 250,000 inodes on any shared account may potentially result in a warning first, and if no action is taken future suspension. Accounts found to be exceeding the 100,000 inode limit will automatically be removed from our backup system to avoid over-usage, however databases will still be backed up. Every file (a webpage, image file, email, etc) on your account uses up 1 inode.

Sites that slightly exceed our inode limits are unlikely to be suspended; however, accounts that constantly create and delete large numbers of files on a regular basis, have hundreds of thousands of files, or cause file system damage may be flagged for review and/or suspension. The primary cause of excessive inodes seems to be due to users leaving their catchall address enabled, but never checking their primary account mailbox. Over time, tens of thousands of messages (or more) build up, eventually pushing the account past our inode limit. To disable your default mailbox, login to cPanel and choose "Mail", then "Default Address", "Set Default Address", and then type in: :fail: No such user here.

Что такое лимит inode и как с ним бороться? В приведённых выше правилах хостинга hostgator говорится о том, что лимит inode для акаунтов виртуального хостинга составляет 100.000 inode, т.е. 100.000 файлов с учётом каталогов, хотя если лимит inode 100.000 превышен, то пользователи и дальше смогут загружать файлы но, когда лимит inode превысит 250.000 inode, то это будет считаться нарушением пользовательского соглашения с последующим удалением/блокировкой акаунта.

Для виртуальных частных серверов (VPS) hostgator устанавливает лимит inode в 1.000.000 (один миллион), а для выделенных серверов (Dedicated Severs) лимит inode отсутствует.

Поэтому когда при закачке файлов через ФТП менеджер вы получите сообщение "553 Can't open that file: Disk quota exceeded", то это как раз говорит о том, что ваша учётная запись превысила допустимый лимит inode.

Обычно в UNIX подобных ОС дисковая квота для отдельных пользователей устанавливается командой:

# edquota -u 
# edquota -u vasya
Disk quotas for user vasya (uid 1001):
 
Filesystem blocks soft hard inodes soft hard
/dev/sda2 2043743 52428800 0 162 2000 0

Команда откроет файл в редакторе редактор, где можно будет отредактировать настройки квот. Формат файла имеет следующий формат: одна строка — одна файловая система. Строка состоит из разделенных пробелом, идущих друг за другом, полей:

  • Поля EDQUOTA
    • Filesystem — файловая система (имя раздела, на котором она располагается)
    • Blocks — количество блоков, используемых пользователем в данный момент (блок равен одному килобайту)
    • Soft — мягкий лимит на количество используемых блоков
    • Hard — жесткий лимит на количество используемых блоков
    • Inodes — количество inode (файлов), используемых пользователем
    • Soft — мягкий лимит на количество inode
    • Hard — жесткий лимит на количество inode

 

В UNIX подобных ОС, собственно как и в Windows, для каждого или всех пользователей можно использовать несколько ограничений - мягкое и жесткое. Когда пользователь превысит мягкое ограничение, он сможет узнать об этом только если он использует консоль и тогда сможет удалить лишние файлы или каталоги до того как мягкое ограничение превратится в жёсткое. Обычно хостеры устанавливают значение жесткого ограничения в ноль и в таких условия мягкое ограничение становится жестким.

В некоторых случаях лимит inode для отдельного пользователя может быть увеличен хостером по дополнительному и обоснованному запросу в тех. поддержку. Так, что перед покупкой хостинга поинтересуйтесь какой у них лимит inode и можно ли его увеличить по запросу, иначе можете пожалеть! Например вы купили хостинг с 10 ГБ свободного места и лимитом inode в 100.000, вам нужно загрузить 300.000 файлов размером по 1 кб но, вы не сможете этого сделать из-за лимита inode в 100.000 и при этом реально используя десятки МВ вместо ГБ возможно ещё нарушите пользовательское соглашение!:)

Также при заливке файлов не сильно ветвите структуру каталогов имхо дополнительные каталоги особой пользы не несут, а inod-ы пожерают! На бесплатных хостингах лимит inode как мягкий так и жесткий обычно равен 30-50.000, а на некоторых жлобских и вовсе от 10.000 до 20.000, на платных обычно от 100.000 до 250.000.

Методов борьбы с улетучиванием свободных inod-ов не так уж много, я пока знаю только один - это зачистка дискового пространства от лишних файлов, если дисковое пространство занято сайтом на котором активирована система кэширования, то обычно после истечения срока (валидности) файлов кеша они обычно само не удаляются, а зависают в системе, что приводит к улетучиванию свободных inod-ов!

При борьбе с нехваткой inod-ов также следует иметь ввиду разрастания почтовых файлов в вашем хост акаунте и файлов генерируемых почтовыми рассылками типа GNU Mailman и т.д..

Если встретили объявление про безлимитный хостинг, знайте - ЭТО ЛОХОТРОН! Всему есть свои пределы! А лимит inode как повод для оптимизации своего контента...

Автор: Олег Головский

Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора

Добавить комментарий


Защитный код
Обновить

2 megabytes