Почему возможно, что использование ЦП объединенными процессами превышает общее использование ЦП, как сообщает top? ⇐ Linux
Почему возможно, что использование ЦП объединенными процессами превышает общее использование ЦП, как сообщает top?
Когда я проверяю верхнюю часть с задержкой в 0,5 секунды, иногда общий процент состояния ЦП оказывается ниже суммы использования ЦП отдельными процессами.
Вот пример, где это наблюдается:
вверх - 09:12:45 до 23:28, 1 пользователь, средняя нагрузка: 0,95, 0,34, 0,17 Тем: всего 173, 1 работает, 172 спит, 0 остановлено, 0 зомби. %Cpu0: 2,1 мкс, 2,1 си, 0,0 ни, *95,7 идентификатор*, 0,0 ва, 0,0 привет, 0,0 си, 0,0 ст %Cpu1: 0,0 мкс, 0,0 си, 0,0 ни, *100,0 идентификатор*, 0,0 ва, 0,0 привет, 0,0 си, 0,0 ст MiB Mem: всего 3865,6, 2371,1 бесплатно, 255,8 использовано, 1238,7 баффов/кэша. Замена MiB: 0,0 всего, 0,0 бесплатно, 0,0 использовано. 3441,9 использовать Мем PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ КОМАНДА 5527 Марс 20 0 564188 22352 14556 С *13,5* 0,6 0:21,67 /дома/... 5536 Марс 20 0 564856 20548 15020 S *11.5* 0.5 0:17.66 /дома/... 5367 Марс 20 0 12900 3468 2880 R *3.8* 0.1 0:03.07 ... 5540 Марс 20 0 564856 20548 15020 С *3.8* 0.5 0:00.62 /дома/... 5544 Марс 20 0 564856 20548 15020 S *3.8* 0.5 0:08.58 /дома/... 5530 Марс 20 0 564188 22352 14556 С *1,9* 0,6 0:05.00 /дома/... ... За последние 0,5 секунды:
[*]добавление использования ЦП отдельными процессами дает >=38,3% (13,5+11,5+3,8+3,8+3,8+1,9=38,3%). Я настроил top для работы в режиме Solaris (когда загрузка ЦП задачей делится на общее количество ЦП) [*]Платформа, которую я использую, имеет два ядра, поэтому, даже если я настрою верх неправильно, я получу 38,3%/2=19,15% [*]ЦП 0 использовался только 4,3 %: 95,7 % в режиме ожидания. [*]ЦП 1 не использовался: 100,0 % в режиме ожидания.
Почему загрузка ЦП объединенными процессами превышает общую загрузку ЦП?
Для контекста:
[*]Я использую «производительность» для политики регулятора частоты ЦП. /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor [*]Процессы, которые я запускаю, — это узлы ros2 (минимальный издатель и минимальный подписчик) [*]Я работаю на компьютере со следующими характеристиками:
lscpu Архитектура: aarch64 Режим(ы) работы ЦП: 32-битный, 64-битный Порядок байтов: Little Endian Процессор(ы): 2 Онлайн-список процессоров: 0,1 Идентификатор поставщика: ARM Название модели: Кортекс-А72 Модель: 3 Потоков на ядро: 1 Ядро(а) на кластер: 2 Розетки): - Кластер(ы): 1 Степпинг: r0p3 Макс. частота ЦП: 1300,0000 Минимальная частота ЦП: 300,0000 БогоМИПС: 50.00 Флаги: fp asimd evtstrm crc32 cpuid НУМА:
Узлы NUMA: 1 NUMA node0 ЦП: 0,1 Уязвимости:
Мультихит Itlb: не влияет L1tf: Не влияет МДС: Не влияет Крах: Не затронут Обход хранилища спецификаций: не затронуто Spectre v1: смягчение последствий; __очистка указателя пользователя Spectre v2: смягчение последствий; Усиление предсказателя ветвей Србдс: Не влияет Асинхронное прерывание Tsx: не затронуто
Для получения дополнительной информации
[*]Я пробовал инструменты для снятия стресса (такие как стресс и стресс-нг); [*]Когда я запускаю эти инструменты стресса (и ничего больше, кроме Top), общее использование ЦП очень близко к использованию, которое я указываю с помощью инструмента стресса.
Краткое описание того, что я пробовал: . Пробовал: топ -d 0.5 . Ожидание: общее использование ЦП всегда превышает сумму использования ЦП процессами. . это не всегда встречается. Почему бы и нет?
Когда я проверяю верхнюю часть с задержкой в 0,5 секунды, иногда общий процент состояния ЦП оказывается ниже суммы использования ЦП отдельными процессами.
Вот пример, где это наблюдается:
вверх - 09:12:45 до 23:28, 1 пользователь, средняя нагрузка: 0,95, 0,34, 0,17 Тем: всего 173, 1 работает, 172 спит, 0 остановлено, 0 зомби. %Cpu0: 2,1 мкс, 2,1 си, 0,0 ни, *95,7 идентификатор*, 0,0 ва, 0,0 привет, 0,0 си, 0,0 ст %Cpu1: 0,0 мкс, 0,0 си, 0,0 ни, *100,0 идентификатор*, 0,0 ва, 0,0 привет, 0,0 си, 0,0 ст MiB Mem: всего 3865,6, 2371,1 бесплатно, 255,8 использовано, 1238,7 баффов/кэша. Замена MiB: 0,0 всего, 0,0 бесплатно, 0,0 использовано. 3441,9 использовать Мем PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ КОМАНДА 5527 Марс 20 0 564188 22352 14556 С *13,5* 0,6 0:21,67 /дома/... 5536 Марс 20 0 564856 20548 15020 S *11.5* 0.5 0:17.66 /дома/... 5367 Марс 20 0 12900 3468 2880 R *3.8* 0.1 0:03.07 ... 5540 Марс 20 0 564856 20548 15020 С *3.8* 0.5 0:00.62 /дома/... 5544 Марс 20 0 564856 20548 15020 S *3.8* 0.5 0:08.58 /дома/... 5530 Марс 20 0 564188 22352 14556 С *1,9* 0,6 0:05.00 /дома/... ... За последние 0,5 секунды:
[*]добавление использования ЦП отдельными процессами дает >=38,3% (13,5+11,5+3,8+3,8+3,8+1,9=38,3%). Я настроил top для работы в режиме Solaris (когда загрузка ЦП задачей делится на общее количество ЦП) [*]Платформа, которую я использую, имеет два ядра, поэтому, даже если я настрою верх неправильно, я получу 38,3%/2=19,15% [*]ЦП 0 использовался только 4,3 %: 95,7 % в режиме ожидания. [*]ЦП 1 не использовался: 100,0 % в режиме ожидания.
Почему загрузка ЦП объединенными процессами превышает общую загрузку ЦП?
Для контекста:
[*]Я использую «производительность» для политики регулятора частоты ЦП. /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor [*]Процессы, которые я запускаю, — это узлы ros2 (минимальный издатель и минимальный подписчик) [*]Я работаю на компьютере со следующими характеристиками:
lscpu Архитектура: aarch64 Режим(ы) работы ЦП: 32-битный, 64-битный Порядок байтов: Little Endian Процессор(ы): 2 Онлайн-список процессоров: 0,1 Идентификатор поставщика: ARM Название модели: Кортекс-А72 Модель: 3 Потоков на ядро: 1 Ядро(а) на кластер: 2 Розетки): - Кластер(ы): 1 Степпинг: r0p3 Макс. частота ЦП: 1300,0000 Минимальная частота ЦП: 300,0000 БогоМИПС: 50.00 Флаги: fp asimd evtstrm crc32 cpuid НУМА:
Узлы NUMA: 1 NUMA node0 ЦП: 0,1 Уязвимости:
Мультихит Itlb: не влияет L1tf: Не влияет МДС: Не влияет Крах: Не затронут Обход хранилища спецификаций: не затронуто Spectre v1: смягчение последствий; __очистка указателя пользователя Spectre v2: смягчение последствий; Усиление предсказателя ветвей Србдс: Не влияет Асинхронное прерывание Tsx: не затронуто
Для получения дополнительной информации
[*]Я пробовал инструменты для снятия стресса (такие как стресс и стресс-нг); [*]Когда я запускаю эти инструменты стресса (и ничего больше, кроме Top), общее использование ЦП очень близко к использованию, которое я указываю с помощью инструмента стресса.
Краткое описание того, что я пробовал: . Пробовал: топ -d 0.5 . Ожидание: общее использование ЦП всегда превышает сумму использования ЦП процессами. . это не всегда встречается. Почему бы и нет?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение