Максимальное количество индексных дескрипторов

Fatal error Call to a member function get() on a non-object in

08.03.2016
40 Репосты 4,325 Просмотры
2 Comments

Зачастую причиной неработающего сайта является ошибка – переполнения лимита индексных дескрипторов. Что же это такое и как с этим бороться?

Если объяснять просто: индексный дескриптор – это описатель файла, он содержит все необходимые для работы с файлом служебные атрибуты.
Через индексный дескриптор осуществляется доступ к содержимому файлов. Более детально и технически об этом написано на wiki. Можно сказать, что чем больше количество любых файлов находиться на хостинге, тем больше расход лимита индексных дескрипторов.

Дело в том, что на хостингах зачастую ограничивают допустимое значение индексных дескрипторов в соответствии с тарифным планом. Не путайте этот параметр с объемом дискового пространства, который обычно указывают в характеристиках тарифного плана.

В cPanel Accelerated переполнение индексных дескрипторов выглядит так (красный индикатор):

Максимальное количество индексных дескрипторов

Максимальное количество индексных дескрипторов

Если вы активно занимаетесь наполнением сайта или карточек товара в каталоге, заливаете картинки, расширяете функционал сайта плагинами, вы расходуете не только дисковое пространство, но и лимит по количеству индексных дескрипторов. И в момент переполнения лимита, некоторые функции сайта могут перестать работать.

Вы можете наблюдать различные ошибки:
Fatal error Call to a member function get() on a non-object in

Fatal error Call to a member function get() on a non-object in

Fatal error Call to a member function get() on a non-object in

В каждом конкретном случае необходимо найти решение данной проблемы, но в основном все сводится к двум простым действиям (которые можно реализовать по разному):

1) Поиск и удаление мусорных файлов
Важно понимать, что находиться в папках вашего сайта на хостинге. За продолжительный период работы сайта в «закромах» сайта скапливается множества «мусорных» файлов – временные файлы, остаточные файлы от удаленных расширений, забытые архивы, дубли картинок и т.д. У каждого движка свои особенности «складирования» подобных файлов, так же нужно учитывать особенности вашего хостера.

Поиск подобных файлов удобно производить из панели управления хостинга в «диспетчере файлов» обращая внимания на количество файлов во всех доступных папках (так же можно запросить эту информацию у техподдержки хостинга).

В зависимости от найденного мусора, принимаем действия по его устранению, производим настройку по предотвращения его образования.

Перед любым действием рекомендуется сделать резервную копию проекта.

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

Для уменьшения количество созданных копий изображений в папке /cache/ движка OpenCart можно изменить количество разных изображений в панели управления по пути – Система > Настройки [ Изменить ] > Изображения (Правки нужно вносить в соответствии с вашей темой).

Оптимизация изображений в OpenCart

Оптимизация изображений в OpenCart

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

Папку /.cagefs/tmp/ – Особенность конкретного хостинга, можно просто отчистить от всех старых файлов.

После настройки и удаления, количество индексных дескрипторов значительно сократилось:

Максимальное количество индексных дескрипторов

Максимальное количество индексных дескрипторов – Решение

2) Расширение тарифного плана хостинга (обычно хостер предлагает именно этот вариант), но это скорее отложит проблему на неопределенный срок. Каждый web-проект требует индивидуальное количество ресурсов, в том числе и параметр количества индексных дескрипторов, необходимо учитывать это параметр при выборе тарифного плана.

Возможно стоит задуматься о выборе другого тарифного плана или хостинга. Или настроить задачу на автоматическое удаление мусорных файлов.

Теперь столкнувшись с проблемой «Максимального количества индексных дескрипторов», восстановить нормальную работу сайта для вас не составит труда. Сталкивались ли вы с подобной проблемой и как ее решали?

интересные посты

Секретный доклад Yandex Scale 2020 • Яндекс.Облака трансляция
Блог YouKit
97 просмотры
Блог YouKit
97 просмотры

Секретный доклад Yandex Scale 2020 • Яндекс.Облака трансляция

YouKit - 23.09.2020

На конференции вы узнаете анонсы будущих сервисов Яндекс.Облака, получите доступ к реальному опыту применения Облака от партнеров и клиентов, сможете…

Осторожней со словами! SEO слова-магниты – эффективные слова для сайта
Разработка
614 просмотры
Разработка
614 просмотры

Осторожней со словами! SEO слова-магниты – эффективные слова для сайта

YouKit - 27.07.2020

В начале было Слово. Продвижение сайтов основано на словах. Копирайтеры уделяют много сил правильному написанию SEO-текстов. Директологи составляют объявления основываясь…

Цели в Яндекс Метрике 🎯 Как настроить эффективно 2020
Аналитика
1002 просмотры
Аналитика
1002 просмотры

Цели в Яндекс Метрике 🎯 Как настроить эффективно 2020

YouKit - 23.06.2020

Подключить Яндекс.Метрику новоиспеченному интернет-магазину способен любой маломальский web-мастер. Google Analytics тоже стараются подрубить. К сожалению на этом вся работа в…

Подписаться на комментарии поста
Уведомить по почте:
guest
2 Комментарий
Популярные
Новые Старые
Встроенные отзывы
Посмотреть все комментарии
Евгений
Евгений
2 лет назад

Есть папочка .trash(корзина).Посмотрел через SSH,в ней огромное кол-во файлов.Пообщался с сапортом хостинга,дали добро,так сказать…очистив её из 21500 осталось 4500 дескрипторов(сайт ещё молодой),но лёг и сам сайт.Жду решения.

ajax-loader
2
0
Поделитесь мыслями, комментируй!x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: