У меня есть система с двумя процессами - MySQL и Java
Я вижу 20-30% времени, проведенного в% system. Я осмотрелся, чтобы попытаться найти способ определить, каков баланс системного времени между процессами, то есть это процессы MySQL, использующие 90% этого системного времени, или это Java?
Загрузка ввода / вывода низкая, 1-2% загрузки в IOSTAT. Мы не используем сетевой трафик. Так что мне интересно, переключение ли это контекста. Процесс MySQL имеет около 400 потоков, а процесс Java - 3000. Я хочу иметь возможность измерить / доказать, что эти номера потоков являются проблемой, а не просто предположением.
Это пакетный процесс, поэтому мы активно пытаемся работать как можно быстрее, с максимальной загрузкой процессора с минимальными накладными расходами.
Из pastebin похоже, что вы меняете местами, поэтому системное время будет соответствовать страницам подкачки ядра для вашего Java-приложения. Если использование для вас неприемлемо, уменьшите объем ОЗУ, Java может съесть или увеличить объем ОЗУ на вашем сервере.
Я не думаю, что переключение контекста играет важную роль, поскольку, хотя я вижу ksoftirqd
работает (что обычно означает, что в какой-то момент было много прерываний), его процессорное время очень мало по сравнению с вашим приложением.