Очистить память на сервере

Обновлено: 06.07.2024

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

Чем опасно занятое на 100% пространство на сервере?

Многим может показаться, что при отсутствии необходимости загружать на сервер новые данные, наличие свободного на нем места не обязательно. Но это далеко не так. При нехватке места на сервере (когда занято 100% из 100%), большинство его внутренних служб перестают нормально функционировать. Причиной этому есть невозможность создать временный файл для службы.

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

Как распознать, что на сервере закончилось свободное место?

Основные признаки/последствия:

не работает авторизация на сайте;

на сайте не работает добавление файлов в корзину;

не работают формы и нет возможности загрузить какой-то файл;

не создаются файлы сессий;

недоступен сервер баз данных (возможна та же ситуация с другими службами);

повредились таблицы баз данных;

наличие ошибок, в которых указано «disk quota exceeded», «spaces are not allowed» или «can not create…» и т.п.

Как не допустить, чтобы место на сервере закончилось?

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

Что занимает все место на диске?

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

Какие инструменты нам помогут обнаружить самые большие папки и файлы?

Зачастую, в ситуации, когда место на сервере полностью занято, проверить его через панель управления нет возможности, поэтому нужно подключиться к серверу по SSH.

SSH – сетевой протокол, с помощью которого можно удаленно управлять сервером (операционной системой). Он позволяет получить доступ ко всем файлам под пользователем root (root пароль к VPS серверу отправляется на контактный почтовый ящик при заказе услуги).

Первая необходимая команда: df -h


Ориентироваться нужно на / — корневой раздел, в примере это строка:

/dev/vda1 25G 20G 3,9G 84% /

С данной информации видно, что на сервере всего 25G и с которых 20G (84%) занято и 3,9G свободно. Вывод команды округлен до гигабайт, поэтому сумма занятого (25G) и свободного (3,9G) места может не совпадать с полным размером диска (25G). Все остальные разделы в примере – системные виртуальные разделы.

Проверить размер файла или директории (папки), в примере каталог /var/log/, можно с помощью команды:


При помощи следующего набора команд мы можем понять, какие каталоги занимают больше всего места:


По аналогии можно зайти в нужный каталог и узнать размер директорий и файлов в нём:


Следующая комбинация команд для удаления всех архивов старых логов сервера:

find /var/log/ -name "*gz" | xargs -i rm <>

Поиск 10 самых больших файлов на сервере:

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

Команда для удаления какого либо файла или каталога:

rm -rf /backup/backup_20_03_2019.tar.gz

Где /backup/backup_20_03_2019.tar.gz путь к файлу, который мы удаляем.

Если вы обнаружили, что какой то log-файл занимает много места — его нужно очистить, но удалять файлы, в которые пишутся логи – нельзя. Очистить файл можно командой:

Где /var/log/nginx/access.log — это путь к файлу, который мы хотим очистить.

Также, стоит понимать, что работа сервера полностью зависит от ваших действий, поэтому все команды нужно выполнять внимательно и удалять файлы только с полной уверенностью в том, что они не нужны для дальнейшей работы.

Inodes — индексные дескрипторы

Для UNIX-систем также актуально такое понятие, как индексный дескриптор (или просто Inodes). Что это такое? – по факту, это количество файлов и директорий сервера. Inodes тоже могут заканчиваться. Количество Inodes можно узнать с помощью команды:


Вывод данной команды аналогичен df -h.

Максимально возможное число Inodes зависит от размера диска и файловой системы. Как правило, их более чем достаточно, но иногда бывают случаи, когда Inodes заканчиваются быстрее дискового пространства. Вот основные причины такой ситуации:

Автоочистка файлов сессий вашего движка не настроена. Сессии – это файлы практически нулевого размера, но при достаточной посещаемости ресурса их может накопиться очень много.

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

Почтовая очередь сервера: если по какой-то причине у вас на сервере не работает отправка почты, а письма только скапливаются в очереди, вы можете также столкнуться с лимитом Inodes. В большинстве случаев, причина такой ситуации — взлом сервера и рассылка с него спама.

Следующие две команды помогут узнать количество занятых индексных дескрипторов в текущем каталоге и подкаталогах:

find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -nr | head -n 10

for i in *; do echo $i; find $i |wc -l; done

При большом объеме диска или большом количестве файлов, выполнение этих команд тоже может занять длительное время.

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

У нас качественный и надежный сервис, удобное система управления через админ-панель, интеллектуальные системы защиты и техническая поддержка, которая поможет решить все возникающие вопросы в любое время суток.

Любой тариф нашего хостинга подойдет для Wordpress. Вы можете выбрать именно тот пакет, который максимально соответствует потребностям вашего проекта: SSD хостинг, VPS на SSD, Cloud (облачный) хостинг, облачный VPS. Выделенный сервер или dedicated server.

Мы разработали систему автоматического тестирование сайта, это даст Вам возможность проверить десятки показателей и настроек сайта и домена. Проверит правильность параметров конфигурационного файла WordPress, подключения к базе данных, настроек тем и модулей. Проверит правильность настройки параметра php_memory_limit.

SSH – сетевой протокол , с помощью которого можно удалённо управлять сервером (операционной системой).

Запускаем файл putty.exe, в появившемся окне вводим IP адрес вашего сервера, и жмем на кнопу Open, пример представлен ниже на рисунке (в качестве примера взят тестовый сервер с IP 91.231.87.169 ).

ssh1

Так же рекомендуем найти письмо с настройками к серверу, высланное вам при заказе на почту, указанную в аккаунте Ukrnames. Данные настройки нужны нам для того, чтобы войти удаленно на сервер.

ssh2

Важно! При наборе пароля или вставке пароля в данное окно, символы пароля не отображаются, но пароль вводится. Клавиши Ctrl+V в данном окне не работают. Чтобы вставить скопированный пароль, нужно нажать клавиши Shift+Ins либо 1 раз нажать правой кнопкой мыши.

После ввода пароля появится командная строка.

ssh3

Теперь вводим в командной строке команду:

ssh4

Теперь выполняем ряд команд для определения файлов/папок, которые заняли место:

ssh5

В данном примере видим, что больше всего места занято в папке var 9.2G . Переходим в данную папку и выполняем поиск по занятому месту:

ssh6

Наибольшее занятое место у папки log (полный путь /var/log/), переходим в нее:

Важно! Перед log нет косой черты «/» т. к. мы уже находимся в папке / var/ , после того как набрали cd /var .

ssh7

Видим, что место занято файлами логов test.log 9.1G и test2.log 3.3 G.

Обнулим данные файлы, удалять их не стоит.

ssh8

Теперь файлы test.log и test2.log занимают всего по 4Кб каждый.

Проверяем общее место:

ssh9

Теперь рекомендуем перезагрузить сервер, введите команду reboot , для того, чтобы все службы сервера перезагрузились и стали нормально работать.

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

Это конкретный пример, в котором место было занято логами! Может так случится, что место занято другими файлами (файлами сайтов). В большинстве случаев это так же логи сайта либо же кеш (стоит проверить папки сайта cache/ , очистить содержимое). Желательно очищать кеш через админ-панель сайта. Чтобы вернуть панели рабочее состояние, выполняем чистку наибольших файлов папки / var/log/ хотя бы 100Мб освобождаем, и тогда сможем подключится к админ-панели сайта и очистить кеш.

. Не в коем случае не чистим файлы папок, которые отвечают за работу ОС и служб сервера.

Так же ниже представлен ряд команд, которые быстро позволят обнаружить файлы, которые занимают много места:

При редактировании или удалении каких-либо документов, рекомендую их предварительно сохранить на компьютере и посмотреть что получится. Это поможет избежать никому не нужных ошибок в работе вашего ресурса.

phpMyAdmin

  • Первое, что нужно сделать, прежде чем очистить хостинг, это перенести все скачиваемые файлы с вашего сервера, если такие имеются, на какой-нибудь бесплатный хостинг. Их в интернете много, например народ.ру.
  • Оптимизировать все изображения на вашем сайте . Если у вас стоит WordPress, то рекомендую установить плагин CW Image Optimizer. Он автоматически оптимизирует все картинки и уменьшает их размер. Вдобавок ко всему это благотворно влияет на скорость загрузки сайта . Если же у вас не WordPress, то можно воспользоваться сервисами по оптимизации изображений.
  • Удалить все неиспользуемые картинки на сайте. . Для этого можно воспользоваться опять же плагинами, например DB Optimizer или зайти в phpMyAdmin и оптимизировать таблицы базы данных вручную. Выбрать БД, внизу нажать: ОТМЕТИТЬ ВСЕ и из выпадающего списка выбрать: ОПТИМИЗИРОВАТЬ ТАБЛИЦУ.
  • Далее идем на сервер и удаляем оттуда все лишнее. В первую очередь это касается устаревших резервных копий (бекапа). Обычно по умолчанию сервер настроен на автоматическое создание бекапа. Они копятся и заполняют дисковое пространство. Затем удаляем логи файлов и ошибок. Это папки logs, logs_error. В них собирается информация об изменениях файлов и ошибках сервера. По сути они нам не нужны. Со временем эти папки раздуваются до невероятных размеров. Например у меня один раз было, что всего один файлик с логами весил более 200 мб. В общем, их нужно очистить.
  • Рекомендую удалить все то, что не используется. Например модули или плагины сайтов , темы оформления. Сайт должен быть легким, сервер чистым. А что касается всяких модулей, то их должно быть установлено минимальное количество, дабы не нагружать сервер запросами к базе данных.

Вот такие советы вам от меня. В свое время они мне хорошо помогли очистить сервер и освободить его от чрезмерных нагрузок. Желаю удачи!

Значительное потребление памяти процессами кластера на сервере приложений

У кластера серверов 1С Предприятия есть несколько настроек перезапуска процессов по превышению порога памяти. Их можно найти в параметрах кластера в консоли администрирования(рис. 1).


Рис. 1. Параметры кластера.

Подробная информация по настройкам указана на странице ITS.

Рекомендуется всегда настраивать параметры

  • Допустимый объем памяти
  • Интервал превышения допустимого объема памяти
  • Выключенные процессы останавливать через

"Допустимый объем памяти" стоит устанавливать из расчета, того, что в случае срабатывания условия превышения показателя будет запущен ещё один процесс rphost того же объема, как при нормальной работе кластера серверов в этой информационной системе.

Например, на рабочем сервере имеем 12 Гб ОЗУ. Допустим для конкретной информационной системы характерен размер rphost около 3 Гб. В этом случае порог превышения памяти следует рассчитывать следующим образом:

"Допустимый объем памяти" = 12 ГБ - 2 Гб (объем, занимаемый процессами системы) - 3 Гб * 1 rphost (объем всех процессов rphost) = 7 Гб. Т.е. процесс rphost в худшем сценарии может вырасти до 7 Гб.

Для случая, когда у нас при штатной работе используются два процесса rphost.

"Допустимый объем памяти" = 12 ГБ - 2 Гб (объем, занимаемый процессами системы) - 3 Гб * 2 rphost (объем всех процессов rphost) = 4 Гб. Т.е. процесс rphost в худшем сценарии может вырасти до 4 Гб.

Такая рекомендация исходит из особенностей поведения в момент перезапуска процессов кластера. Как это происходит:

  • процесс rphost превышает "Допустимый объем памяти" в течение "Интервал превышения допустимого объема памяти" секунд, срабатывает условие перезапуска процессов кластера.
  • запускается "новый" процесс rphost
  • "старый" процесс rphost выключается, но не завершается
  • соединения назначаются на "новый" процесс rphost, который сразу полноценно включается в работу
  • "старый" процесс будет исполнять вызовы (которые ещё существуют) максимум в течение ещё "Выключенные процессы останавливать через" секунд, но не более того.
  • через время "Выключенные процессы останавливать через" "старый" процесс rphost завершается.
  • новый процесс полноценно работает

Т.е. в течение периода, указанного в "Выключенные процессы останавливать через" будет одновременно работать как минимум два процесса rphost: "старый" и "новый".

Не следует указывать "Допустимый объем памяти" меньше нормального рабочего объема памяти процесса rphost для вашей системы, т.к. противном случае у вас постоянно будут перезапускаться процессы кластера серверов.

  • Интервал превышения допустимого объема памяти
  • Выключенные процессы останавливать через

следует стараться указывать как можно меньше исходя из характера нагрузки на информационную систему, например, по 60 секунд, если мы рассчитываем, что все операции (или большая их часть) должны выполниться быстрее 60 секунд.

Чем больше значения указанных параметров, тем менее эффективен может оказаться механизм перезапуска процессов, но зато позволит "успешно выполнить" большее число вызовов.

Читайте также: