IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [680]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [357]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [171]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1340
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2015 » Апрель » 22 » Администрирование систем Linux. Приоритеты процессов
    14:47
    Администрирование систем Linux. Приоритеты процессов

    Администрирование систем Linux. Приоритеты процессов

    Оригинал: Process priorities
    Автор: Paul Cobbaut
    Дата публикации: 12 марта 2015 г.
    Перевод: A. Панин
    Дата перевода: 28 марта 2015 г.

    Глава 2. Приоритеты процессов

    2.1. Приоритеты процессов и значения nice

    2.1.1. Введение

    Все процессы в системе имеют соответствующие приоритеты и значения nice. Процессы с более высокими приоритетами будут получать больше процессорного времени, нежели остальные процессы с низкими приоритетами. Вы можете повлиять на распределение процессорного времени, воспользовавшись утилитами nice и renice.

    2.1.2. Именованные программные каналы (утилита mkfifo)

    Процессы могут обмениваться информацией друг с другом посредством именованных программных каналов. Эти именованные программные каналы могут создаваться с помощью утилиты mkfifo.

    В примере ниже показана процедура создания четырех отдельных именованных программных каналов (в новой директории).

     

    paul@ubuntu910:~$ mkdir procs
    paul@ubuntu910:~$ cd procs/
    paul@ubuntu910:~/procs$ mkfifo pipe33a pipe33b pipe42a pipe42b
    paul@ubuntu910:~/procs$ ls -l
    итого 0
    prw-r--r-- 1 paul paul 0 2010-04-12 13:21 pipe33a
    prw-r--r-- 1 paul paul 0 2010-04-12 13:21 pipe33b
    prw-r--r-- 1 paul paul 0 2010-04-12 13:21 pipe42a
    prw-r--r-- 1 paul paul 0 2010-04-12 13:21 pipe42b
    paul@ubuntu910:~/procs$
    

     

    2.1.3. Увлекательные манипуляции с утилитой cat

    Для демонстрации методики использования утилит top и renice мы будем применять комбинацию из утилиты cat и созданных ранее именованных программных каналов с целью полного исчерпания вычислительных ресурсов центрального процессора.

    Бинарный файл cat должен быть скопирован в текущую директорию с отличным именем. (Это позволит нам достаточно просто отслеживать созданные процессы с помощью утилиты top. Вы можете выполнить эти же действия и без копирования бинарного файла cat, но с использованием различных учетных записей пользователей. Или же вы можете просто отслеживать значения идентификаторов каждого из созданных процессов.)

     

    paul@ubuntu910:~/procs$ cp /bin/cat proj33
    paul@ubuntu910:~/procs$ cp /bin/cat proj42
    paul@ubuntu910:~/procs$ echo -n x | ./proj33 - pipe33a > pipe33b &
    [1] 1670
    paul@ubuntu910:~/procs$ ./proj33 <pipe33b >pipe33a &
    [2] 1671
    paul@ubuntu910:~/procs$ echo -n z | ./proj42 - pipe42a > pipe42b &
    [3] 1673
    paul@ubuntu910:~/procs$ ./proj42 <pipe42b >pipe42a &
    [4] 1674
    

     

    Команды, которые вы можете обнаружить в примере выше, предназначены для создания двух процессов с именами proj33, которые на самом деле будут являться экземплярами утилиты cat, выполняющими циклическую передачу символа x с помощью именованных программных каналов pipe33a и pipe33b. Те же самые манипуляции осуществляются процессом с именем proj42 с символом z.

    2.1.4. Утилита top

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

     

    top - 13:59:29 up 48 min, 4 users, load average: 1.06, 0.25, 0.14
    Tasks: 139 total, 3 running, 136 sleeping, 0 stopped, 0 zombie
    %Cpu(s): 0.3 us, 99.7 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
    Mem: 509352k total, 460040k used, 49312k free, 66752k buffers
    Swap: 746980k total, 0k used, 746980k free, 247324k cached
    

     

    Обратите внимание на нулевое значение времени простоя центрального процессора (cpu idle time 0.0 id). Оно объясняется тем, что наши процессы cat используют все вычислительные ресурсы центрального процессора. Результаты могут отличаться при использовании систем с четырьмя или большим количеством ядер центрального процессора.

    2.1.5. Команда top -p

    Команда top -p 1670,1671,1673,1674 из примера ниже позволяет выводить информацию о четырех процессах, каждый из которых использует примерно 25 процентов вычислительных ресурсов центрального процессора.

     

    paul@ubuntu910:~$ top -p 1670,1671,1673,1674
     PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    1674 paul 20 0 2972 616 524 S 26.6 0.1 0:11.92 proj42
    1670 paul 20 0 2972 616 524 R 25.0 0.1 0:23.16 proj33
    1671 paul 20 0 2972 616 524 S 24.6 0.1 0:23.07 proj33
    1673 paul 20 0 2972 620 524 R 23.0 0.1 0:11.48 proj42
    

     

    Все четыре процесса имеют одинаковый приоритет (столбец PR) и на равных соревнуются за время центрального процессора. В некоторых системах ядро Linux может использовать немного отличающиеся значения приоритетов процессов, но в любом случае в результате описанных выше манипуляций четыре процесса будут на равных соревноваться за время центрального процессора.

    2.1.6. Утилита renice

    Так как упомянутые ранее процессы уже исполняются, нам придется использовать утилиту renice для изменения их значений nice (столбец NI).

    В примере ниже показана методика использования утилиты renice по отношению к обоим процессам с именами proj33.

     

    paul@ubuntu910:~$ renice +8 1670
    1670 (process ID) old priority 0, new priority 8
    paul@ubuntu910:~$ renice +8 1671
    1671 (process ID) old priority 0, new priority 8
    

     

    Обычные пользователи могут устанавливать значения nice для своих процессов из диапазона от 0 до 20. Отрицательные значения nice может устанавливать исключительно пользователь root. Будьте осторожны при использовании отрицательных значений nice, так как в случае их установки управление системой с помощью клавиатуры или удаленной командной оболочки, работающей по протоколу ssh, может быть значительно осложнено или же вообще окажется невозможным.

    2.1.7. Влияние значений nice на работу процессов

    Влияние значения nice на работу процесса может может варьироваться. В примере ниже показан результат исполнения нашей команды renice +8. Обратите внимание на значения доли процессорного времени из столбца %CPU для каждого из процессов.

     

     PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    1674 paul 20 0 2972 616 524 S 46.6 0.1 0:22.37 proj42
    1673 paul 20 0 2972 620 524 R 42.6 0.1 0:21.65 proj42
    1671 paul 28 8 2972 616 524 S 5.7 0.1 0:29.65 proj33
    1670 paul 28 8 2972 616 524 R 4.7 0.1 0:29.82 proj33
    

     

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

    2.1.8. Утилита nice

    Утилита nice функционирует аналогично утилите renice, но применяется в момент запуска приложения.

    В примере ниже показана методика исполнения сценария с значением nice, равным пяти.

     

    paul@ubuntu910:~$ nice -5 ./backup.sh
    

     

    2.2. Практическое задание: приоритеты процессов

     

    1. Создайте новую директорию и шесть именованных программных каналов в ней.

     

    2. Инициируйте циклическую передачу символа посредством двух именованных программных каналов.

     

    3. Используйте утилиты top и ps для вывода информации (pid, ppid, приоритет, значение nice, ...) о двух созданных процессах cat.

     

    4. Инициируйте циклическую передачу другого символа посредством двух других именованных программных каналов, но в этот раз используйте утилиту nice для запуска приложений. Проверьте, соревнуются ли созданные процессы за все вычислительные ресурсы центрального процессора. (Не забывайте о том, что в случае необходимости вы можете создать еще два или большее количество процессов cat, использующих оставшиеся программные каналы).

     

    5. Используйте утилиту ps для установления факта использования двумя новыми процессами cat измененных значений nice. Для этого используйте параметры -o и -C утилиты ps.

     

    6. Используйте утилиту renice для увеличения значения nice процессов c 10 до 15. Обратите внимание на отличия в работе данных процессов и процессов со стандартными значениями nice.

     

     

    2.3. Корректная процедура выполнения практического задания: приоритеты процессов

     

    1. Создайте новую директорию и шесть именованных программных каналов в ней.

     

    [paul@rhel53 ~]$ mkdir pipes ; cd pipes
    [paul@rhel53 pipes]$ mkfifo p1 p2 p3 p4 p5 p6
    [paul@rhel53 pipes]$ ls -l
    итого 0
    prw-rw-r-- 1 paul paul 0 апр 12 22:15 p1
    prw-rw-r-- 1 paul paul 0 апр 12 22:15 p2
    prw-rw-r-- 1 paul paul 0 апр 12 22:15 p3
    prw-rw-r-- 1 paul paul 0 апр 12 22:15 p4
    prw-rw-r-- 1 paul paul 0 апр 12 22:15 p5
    prw-rw-r-- 1 paul paul 0 апр 12 22:15 p6

     

    2. Инициируйте циклическую передачу символа посредством двух именованных программных каналов.

     

    [paul@rhel53 pipes]$ echo -n x | cat - p1 > p2 &
    [1] 4013
    [paul@rhel53 pipes]$ cat <p2 >p1 &
    [2] 4016

     

    3. Используйте утилиты top и ps для вывода информации (pid, ppid, приоритет, значение nice, ...) о двух созданных процессах cat.

     

    top (скорее всего, две верхних строки)
    
    [paul@rhel53 pipes]$ ps -C cat
     PID TTY TIME CMD
    4013 pts/0 00:03:38 cat
    4016 pts/0 00:01:07 cat
    
    [paul@rhel53 pipes]$ ps fax | grep cat
    4013 pts/0 R 4:00 | \_ cat - p1
    4016 pts/0 S 1:13 | \_ cat
    4044 pts/0 S+ 0:00 | \_ grep cat
     

     

    4. Инициируйте циклическую передачу другого символа посредством двух других именованных программных каналов, но в этот раз используйте утилиту nice для запуска приложений. Проверьте, соревнуются ли созданные процессы за все вычислительные ресурсы центрального процессора. (Не забывайте о том, что в случае необходимости вы можете создать еще два или большее количество процессов cat, использующих оставшиеся программные каналы).

     

    echo -n y | nice cat - p3 > p4 &
    nice cat <p4 >p3 &

     

    5. Используйте утилиту ps для установления факта использования двумя новыми процессами cat измененных значений nice. Для этого используйте параметры -o и -C утилиты ps.

     

    [paul@rhel53 pipes]$ ps -C cat -o pid,ppid,pri,ni,comm
     PID PPID PRI NI COMMAND
    4013 3947 14 0 cat
    4016 3947 21 0 cat
    4025 3947 13 10 cat
    4026 3947 13 10 cat

     

    6. Используйте утилиту renice для увеличения значения nice процессов c 10 до 15. Обратите внимание на отличия в работе данных процессов и процессов со стандартными значениями nice.

     

    [paul@rhel53 pipes]$ renice +15 4025
    4025 (process ID) old priority 10, new priority 15
    [paul@rhel53 pipes]$ renice +15 4026
    4026 (process ID) old priority 10, new priority 15
    
    [paul@rhel53 pipes]$ ps -C cat -o pid,ppid,pri,ni,comm
     PID PPID PRI NI COMMAND
    4013 3947 14 0 cat
    4016 3947 21 0 cat
    4025 3947 9 15 cat
    4026 3947 8 15 cat

     

    http://rus-linux.net/MyLDP/BOOKS/LSA/ch02.html

    Категория: Linux и не только | Просмотров: 585 | Добавил: laptop | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024