LINUX.ORG.RU
решено ФорумAdmin

Мониторинг IO обращения к файлам, а не дискам.

 , , , ,


0

4

Суть, периодически ловлю жестокий 12309 причём с приложениями при которых IO идёт на корень расположенный на медленном диске, приложения это игры например которые вообще не должны корень тыркать особо, когда начинаются подвисания проверить откуда они просто невозможно весь GUI висит колом. Пока переключишься по ctrl+alt+Fx всё устаканивается. А логировать в файл и потом засекать время когда произошло с последующим муторным чтением тонны логов, а их будут тонны ибо это проявляется не периодически, не хочется от слова совсем. Про iotop,iostat и подобные знаю.

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

Я напишу демон который будет этот лог обращений кушать и выплёвывать в сеть и клиента на телефон который будет мне показывать к каким файлам идёт обращение. И в следующий раз когда начнётся ахтунг при котором порой даже мышка заморожена я хоть на внешнем устройстве в клиенте тыкну «записать лог» и выхвачу чего там и куда кто пишет/читает в конкретный момент времени. По итогу возможно проблемные штуки просто смонтирую в tmpfs или приму иные меры. Достало а то уже =)


Заранее отвечаю:

  • нет, не могу я купить ssd и перенести корень, рад бы но нет;
  • нет, память не забита при лагах 50+% свободно;
  • нет если я включу swap всё так же.
  • да я гуглю утилиту, но никак не нагуглю все просто показывают нагрузку на диск от приложения,
    эта информация бесполезная, ибо нужно знать к каким именно файлам идёт обращение.

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

Ответ на: комментарий от Dimez

Проблема XY такая проблема.

Отчасти да, отчасти нет.

Запусти zram.

У меня память не забита при лагах даже на половину 12Gb всего. Занято 5 в среднем.

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

Всё что нужно это вывод путей всех файлов в системе к которым идёт обращение, ничего более.

LINUX-ORG-RU ★★★★★
() автор топика

12309
GUI висит колом

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

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

sfedosenko
()
Ответ на: комментарий от LINUX-ORG-RU

даже на половину

:) Как можно так писать, это же тоже самое, что и «к стати».

In very simple cases, we can employ inotifywait and inotifywatch. However, the comprehensive auditd package can be a better choice.

https://www.baeldung.com/linux/auditd-monitor-file-access

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 1)
Ответ на: комментарий от sfedosenko

Допустим проседает питание, выше сказал что железо менять не могу. Но зная куда и сколько читает/пишется я смогу воспроизвести запись чтение с нагрузкой и без на систему и выявить. А так на обум перебирать комплектующие пока не отпустит я бы рад, но это тяжело для моего кармана. Да и не об этом речь, утилита нужна.

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от Dimez

Если есть аппаратная неисправность

Если.
Не стоит всё же из предположения делать утверждение. Я сам иногда гружу на ПК все ядра на сотку и ГПУ тоже и гоняю так сутками, БП вытягивает зависаний и проблем нет.

Корень у меня на старом 70 гигабайт HDD на IDE шлейфе, даже не SATA. Иногда некоторые приложения с ним чрезмерно активно дружат и хочется узнать куда его дружат конкретно (нет не спамят в dmesg или иные логи).

А вы мне предлагаете оба «купи нормальный комп и всё». Мне всего лишь нужна утилитка и всё блин :D Сначала надо выяснить, если в момент лагов особого обращения нет, то уже стоит думать в сторону железа. Проблема воспроизводится только при обращению к корню, он на отдельном диске, хомяк на отдельном, там при любом лютом IO проблем нет. Просто корень медленный. Но главное какого фига вообще его дёргают приложения типа игр. Нет не оргомный кеш шейдеров Mesa он на хомяке. Ладно пойду ссылку почитаю. =)

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 3)

И в следующий раз когда начнётся ахтунг при котором порой даже мышка заморожена я хоть на внешнем устройстве в клиенте тыкну «записать лог» и выхвачу чего там и куда кто пишет/читает в конкретный момент времени

Демон ведь тоже зависнет, или я чего-то не понимаю?

friedrich
()
Ответ на: комментарий от LINUX-ORG-RU

А вы мне предлагаете оба «купи нормальный комп и всё»

А что делать, если железо умирает, не использовать же его в аварийном режиме.

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

sfedosenko
()
Ответ на: комментарий от sfedosenko

lsof

Тьфу ты, точно! Частично вопрос закрыт.

или обращается прямо сейчас

Вот это бы идеально, конечно. Залезу в исходники lsof и попробую переделать под себя.

Но если ещё будут варианты то лишними не будут.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от Dimez

Я образно же, «поменяй БП» это равнозначно «поменяй ПК». Вдруг проблема в диске, вдруг проблема в БП, вдруг проблема в ином железе и так далее :3 Я не хочу просто перебирать варианты и ликвидировать/менять железо в надежде что вдруг БП поменяю и всё само пройдёт, а если дело не в нём? Отловить неприятное событие и уже с информацией на руках мол куда, что, когда и кто, строить выводы хочется, вот и всё :3

Ты злой какой-то чвота

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Вдруг проблема в диске

Вдруг бывает только пук :)

Я не хочу просто перебирать варианты

Не перебирай, хотя бы открой БП и пальцем пощупай электролиты. Да даже вековые отложения пыли убрать - уже хорошо, жирная компьютерная пыль замечательно создаёт паразитные токи.

Отловить неприятное событие

В случае аппаратной проблемы можешь ничего не отловить, внезапно!

Ты злой какой-то чвота

Ты хоть smart своей IDE древности посмотрел? Short/long тесты прогнал? Бесит, как программисты иногда очень странно пытаются решить проблемы, как будто не программисты совсем, а завсегдатаи woman.ru :)

Dimez ★★★★★
()
Последнее исправление: Dimez (всего исправлений: 3)
Ответ на: комментарий от Dimez

В случае аппаратной проблемы можешь ничего не отловить, внезапно!

В том и суть, если в момент лаги IO будут копеечными, то дело явно не в нагрузке на диск и его тормозах. Один фиг надо это узнать, прямым методом или методом исключения. Может что левое запускается в эти моменты и я грешу не на то. Раньше вон мне tracker-minner-fs систему вешал. Не отловить ничего это тоже информация о том что рою не там. Беда в том что я не могу предугадать когда случается зависание. Поэтому в том и идея что буду слать по сети информацию про IO постоянно и когда совпадёт что я сижу, всё зависло и мобилка на которую идут логи рядом и не завис демон передающий данные и сеть пашет я смогу за имеющиеся у меня секунд 10 ~ 15 тыкнуть запись логов на телефоне и увидеть что и куда в этот момент писало/читало конкретно (плюс разовая информация о процессах и нагрузке на всё что есть в этот момент).

Не перебирай, хотя бы открой БП и пальцем пощупай электролиты

Днём погляжу конечно, но я с месяц назад чистил всё, насечки на конденсаторах не вспучены были. На глаз всё тип топ. На температуру вот не проверял.

Ты хоть smart своей IDE древности посмотрел?

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     37994         -
# 2  Short offline       Completed without error       00%     34179         -

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

Бесит, как программисты

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

а завсегдатаи woman.ru

Могу забаниться тут и загераться там, зато не буду тут никого бесить :D, а тётки там будут фшоке от моих вопросов, хотяяя вдруг они там половину админши и бекендеры, кто знает.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Могу забаниться тут и загераться там, зато не буду тут никого бесить :D, а тётки там будут фшоке от моих вопросов, хотяяя вдруг они там половину админши и бекендеры, кто знает.

А потом вернуться и снова 5 звёзд собирать? В 4-й раз.

Хотя может ты там свою судьбу найдёшь.

wandrien ★★
()

Аппаратные проблемы не решаются программно.

Скорее всего диск покрылся BADами (плохими секторами), которые контроллер пытается перечитать и переназначить (в случае записи файлов на них) в область ремапа (резервная область есть на любом диске, но она ограниченного объёма).

Рекомендую проверить диск утилитой проверки testdisk и попробовать пометить BAD-сектора «не использовать». Если проблема будет повторяться, то проверь (замени) блок питания.

iZEN ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Корень у меня на старом 70 гигабайт HDD на IDE шлейфе, даже не SATA

IDE
2023 год
IDE

O_O

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

Pinkbyte ★★★★★
()
Ответ на: комментарий от wandrien

А потом вернуться и снова 5 звёзд собирать? В 4-й раз.

Ну, а что это уже стало обыденностью.

Хотя может ты там свою судьбу найдёшь.

Прошивку ЧПУ для маникюра буду там с дефчёнками прорабатывать :D

LINUX-ORG-RU ★★★★★
() автор топика

Итак, у тебя с системного диска запущен софт. Это замаппленные бинари. Ядро выгружает маппинги когда они не нужны. Но потом когда ВНЕЗАПНО понадобилась какая-то из замаппьенных библиотек, особенно не одна - начинается конкурентный доступ ко всему подряд. Могу разве что предложить переносить корень в tmpfs или тюнить лимиты буфферов

mittorn ★★★★★
()