Как я могу контролировать использование ЦП пользователем?

Мне нужно контролировать использование ЦП пользователями двух серверов (Ubuntu и CentOS). Например:

user1 5% user2 10% ... 

Есть ли инструмент, похожий на top или htop который может это сделать?

  • Как модули ядра Linux становятся доступными в пакете ядра Linux-дистрибутива?
  • Как реализовать предложение об установке пакета на Debian?
  • Почему возобновление спящего режима приостанавливается / зависает?
  • Будет ли загрузочный ubuntu в режиме восстановления использовать раскладку клавиатуры по умолчанию?
  • Как синхронизировать все настройки Gnome / Unity на нескольких компьютерах?
  • Компиляция и запуск Snapper для Ubuntu
  • Обновление единого пакета от Ubuntu Utopic Unicorn при запуске Trusty Tahr
  • Запустить скрипт после входа в систему, который выводит на терминал приветственное сообщение?
  • One Solution collect form web for “Как я могу контролировать использование ЦП пользователем?”

    Вот сценарий для печати общего использования ЦП для каждого пользователя, зарегистрированного в настоящее время , showPerUserCPU.sh :

     own=$(id -nu) for user in $(who | awk '{print $1}' | sort -u) do # print other user's CPU usage in parallel but skip own one because # spawning many processes will increase our CPU usage significantly if [ "$user" = "$own" ]; then continue; fi (top -b -n 1 -u "$user" | awk -v user="$user" 'NR>7 { sum += $9; } END { print user, sum; }') & done wait # print own CPU usage after all spawned processes completed top -b -n 1 -u "$own" | awk -v user=$own 'NR>7 { sum += $9; } END { print user, sum; }' 

    И вот немного измененная версия для печати использования ЦП всех доступных пользователей (но пропускающих те, у которых использование ЦПУ равняется нулю), showAllPerUserCPU.sh :

     own=$(id -nu) for user in $(getent passwd | awk -F ":" '{print $1}' | sort -u) do # print other user's CPU usage in parallel but skip own one because # spawning many processes will increase our CPU usage significantly if [ "$user" = "$own" ]; then continue; fi (top -b -n 1 -u "$user" | awk -v user=$user 'NR>7 { sum += $9; } END { if (sum > 0.0) print user, sum; }') & done wait # print own CPU usage after all spawned processes completed top -b -n 1 -u "$own" | awk -v user=$own 'NR>7 { sum += $9; } END { print user, sum; }' 

    Существует также связанный скрипт для отображения общего объема использования памяти для каждого пользователя: showPerUserMem.sh

    Для мониторинга в реальном времени просто выполняйте эти сценарии периодически с помощью команды watch .

    Interesting Posts

    Заменить "\/"

    настройки по умолчанию и различные файловые системы

    Перенаправление портов PPTP

    Как задать вопрос пользователям при входе в систему?

    Фильтрация результата команды find, так что она возвращает только каталоги

    Ошибки после автономной установки Kali на Dell XPS 13

    Как я могу подавить пространство между сгенерированными аргументами во время расширения фигурной скобки?

    Использовать SWAP в качестве дискового кеша в Linux

    Xrandr показывает экран без текущего / активного разрешения

    Будет ли этот метод восстановления LUKS LVM rsync работать?

    Некоторые приложения охватывают мой верхний бар в dwm

    Как отображать дубликаты между 2 репозиториями

    Что находится в истории команд нового окна терминала?

    Для перенаправления ввода существуют функциональные различия между bash / zsh <<< «$ (<файл)» и традиционным <file?

    Как прозрачный прокси-сервер SOCKS знает, какой IP-адрес назначения использовать?

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