linux: Есть ли способ сбросить очередь выполнения задачи?

Я столкнулся с необычной проблемой экстремальной нагрузки на холостых условиях .

Есть ли способ напрямую сбрасывать очередь запуска планировщика процессов Linux?
Например, когда sar -q выводит 400 как runq-sz , чтобы получить эти 400 PID?

ps , top и друзья, кажется, слишком «медленны», чтобы сделать мгновенный снимок, потому что они показывают только несколько процессов в состоянии D или R

2 Solutions collect form web for “linux: Есть ли способ сбросить очередь выполнения задачи?”

Я не знаю, как сбросить очередь запуска, но вы можете получить другую информацию, используя perf . Например, если создается буря новых процессов, вы можете проследить их с помощью

 perf record -e sched:sched_process_exec -a 

Остановите запись с помощью Control-C и посмотрите результаты с perf report . Вы также можете просмотреть простые, но мощные скрипты, основанные на perf которые собрал Брендан Грегг .

Посмотрев прямо на исходный код ядра, вы можете просматривать такие задачи, как следующее.

 struct task_struct *process, *thread; int cnt = 0; rcu_read_lock(); for_each_process_thread(process, thread) { task_lock(thread); /* do something with the task properties: thread->state; thread->wake_cpu; thread->pid; thread->comm; */ task_unlock(thread); cnt++; } rcu_read_unlock(); - struct task_struct *process, *thread; int cnt = 0; rcu_read_lock(); for_each_process_thread(process, thread) { task_lock(thread); /* do something with the task properties: thread->state; thread->wake_cpu; thread->pid; thread->comm; */ task_unlock(thread); cnt++; } rcu_read_unlock(); 

Самая важная часть – заблокировать задачи RCU при входе и разблокировке при выходе. Вы будете указывать этот дамп в модуле ядра и предоставлять среднее значение для извлечения списка в команде пользовательского пространства.

Я предлагаю вам прочитать и усовершенствовать ваши потребности в моем примере в GitHub @ dumptask

  • Минус и Плюс Вход в систему
  • Получение pid скрипта bash от себя
  • контролировать множественные пипы с верхним
  • Если компьютеры начинают отсчет в 0, почему процесс init имеет pid из 1?
  • Как отключить процесс от родителя?
  • Родная и не родная поддержка потокового / процесса программирования в Linux?
  • Содержимое файла / proc / <PID> / cmdline зависит от скрипта shebang?
  • как гарантировать, что программа всегда работает, но без доступа root?
  • как определить, сколько раз pid_max завернут?
  • Есть ли возможность установить родительский процесс при создании нового процесса?
  • Что произойдет, если соединение dbus завершится неудачей?
  • Interesting Posts

    В Bash, почему PROMPT_COMMAND установлен на что-то невидимое?

    Как получить тип внутреннего устройства для чтения карт?

    Vim запоминает настройки отредактированных файлов

    Могу ли я стереть свой SSD из самого диска?

    sed – извлечь значение путем подстановки из первой строки, соответствующей второй регулярной линии, следующей строке с 1-м регулярным выражением

    Как установить образ жесткого диска OpenBSD на Linux?

    Как смотреть видео Netflix / Amazon на Firefox 49?

    Скрипт завершения работы выполняется дважды

    Использование winexe для запуска команд «wmic» на машине Windows

    Как сделать пакет rpm, который устанавливает среду Java, если необходимо

    Centos6: увеличение пространства без потери данных

    Индексирование рабочего стола с помощью KDE

    Автоматическое выполнение команд при открытии терминала

    Горизонтальное конкатенирование периодически

    Модуль ядра для подключения клавиатуры ps / 2 к USB?

    Linux и Unix - лучшая ОС в мире.