Ещё немного обновлений

Новые релизы, обновления и т.п.

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 76 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Ещё немного обновлений

Сообщение sergejey » Пн мар 21, 2016 12:09 pm

ovcher писал(а):Отчитываюсь. Пол дела, можно сказать, я сделал.
Запустил утилиту iotop, которая мне сразу подсказала что с винтом балуется cycle_connect.php
Открыл, убрал пробелы после s, в общем, так было:

Код: Выделить всё

('Y-m-d H:i:s ') 
так стало:

Код: Выделить всё

('Y-m-d H:i:s') 
. Жрать дисковое пространство стало гораздо меньше.
Этот пробел был причиной? Честно говоря, не могу принять такой вариант ибо не понимаю... Больше точно ничего не меняли, может совпало? Ну никак не могу сопоставить одно с другим :)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Ещё немного обновлений

Сообщение ovcher » Пн мар 21, 2016 10:37 pm

sergejey писал(а): Этот пробел был причиной? Честно говоря, не могу принять такой вариант ибо не понимаю... Больше точно ничего не меняли, может совпало? Ну никак не могу сопоставить одно с другим :)
По шагам. Отлавливаю iotop что хулиганит, вижу что это cycle_connect.php, в среднем льет на винт 1500 K/s, просматриваю код и походу, на автомате, убираю пробелы больше ничего, пока, не вижу, сохраняю cycle_connect.php. Глянул свойства, диск порядочно заполнен, перезагружаю, смотрю iotop, вижу льет уже в районе 500 K/s, факт. Я тоже прекрасно понимаю что пробел там не играет ни какой роли, но тем не менее констатирую как есть.
На Ваш вопрос, пробел ли был причиной? Нет, не пробел. Причиной, как я считаю был тот код что Вы дописали после @return void, я попросту, пока, раскоментировал три вот этих строчки:

Код: Выделить всё

 Summary of processResponse
 @param mixed $out Out param
 @return void
и проблема тут же исчезла. И это тоже факт.
За день система, естественно, набирает логов(я про положенный минимум в максимум в 100метров), это нормально, но наутро все опять чисто(старые логи стираются, новые только начинают писаться), в общем винт строго в одной поре.
AirKing писал(а): Лично на моих серверах место пропадает в каталоге где хранятся логи. По размеру всех файлов общий объём мизерный. Как я выяснил проблемы у newslog. Почему-то при создании нового файла не освобождается место от старого. Лечится перезагрузкой сервиса который создаёт логфайл.
Повторюсь. Это только на виртуалках.
Здесь ситуация несколько иная, запись идет со скоростью "пулемета", как стриминг, логи так не пишутся, просто, на автомате, первое что приходит в голову это логи. Почему так? Ну, Вы же админ, должны знать какой размер у логов в больших организациях, ну например у WWW, при штате организации в 1,5К душ, и особенно там где есть билинг, например у меня логи по 30гектар. Вот оно и мкнет. Но быстро приходит осознание того что даже эти логи не набираются так, по сотне метров за 5 минут.
Теперь про очистку заголовков(высвобождение места). Насколько я знаю, на логи накладываются временные лимиты а не размерные, по размеру может происходить лишь накопление, но никак не удаление, иначе грош цена этим логам, вы их не сможете проанализировать ибо они попросту удалятся. Ну а для того чтобы не случилось ступора существуют разного рода алармы и Дебиан здесь не исключение. В нашем же случае таких размеров быть не может, априори, тем более 100 гектар в сутки, это больше похоже на какой то поток, который прет постоянно, без начала и конца, поэтому его и сложно отследить. А никсы, ввиду каких то своих особенностей его так буферизируют. ИМХО.
Последний раз редактировалось ovcher Вт мар 22, 2016 2:53 am, всего редактировалось 2 раза.
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Ещё немного обновлений

Сообщение olehs » Пн мар 21, 2016 10:55 pm

ovcher писал(а): На Ваш вопрос, пробел ли был причиной? Нет, не пробел. Причиной, как я считаю был тот код что Вы дописали после @return void, я попросту, пока, раскоментировал три вот этих строчки:

Код: Выделить всё

 Summary of processResponse
 @param mixed $out Out param
 @return void
и проблема тут же исчезла. И это тоже факт.
Убрав комментарии с этих строк Вы добавили в скрипт синтаксическую ошибку, вследствие чего он попросту перестал выполнятся. Невыполнение этого скрипта вполне может быть "решением" Вашей проблемы, но, как я и писал раньше, реальная проблема не в этом месте.
Возможно проблема действительно в этом скрипте, но чтобы определить где именно, нужно разобраться в причинах такого поведения. Метод Научного Тыка тоже бывает полезен, но и для него нужно хотя бы понимание конструкций языка.

Вы провели какое-то исследование, поделитесь данными: логами, выводом утилит. Возможно достаточно глянуть на вывод iotop опытному глазу и Вам сразу подскажут, куда копать дальше.
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Ещё немного обновлений

Сообщение ovcher » Пн мар 21, 2016 11:20 pm

olehs писал(а): Убрав комментарии с этих строк Вы добавили в скрипт синтаксическую ошибку
Сомневаюсь, я попросту отсек кусок кода следующий за @return void вернув пустышку. По моему так.
Цитата:
void в качестве типа результата означает, что возвращенное значение бесполезно. void в списке параметров означает, что функция не принимает параметров.
ИМХО так оно и было у Сергея пока он не дописал код дальше.
olehs писал(а):вследствие чего он попросту перестал выполнятся.
Это и ужу понятно :) , я же его заблокировал.
olehs писал(а):Невыполнение этого скрипта вполне может быть "решением" Вашей проблемы, но, как я и писал раньше, реальная проблема не в этом месте.
Тоже, несомненно. Но и я ни где не писал что собираюсь так оставить на веки вечные, напротив я пытаюсь выяснить у Автора, что к чему и как лучше исправить данную проблему, ну или на крайняк что будет если я оставлю так как есть.

olehs писал(а): Возможно проблема действительно в этом скрипте, но чтобы определить где именно, нужно разобраться в причинах такого поведения. Метод Научного Тыка тоже бывает полезен, но и для него нужно хотя бы понимание конструкций языка.

Изначально, я задал вопрос, что идет переполнение диска, мне внятно ответили что с этим не сталкивались. Далее я локализовал конкретный кусок и спросил за что он отвечает, ну или на крайняк направить меня в нужную сторону чтобы я смог проверить сам. Вы, вот, сами скажите сидя рядом с Автором программы, неужто Вы кинетесь ее трассировать, предварительно не спросив у Автора что по чем?
olehs писал(а): Вы провели какое-то исследование, поделитесь данными: логами, выводом утилит. Возможно достаточно глянуть на вывод iotop опытному глазу и Вам сразу подскажут, куда копать дальше.
Возможно Вы глянули только последние мои посты :( . Сейчас я гляну, сек.
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Ещё немного обновлений

Сообщение ovcher » Пн мар 21, 2016 11:34 pm

Да, глянул, iotop я не дал, каюсь, но уверяю Вас, там нет ничего такого что бы "опытный глаз" не смог понять с моих слов.
Есть столбец Запись на винт. Везде по нулям и только в одном месте 1500 B/s и это cycle_connect.php. Если интересен сам интерфейс вот:
iotop.png
iotop.png (105.13 КБ) 10263 просмотра
Вот и вся тайна "мадридского двора"
Как видите ничего сверх естественного или снова закомментировать цикл чтобы показать лично Вам, Вы только скажите, я без проблем.
Остальные свои изыскания я вроде опубликовал.
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Ещё немного обновлений

Сообщение olehs » Пн мар 21, 2016 11:37 pm

Да, хотелось бы увидеть вот это
ovcher писал(а):Еще iotop указал на некие params
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Ещё немного обновлений

Сообщение ovcher » Пн мар 21, 2016 11:47 pm

Пожалуйста:
iotop1.png
iotop1.png (107.29 КБ) 10258 просмотров
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Ещё немного обновлений

Сообщение ovcher » Пн мар 21, 2016 11:49 pm

Ах, да, пардон, я там писал B/s, пардон, конечно же K/s, исправил.
Последний раз редактировалось ovcher Вт мар 22, 2016 2:57 am, всего редактировалось 1 раз.
olehs
Сообщения: 1115
Зарегистрирован: Вс июн 14, 2015 11:08 am
Благодарил (а): 85 раз
Поблагодарили: 342 раза

Re: Ещё немного обновлений

Сообщение olehs » Пн мар 21, 2016 11:52 pm

Ок. Вы знаете как узнать PID выделенного красным процесса? Если знаете, подставьте его в эту команду вместо <pid>

Код: Выделить всё

lsof -p <pid> -r 5
Аватара пользователя
ovcher
Сообщения: 183
Зарегистрирован: Сб сен 12, 2015 3:11 am
Откуда: Волгоград
Благодарил (а): 60 раз
Поблагодарили: 39 раз
Контактная информация:

Re: Ещё немного обновлений

Сообщение ovcher » Пн мар 21, 2016 11:59 pm

Сколько циклов дать?
Закрыто