Страница 45 из 139

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

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

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

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

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

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

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

Добавлено: Пн мар 21, 2016 10:37 pm
ovcher
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 гектар в сутки, это больше похоже на какой то поток, который прет постоянно, без начала и конца, поэтому его и сложно отследить. А никсы, ввиду каких то своих особенностей его так буферизируют. ИМХО.

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

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

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

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

Вы провели какое-то исследование, поделитесь данными: логами, выводом утилит. Возможно достаточно глянуть на вывод iotop опытному глазу и Вам сразу подскажут, куда копать дальше.

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

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

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

Изначально, я задал вопрос, что идет переполнение диска, мне внятно ответили что с этим не сталкивались. Далее я локализовал конкретный кусок и спросил за что он отвечает, ну или на крайняк направить меня в нужную сторону чтобы я смог проверить сам. Вы, вот, сами скажите сидя рядом с Автором программы, неужто Вы кинетесь ее трассировать, предварительно не спросив у Автора что по чем?
olehs писал(а): Вы провели какое-то исследование, поделитесь данными: логами, выводом утилит. Возможно достаточно глянуть на вывод iotop опытному глазу и Вам сразу подскажут, куда копать дальше.
Возможно Вы глянули только последние мои посты :( . Сейчас я гляну, сек.

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

Добавлено: Пн мар 21, 2016 11:34 pm
ovcher
Да, глянул, iotop я не дал, каюсь, но уверяю Вас, там нет ничего такого что бы "опытный глаз" не смог понять с моих слов.
Есть столбец Запись на винт. Везде по нулям и только в одном месте 1500 B/s и это cycle_connect.php. Если интересен сам интерфейс вот:
iotop.png
iotop.png (105.13 КБ) 10579 просмотров
Вот и вся тайна "мадридского двора"
Как видите ничего сверх естественного или снова закомментировать цикл чтобы показать лично Вам, Вы только скажите, я без проблем.
Остальные свои изыскания я вроде опубликовал.

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

Добавлено: Пн мар 21, 2016 11:37 pm
olehs
Да, хотелось бы увидеть вот это
ovcher писал(а):Еще iotop указал на некие params

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

Добавлено: Пн мар 21, 2016 11:47 pm
ovcher
Пожалуйста:
iotop1.png
iotop1.png (107.29 КБ) 10573 просмотра

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

Добавлено: Пн мар 21, 2016 11:49 pm
ovcher
Ах, да, пардон, я там писал B/s, пардон, конечно же K/s, исправил.

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

Добавлено: Пн мар 21, 2016 11:52 pm
olehs
Ок. Вы знаете как узнать PID выделенного красным процесса? Если знаете, подставьте его в эту команду вместо <pid>

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

lsof -p <pid> -r 5

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

Добавлено: Пн мар 21, 2016 11:59 pm
ovcher
Сколько циклов дать?