По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Данная тема важна так как позволяет изменять приоритет процессов в операционной системе Linux. Иногда возникает такая ситуация, что необходимо изменить приоритет процессов, какой - то процесс сделать более приоритетным, отдав побольше ресурсов, а какой-то менее приоритетным забрав часть ресурсов сервера. В данной теме мы рассмотрим следующие вопросы: Научимся определять приоритеты процессов; Рассмотрим, как запускать программы с повышенным приоритетом или с пониженным; Посмотрим, как изменять приоритет запущенных программы. В Linux любой процесс может иметь приоритет от -20 до +19. Во FreeBSD до +20. Максимальным приоритетом считается, тот процесс у которого минимальное число. Т.е. максимальный по приоритету процесс будет иметь число - 20, а минимальный -19 соответственно. Поэтому задача с приоритетом -20 будет выполняться в первую очередь с максимум ресурсов и наоборот задача с +19 будет выполняться в последнюю очередь и минимум ресурсов. Linux для установки приоритетов использует такую программу nice и renice. Для того, чтобы рассмотреть данную тему воспользуемся командой ps aux. Запуская данную команду мы получаем все сведения о запущенных процессах на данном сервере. Так же мы можем увидеть от какого пользователя данный процесс запущен. Теперь мы используем другой набор ключей для команды ps. Чтоб получить нам интересующий вывод данных используем команду ps alx. Мы можем видеть, что получили немного другую информацию. Появилась колонка, промаркированная "NI" и колонка "PRI". Мы можем видеть, что верхние процессы выполняются с nice 0, т.е. это авторитет по умолчанию, который присваивается если не сказано иного. Возьмем другой вариант команды ps, с другими ключами. ps -eo user,pid,pcpu,nice,comm -e - ключ показывать все -o - output т.е какая информация нужна, далее в команде перечисляется необходимая информация (колонки) После ввода данной команды, мы видим, что столбцов стало меньше. Только то, что мы запрашивали, пользователь, ID процесса, загрузка CPU, приоритет и какая команда. Для того, чтобы понять, что такое приоритет, попробуем использовать команду sleep, которая позволяет, остановить операционную систему на указанное число секунд. sleep 10000 & И выведем команду ps -eo user,pid,pcpu,nice,comm | grep sleep, используя pipline сортируем по названию процесса sleep. Вот, что у нас вышло. Видим наш запущенный процесс. Далее запустим какую-нибудь задачу с максимальным приоритетом. Это полезно если мы хотим запустить, какой ни будь серьезный процесс, чтобы он получил максимальный приоритет. Как пример, срочная переиндексация базы данных на сервере с максимальным приоритетом или программку, которая будет собирать информацию о системе с минимальным приоритетом. nice sleep 60000 И мы можем увидеть, что появился наш процесс со значение 10 по умолчанию. Десять - это приоритет по умолчанию, и он ниже, чем ноль. Чем выше значение, тем приоритет ниже. Т.е. получается если мы запускаем с командой niсе, то процесс запускает с приоритетом ниже в 2 раза, чем просто если бы запустили. Мы можем принудительно завершить процессы. killall sleep. Попробуем запустить задачу с минимальным приоритетом. Для этого воспользуемся параметром. Команда будет выглядеть следующим образом. nice -n 19 sleep 6000 Как мы видим все получилось. Процесс запущен с минимальным приоритетом. Аналогично запускается процесс с максимальным приоритетом. nice -n -20 sleep 6000 Тут нужно пояснить, что задачи с наивысшим приоритетом, могут пользователи только с правами root. Если мы бы попытались сделать из-под обычного пользователя, то ничего у нас бы не вышло. killall sleep, еще раз завершим принудительно процессы. Запустим еще раз процесс с наименьшим приоритетом. nice -n 19 sleep 60000. Теперь изменим приоритет текущего процесса. Для этого есть следующая команда: renice 5 -p 416802 - т.е 5 - новый приоритет , 416802 - id процесса. Как мы видим все успешно поменялось. Вот таким образом мы можем динамически менять приоритеты. В Операционной системе Windows мы так же можем менять приоритеты в менеджере задач, но если там пять уровней, то в Linux их получается 40. Мы можем так же менять приоритеты определенному пользователю. renice приоритет -u пользователь Данные команды, нам позволяют гибко управлять распределением ресурсов на нашем сервере.
img
В данной статье посмотрим и разберем, как создать простейшие ресурсы в облаке AWS (Amazon Web Services) с помощью замечательного инструмента IaaS, под названием Terraform. Для того, чтобы можно было повторить то, о чем пойдет речь в статье необходим действующий аккаунт AWS и рабочая машина (виртуальный сервер) с установленным Terraform, и текстовым редактором Atom + плагин для Terraform. Первоначальная настройка данных инструментов разбиралась в предыдущих статьях. Описание в статье пойдет под операционную систему CentOS. Вы можете для тренировки использовать на свой вкус любую. Для начала создадим папку под наш новый проект, можно непосредственно в домашней директории. sudo mkdir terraform Создадим первый файл нашего терраформ кода. Можно создать непосредственно в редакторе, через меню или в командной строке sudo touch myterr.tf. Принципиальной разницы, как будет создан файл нет. Если создали через командную строку открываем, как обычный файл в редакторе. Далее схема работы следующая: пишем код в файле, сохраняем, производим управляющие команды в командной строке для выполнения или проверки данного кода, уничтожения, модификации элементов или объектов в облаке. Как в начале статьи было сказано, нам необходим аккаунт AWS, чтобы терраформ взаимодействовал с облачной инфраструктурой, а более конкретно нам нужно создать пользователя и получить access key и secret key, для доступа к облаку. Это необходимо для аунтификации Terraform в AWS облаке. Заходим в AWS консоль и выбираем сервис IAM. Заходим во вкладку пользователи и создаем новую учетную запись. Вводим имя пользователя в пустое поле. Нужно поставить Programmatic Фccess. Далее нажимаем Создать пользователя и попадаем на закладку назначения прав. Тут необходимо присоеденить уже созданный по умолчанию в AWS набор прав администратора. Далее переходим к страничке назначения Tag, тут по желанию вашему, если хотите то можете добавить тэги. Нажимаем кнопку создать пользователя. Финальное окно будет выглядеть следующим образом. Получаем те данные, которые нам необходимы для Terraform. Очень важно - Secret key показывается только один раз! Теперь в принципе все готово для создания первого ресурса в AWS. Начинаем с объявления с каким облаком мы работаем. provider “aws” { } Тем самым мы обозначили с каким облачным провайдером мы будем работать. В данном коде в отличии от YAML, количество пробелов не важно. Далее прописываем access key и secret key. В каком регионе будут использоваться ресурсы. Регион мы укажем eu-central-1 – это ЦОД расположенный в Европе во Франфуркте. Старайтесь регион указывать, поближе к себе, чтобы до ресурсов была минимальная задержка прохождения пакетов. provider “aws” { access_key = “тут ключ доступа” secret key = “тут секретный ключ” region = “eu-central-1” } При нажатии Ctrl+S, мы сохраняем и видим, что плагин аккуратно выправляет для удобства написанный код. Теперь можно сделать первый ресурс. Например, инстанс в Амазон. Добавляем ниже: resource “aws_instance” “my_название” { ami = “” instance_type = “” } Для поднятия ресурса необходимо указать 2 минимальные вещи. Это ami – image id и instance_type. Теперь необходимо пойти в указанный регион, открыть EC2 и посмотреть ami интересующего инстанса. А тип возьмем t2.micro. Данный тип для новых аккаунтов на год бесплатный. Получаем код полностью готовый для развертывания первого инстанса. В принципе все готово для запуска первого инстанса. Код Terraform будет выглядеть следующим образом: provider “aws” { access_key = “тут ключ доступа” secret key = “тут секретный ключ” region = “eu-central-1” } resource “aws_instance” “TestUbuntu” { ami = “ami-0767046d1677be5a0” instance_type = “t2.micro” } Запускаем консоль и переходим в директорию, где находится у нас Terraform. Далее есть небольшой нюанс запуска, чтобы в коде не светить свои access_key и secret_key, эти данные можно убрать, экспортировав в переменные. Делается это следующим образом. С помощью команды export. export AWS_ACCESS_KEY_ID=ключ export AWS_SECRET_ACCESS_KEY=ключ И можно убирать эти 2 строчки из кода. Теперь запускаем Terraform. Первая команда, которую необходимо сделать это команда terraform init, данная команда пройдется по всем tf файлам, она увидит провайдера и скачает дополнительные файлы, необходимые для запуска в том числе и бинарники. Сам Terraform – это такая оболочка, которая подкачивает все, что ей необходимо. Следующая команда, которая понадобится это terraform plan, данная команда позволяет посмотреть, что Terraform будет делать. Т.е нечто вроде Whatif. Данная команда очень важна т.к в крупных проектах, позволяет заранее посмотреть, что будет если мы запустим файл терраформа. Вывод ее большой, кусочек представлен на картинке. Можно увидеть, что добавится. Достаточно удобно. Как мы видим, при команде на deploy, Terraform добавит в амазон 1 instance, т.е 1 виртуальную машину из указанного шаблона, указанного типа и размера. Непосредственно для deploy, необходимо ввести команду terraform apply, прочитать что Terraform будет делать и явным образом, командой yes подтвердить. После подтверждения видим следующую картину. Со стороны консоли. Со стороны амазона спустя полминуты. Как мы видим сервер создался и проходит инициализацию.
img
Как только пакет переносится через шину на исходящую линейную карту или указатель на буфере пакетов перемещается из входной очереди в выходную очередь, сетевому устройству все еще остается работать. Рисунок ниже иллюстрирует это. Обратите внимание на кольцо, показанное на рисунке, это кольцо передачи, а не кольцо приема. На рисунке есть четыре шага: Шаг 1. Пакет передается на передающую сторону маршрутизатора для переадресации. Здесь может потребоваться обработка после переключения, в зависимости от платформы и конкретных функций; они не показаны на этом рисунке. Сначала будет предпринята попытка поместить пакет непосредственно на кольцо передачи, где он может быть передан. Если кольцо уже имеет пакет на нем, или если кольцо заполнено (в зависимости от реализации), пакет не будет помещен на кольцо передачи. Если пакет помещен на кольцо передачи, Шаг 2 пропускается (что означает, что пакет не будет обработан с использованием каких-либо правил Quality of Service [QoS]). В противном случае пакет помещается в очередь вывода, где он будет ожидать передачи в кольцо передачи. Шаг 2. Если пакет не может быть помещен на кольцо передачи, он будет помещен в очередь вывода для хранения в течение некоторого времени. Шаг 3. Код передачи периодически перемещает пакеты из очереди вывода в кольцо передачи. Порядок, в котором пакеты берутся из очереди вывода, будет зависеть от конфигурации QoS; Шаг 4. В какой-то момент после того, как пакет был перемещен в кольцо передачи, передающий PHY-чип, который считывает каждый бит из буфера пакетов, кодирует его в надлежащий формат для исходящего физического типа носителя и копирует пакет на провод.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59