Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Superserver: как узнать, какой коннект грузит процессор? / 13 сообщений из 13, страница 1 из 1
26.08.2019, 18:58
    #39853867
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
Firebird 3.0 Superserver
~ 10 активных баз, самая крупная 800 Гб
Windows Server 2012

Ситуация: при отсутствии активности со стороны клиентов длительное время (более суток) полностью загружена Firebird'ом одна нитка процессора. Локализовать проблему (но не понять её причину) удалось последовательным просмотром псевдотаблиц мониторинга всех активных баз. В одной из баз обнаружена очень долгая транзакция, её "хозяев" найти не удалось. Проблема снята перезапуском конкретной базы (full shutdown, online).

Вопрос: как в режиме Superserver понять, коннект к какой базе грузит процессор, не перебирая вручную все возможные базы?

Использовались инструменты:
Sysinternals Process Explorer
IBExpert
...
Рейтинг: 0 / 0
26.08.2019, 19:10
    #39853874
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
а дисковой активности у этой нитки не было, только процессорная ?
...
Рейтинг: 0 / 0
26.08.2019, 20:03
    #39853891
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
Не додумался посмотреть. В другой раз буду знать. Смутно припоминаю, что на графиках производительности, которые выводит ProcessExplorer, вроде не было особой дисковой активности.

Но там общая по всем процессам. А как посмотреть дисковую активность конкретной нитки? По процессам еще можно как-то, но по нитям?
...
Рейтинг: 0 / 0
26.08.2019, 21:01
    #39853912
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
shalamyansky,

в таблицах мониторинга дисковая активность есть
...
Рейтинг: 0 / 0
26.08.2019, 21:57
    #39853922
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
Посмотрел, и правда есть. Ну, буду иметь в виду, если что, спасибо. Но к решению задачи, вынесенной в заголовок, это, к сожалению, не сильно приближает.

Хотелось бы, например, иметь инструмент а-ля совокупные таблицы мониторинга по всем базам.
...
Рейтинг: 0 / 0
26.08.2019, 23:34
    #39853951
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
shalamyanskyсовокупные таблицы мониторинга по всем базамЭто вряд ли.
Вот трейс - работает независимо от БД.
Но если там, например, один запрос молотит полчаса и не выдаёт записи - трейс его только по окончании покажет
...
Рейтинг: 0 / 0
27.08.2019, 12:02
    #39854120
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
shalamyanskyА как посмотреть дисковую активность конкретной нитки? По процессам еще можно как-то, но по нитям?

ну и смотри по процессам, зачем тебе нити?

ты ж говоришь у тебя все остальные БД в idle

process monitor, фильтр по процессу fbserver, фильтр по маске файлов типа *.fdb и смотришь как часто и какая БД вываливается

тебе же сам говоришь надо не нить найти, а БД!

shalamyanskyконнект к какой базе грузит процессор
...
Рейтинг: 0 / 0
27.08.2019, 12:05
    #39854123
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
Resource Monitor показывает IO в разбивке по файлам
...
Рейтинг: 0 / 0
27.08.2019, 12:07
    #39854124
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
а в ProcExp есть жесткий способ - открываешь мониторилку дисковой нагрузки, например Диспетчер Задач в Windows 8+, в PE открываешь список нитей процесса, и начинаешь нитям по одной делаеть Suspend/Resume, и смотришь при усыплении какой нити димсковая активность резко падает. ...если конечно, тебе нити реально нужны зачем-то. Надеюсь полусекундную приостановку любой нити FB переживёт без фатальных последствий.
...
Рейтинг: 0 / 0
27.08.2019, 13:46
    #39854180
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
Arioch,

нужно или очень хорошо понимать внутренности испытуемого процесса, или
совершенно ничего не понимать в мультипоточном программировании, чтобы нести такую чушь.
...
Рейтинг: 0 / 0
27.08.2019, 13:58
    #39854186
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
hvlad,

а что самое фатальное может случиться в FB при полусекундном suspend любой нити в ситуации
shalamyansky при отсутствии активности со стороны клиентов длительное время (более суток) полностью загружена Firebird'ом одна нитка процессора ?

отвалятся несколько фоновых транзакций, который запускаются независимо от действий пользователя?
...
Рейтинг: 0 / 0
27.08.2019, 14:00
    #39854188
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
Arioch,

фатального - ничего, отвалится - не надейся.
Всё просто остановится.
...
Рейтинг: 0 / 0
29.08.2019, 20:45
    #39855360
shalamyansky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Superserver: как узнать, какой коннект грузит процессор?
Ariochprocess monitor, фильтр по процессу fbserver, фильтр по маске файлов типа *.fdb


Да, воспользовался process monitor'ом, спасибо за подсказку. Давненько не брал я в руки шашек. Нужная база быстро нашлась, когда ситуация повторилась. Проблема таки оказалась в клиенте (Java Spring JPA). Зачем он начинает вдруг бомбардировать сервер непрерывными запросами по кругу, предстоит еще разбираться. Но это уже другая история.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Superserver: как узнать, какой коннект грузит процессор? / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]