LINUX.ORG.RU
ФорумAdmin

Linux как понять какие процессы или на какие файлы вызывается fsync?

 


0

1

Уважаемые Коллеги!

Есть ПО на java, которое работает с множеством файлов (jpg - в специальном, хитром формате - там картинки по 50-100 мегабайт).

Хочу оптимизировать производительность. Но для этого мне требуется понять, в какие файлы оно вызывает fsync?

То есть, есть java, которая открывает порядка 100 файлов (какие точно файлы я не знаю, они постоянно меняются - всякие jpg). Мне хочется промониторить в каком режиме оно пишется? Как бог на душу пошлёт или каждый раз вызывается fsync.

Сейчас я упираюсь в производительность ввода-вывода, но не могу понять,мне на SSD (zfs+ssd) - достаточно пересадить только mysql, или всё плохо...

★★★★★

1) возможно, подойдёт inotify

2) если нет, в любом случае для strace это не вопрос, т.к. fsync - системный вызов. Но grep'ать вывод может быстро надоесть

router ★★★★★
()
Ответ на: комментарий от shell-script

Очень сложно мне такого добиться. Это нужно очень глубоко копаться в shell скриптах.

ПО более чем анальное и максимально огороженное.

iotop - не годно. Там слишком старый Linux, ничего ставить в него не выйдет. :(

Ядро 2.6/CentOS 5

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

iotop - штука довольно простая. Можешь попробовать заюзать что-нить типа этого: https://github.com/archcel/iotop или поискать аналог.

Ну а по поводу сложности найти программу, ты с помощью strace можешь подцепиться к любом запущенному процессу. Т.е. запусти своё ПО, а потом подключайся к каждому из порождённых им процессов и смотри, какой именно fsync дёргает.

shell-script ★★★★★
()
Ответ на: комментарий от shell-script

Т.е. запусти своё ПО, а потом подключайся к каждому из порождённых им процессов и смотри, какой именно fsync дёргает.

Во! Спасибо! А как это можно сделать для уже запущенной программы?

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

Смотришь pid своей программы, потом запускаешь strace -e trace=fsync -p <pid>

Посмотри в мане на strace, там много интересного. :) Можно лог в файл вывести, чтобы потом вдумчиво проанализировать, можно отслеживать любые системные вызовы(по несколько штук одновременно) или же в лог записать абсолютно всё, а потом просматривать его, фильтруя по нужным и т.д.

shell-script ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.