Я исследую, может ли быть полезным использование неблокирующего ввода-вывода для Java REST-сервера. Я понимаю, что это может быть правдой, если приложение связано с IO. Чтобы определить это, мне нужно знать количество одновременных запросов пользователей, которые я делаю, а также время, когда каждый запрос блокирует ввод-вывод. Сервер использует традиционную модель потокового соединения и требует нескольких (сетевых) обращений к базе данных.
Мой вопрос: какой самый простой способ определить (измерить) время, которое приложение блокирует при вводе-выводе?
В идеале я хотел бы знать это для каждого потока, программно или с использованием внешних инструментов (командной строки, профилировщиков?). Я смотрел на такие инструменты, как vmstat и top (сервер работает на linux), но эти инструменты, похоже, не считают сетевые вызовы временем ожидания ввода-вывода.