Форум программистов, компьютерный форум, киберфорум
RinatV
Войти
Регистрация
Восстановить пароль

Вычищаем mod-tmp

Запись от RinatV размещена 07.01.2013 в 04:01
Показов 15039 Комментарии 2

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

Только вот при удалении пользователей случился какой то завис, гугл показал что в директории mod-tmp пользователей оказывается скапливается большое количество сессионных файлов php. Их нужно переодически чистить, что и видимо явилось причиной больших нагрузок на сервер.

В принципе с удалением файлов в Linux проблем нет, стоит только перешагнуть через rf -rf mod-tmp/, но эта команда не неинтерактивная, она молча удалит все файлы. Однако при удалении 5 милионов мелких файлов это молчание выглядит как зависание, есть конечно и другие рецепты команд, но все они расчитаны а запуск по расписанию в cron без эха.

Мне было интересней увидеть как все это происходит, в этом мне помог ruby, по скорости конечно не очень, зная особенности системы можно наверняка и побыстрей это делать, допустим запуском нескольких потоков, собственно вот код:

Ruby
1
2
3
4
5
6
7
8
9
10
11
12
13
dr='mod-tmp/'
d = Dir.new(dr)
n=0
l=Time.now
d.each do |path|
  if n%1000==0
    x=Time.now
    puts "#{n} +#{x-l} #{dr+path}"
    l=x
  end
  File.delete dr+path if !FileTest.directory? dr+path
  n+=1
end
код отсчитывается через 1000 найденных файлов, главное знаем что делается,да и время поначалу было 10 секунд на 1000 файлов, так что надежда появляется сразу. 26 секундные итерации с самого начала и не меняются, видимо что-то работает:

Code
1
2
3
4
5
105000 +26.415262997 mod-tmp/sess_3121561d6d09c577e39ca46ccdfc3a66
106000 +5.780714248 mod-tmp/sess_9d2088fbfad3dab0ef69073fcab876b7
107000 +5.846447822 mod-tmp/sess_6e8328858731d3ef86bbe81e603384f8
108000 +5.794790207 mod-tmp/sess_33cd1a077b222a3dbf0a9b7ade8ea431
109000 +5.269644683 mod-tmp/sess_e909798c803cd2ab03e68659b06fb6dc
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 2
Комментарии
  1. Старый комментарий
    Аватар для turbanoff
    Раз уж на сервере был PHP, почему бы не использовать его? Или bash на крайний случай.
    Запись от turbanoff размещена 09.01.2013 в 14:46 turbanoff вне форума
  2. Старый комментарий
    php долго не выдерживаю.
    В bash не нашел интерактивного варианта для копипаста, сам эффективные варианты пока сочинять не умею. ls сперва создаст список, который недождаться, find видимо делает тоже самое, т.к. эффекта после запуска с опциями -delete не видно по отчету df -i. Передачу по xargs или же просто rm не испытывал, пока эти возможности для меня неочевидны.

    Приведенный способ интерактивен, эффект сразу есть, правда скорость не такой высокий к сожалению 5000 файлов в минуту, что сравнимо с Midnight Commander, хоть и происходит некое ускорение со временем, но со временем 26 секундные интервалы увеличиваются и начинают следовать друг за другом, видимо сказывается или журналирование или обнадеживание RAID, но в этих вопросах разбираться уйдет времени более 10 часов, такое время проработал скрипт, хотя должно было проработать больше.

    А с ruby получил желаемый результат за 3 минуты, отчет написал через 21 минуту
    Ruby
    1
    2
    3
    4
    5
    
    Welcome to IRB. You are using ruby 1.9.3p362 (2012-12-25) [i386-mingw32]. Have f
    un ;)
    >> 109000 / 5000 #=> 21
    >> 5*10**6 / 5000 / 60 #=> 16
    >>
    С пулом потоков тоже испытывал, правда ускорения никакого нет видимо
    Запись от RinatV размещена 14.01.2013 в 14:15 RinatV вне форума
 
Новые блоги и статьи
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru