Якщо вгорі відображаються великі навантаження, і ви не знаєте, чи процес, що викликає це, робить час процесора чи робить мережевий введення-виведення (не локальний введення-вивід), як це можна дізнатись?
На нашому сервері я бачу високі значення для навантаження, але в поєднанні з 60% -70% в режимі очікування та близько 25% користувачів. Мені хотілося б знати, як інтерпретувати такі значення, але в Інтернеті я майже завжди читаю, що ви можете користуватися іостатом, щоб побачити, чи процес перебирає ваші диски. Але я вже точно знаю, що це не так. Проблемний процес також не має проблем із виконанням своєї роботи, але все ж навантаження велика.
Отже, чи є спосіб дізнатися більше, яка частина викликана мережевим очікуванням, а яка - викликана реальним процесорним часом? І яке значення "простоювати" вгорі?
Для наочності: під навантаженням я маю на увазі 3 числа, які означають середні процеси в черзі на ядро. На цій машині є 8 ядер, і кількість доходить до 25, так що це навантаження 2,5 на ядро.
htop
заглядати в процеси. Зокрема, це дозволяє вам вибрати процес, а потім, скориставшись l
командою, він покаже всі відкриті файли, використовуючи пристрої, lsof
включаючи IPv4
та IPv6
передаючи потоки тощо. Якщо ви strace
встановили на свій ящик, ви також можете налагодити системний виклик та сигнал. Не зовсім відповідь, але інший інструмент, який я б розглядав для того, що ви намагаєтесь дослідити.
uptime
виході)?