Я пытаюсь получить с сервера 5 или 10 приложений по загрузке ЦП с помощью NodeJS. Я могу получить всю память и свойства диска с помощью ('os') lib, но есть ли способ получить память и использование процессора для конкретного приложения. Не для всех систем.
С Уважением
Для приложений Windows Server. Я хочу увидеть 5 лучших приложений из диспетчера задач с их использованием процессора и оперативной памяти
Вы можете получить эту информацию несколькими способами, здесь - с помощью пакета текущие процессы (фактически, это пример использования этой библиотеки):
const _ = require('lodash');
const ps = require('current-processes');
ps.get((err, processes) => {
if (err) throw err
let sorted = _.sortBy(processes, 'cpu');
let top5 = sorted.reverse().splice(0, 5);
console.info(top5);
});
Это выведет 5 первых процессов, упорядоченных по использованию ЦП. Фактически, в библиотеку попадают все процессы, а мы просто фильтруем результат, чтобы получить нужную нам информацию.
Таким же образом мы можем отфильтровать только один процесс, если нам нужно. Например, если мы хотим найти использование процессором процесса Fire Fox:
const ps = require('current-processes');
ps.get((err, processes) => {
if (err) throw err
processes.map(process => {
if (process.name == 'firefox')
console.info(process)
});
});
Или, если вам не нужны какие-либо зависимости, вы можете сделать это напрямую, например, с помощью команды ps
(в Linux). Во всяком случае, как библиотека текущие процессы делает это внутри:
const exec = require('child_process').exec;
exec('ps -C firefox -o %cpu,%mem', (err, stdout) => {
if (err) throw err
console.info(stdout)
})
Это именно то, что я искал. Спасибо
Для всех систем или конкретной?