Подтвердить что ты не робот

C API для загрузки процессора в Linux

В linux есть встроенная функция библиотеки C для получения загрузки процессора на компьютере? Предположительно, я мог бы написать свою собственную функцию для открытия и разбора файла в /proc, но кажется, что должен быть лучший способ.

  • Не нужно переносить
  • Не требуется никаких библиотек, кроме базовой установки RHEL4.
4b9b3361

Ответ 1

Если вам действительно нужен интерфейс c, используйте getloadavg(), который также работает в unixes без /proc.

Он имеет справочную страницу со всеми подробностями.

Ответ 2

Предпочтительным способом получения информации о загрузке ЦП на Linux является чтение из /proc/stat, /proc/loadavg и /proc/uptime. Все обычные утилиты linux, такие как верхний, используют этот метод.

Ответ 3

на странице руководства proc (5):

   /proc/loadavg
          The  first  three  fields  in this file are load average figures
          giving the number of jobs in the run queue (state R) or  waiting
          for disk I/O (state D) averaged over 1, 5, and 15 minutes.  They
          are the same as the load average numbers given by uptime(1)  and
          other  programs.  The fourth field consists of two numbers sepaâ
          rated by a slash (/).  The first of these is the number of  curâ
          rently   executing   kernel   scheduling   entities  (processes,
          threads); this will be less than or equal to the number of CPUs.
          The  value  after  the  slash is the number of kernel scheduling
          entities that currently exist on the system.  The fifth field is
          the  PID  of  the  process that was most recently created on the
          system.

Ответ 4

Я понимаю, что синтаксический анализ содержимого /proc является официальным интерфейсом для такого рода вещей (есть несколько файлов, которые действительно должны быть проанализированы перед представлением пользователю).

Ответ 5

"Средняя загрузка" может быть не очень полезной. Мы считаем, что это ограниченное использование, так как оно фактически не говорит вам, сколько процессор используется, только среднее количество задач, "готовых к запуску". "Готов к запуску" несколько субъективен, но не очень полезен, поскольку он часто включает процессы, ожидающие ввода-вывода.

В системах с занятостью мы видим среднее значение нагрузки 20+ на машинах с 8 ядрами, и все же процессоры относительно простаивают.

Если вы хотите посмотреть, какой процессор используется, посмотрите на различные файлы в/proc