Максимальное количество индексных дескрипторов
Fatal error Call to a member function get() on a non-object in
Зачастую причиной неработающего сайта является ошибка – переполнения лимита индексных дескрипторов. Что же это такое и как с этим бороться?
Если объяснять просто: индексный дескриптор – это описатель файла, он содержит все необходимые для работы с файлом служебные атрибуты.
Через индексный дескриптор осуществляется доступ к содержимому файлов. Более детально и технически об этом написано на wiki. Можно сказать, что чем больше количество любых файлов находиться на хостинге, тем больше расход лимита индексных дескрипторов.
Дело в том, что на хостингах зачастую ограничивают допустимое значение индексных дескрипторов в соответствии с тарифным планом. Не путайте этот параметр с объемом дискового пространства, который обычно указывают в характеристиках тарифного плана.
В cPanel Accelerated переполнение индексных дескрипторов выглядит так (красный индикатор):

Максимальное количество индексных дескрипторов
Если вы активно занимаетесь наполнением сайта или карточек товара в каталоге, заливаете картинки, расширяете функционал сайта плагинами, вы расходуете не только дисковое пространство, но и лимит по количеству индексных дескрипторов. И в момент переполнения лимита, некоторые функции сайта могут перестать работать.
Вы можете наблюдать различные ошибки:
Fatal error Call to a member function get() on a non-object inFatal error Call to a member function get() on a non-object in
В каждом конкретном случае необходимо найти решение данной проблемы, но в основном все сводится к двум простым действиям (которые можно реализовать по разному):
1) Поиск и удаление мусорных файлов
Важно понимать, что находиться в папках вашего сайта на хостинге. За продолжительный период работы сайта в «закромах» сайта скапливается множества «мусорных» файлов – временные файлы, остаточные файлы от удаленных расширений, забытые архивы, дубли картинок и т.д. У каждого движка свои особенности «складирования» подобных файлов, так же нужно учитывать особенности вашего хостера.
Поиск подобных файлов удобно производить из панели управления хостинга в «диспетчере файлов» обращая внимания на количество файлов во всех доступных папках (так же можно запросить эту информацию у техподдержки хостинга).
В зависимости от найденного мусора, принимаем действия по его устранению, производим настройку по предотвращения его образования.
Перед любым действием рекомендуется сделать резервную копию проекта.
В моем примере, большое количество файлов находилось в двух папках:
/image/cache/ – Папка кэша движка OpenCart.
/.cagefs/tmp/ – Каталог для хранения кэш файлов акселератора PHP.
Для уменьшения количество созданных копий изображений в папке /cache/ движка OpenCart можно изменить количество разных изображений в панели управления по пути – Система > Настройки [ Изменить ] > Изображения (Правки нужно вносить в соответствии с вашей темой).

Оптимизация изображений в OpenCart
После сохранения настроек, можно удалить все файлы в папке /image/cache/ – они снова создадутся, но уже с новыми размерами и в значительно меньшем количестве т.к. несколько параметров теперь имеют одинаковый размер.
Папку /.cagefs/tmp/ – Особенность конкретного хостинга, можно просто отчистить от всех старых файлов.
После настройки и удаления, количество индексных дескрипторов значительно сократилось:

Максимальное количество индексных дескрипторов – Решение
2) Расширение тарифного плана хостинга (обычно хостер предлагает именно этот вариант), но это скорее отложит проблему на неопределенный срок. Каждый web-проект требует индивидуальное количество ресурсов, в том числе и параметр количества индексных дескрипторов, необходимо учитывать это параметр при выборе тарифного плана.
Возможно стоит задуматься о выборе другого тарифного плана или хостинга. Или настроить задачу на автоматическое удаление мусорных файлов.
Теперь столкнувшись с проблемой «Максимального количества индексных дескрипторов», восстановить нормальную работу сайта для вас не составит труда. Сталкивались ли вы с подобной проблемой и как ее решали?
интересные посты

Поддержка Flash Player прекращается 31 декабря
YouKit - 30.12.2020Пользователи операционной системы Windows 10, где Flash Player всё ещё используется получают всплывающее сообщение. Adobe настоятельно рекомендует пользователям удалить Flash…

WhatsApp добавил кнопку Магазин
YouKit - 15.11.2020Кнопка «Магазин» появится на месте иконки голосового вызова в интерфейсе приложения при общении с бизнес-пользователями для просмотра товаров по всему…

Instagram обновили дизайн расширив функции магазина
YouKit - 13.11.2020Редизайн коснулся прежде всего главного экрана приложения. Появились вкладки Reels и Shop. На первой вкладке будут показываться персональные рекомендации, подборки канала @shop,…
Есть папочка .trash(корзина).Посмотрел через SSH,в ней огромное кол-во файлов.Пообщался с сапортом хостинга,дали добро,так сказать…очистив её из 21500 осталось 4500 дескрипторов(сайт ещё молодой),но лёг и сам сайт.Жду решения.
Решение простое: 1) Всегда делать бекапы. 2) Размещать сайт на подходящем хостинге для проекта.