Архив метки: Linux

Taskset — привязка процесса к ядрам CPU

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




Переключимся на root пользователя:




sudo -i




Просмотр краткой справки по taskset:




taskset -h




Узнаем ID процесса bird или любого другого нужного процесса:




pidof bird




Посмотрим каким ядрам назначен этот процесс:




taskset -pc 744

taskset -p -c 744




Можно указать все в одной команде:




taskset -cp `pidof bird`




Например у меня отобразилось, что на все ядра:




pid 744’s current affinity list: 0-27




Посмотрим сколько ядер имеет процессор и сколько есть процессоров:




lscpu | grep -i numa




Например у меня отобразилось:




NUMA node(s): 2
NUMA node0 CPU(s): 0-13
NUMA node1 CPU(s): 14-27




В моем случае второй процессор загружен на 10% меньше чем первый, поэтому я привязал процесс к ядрам второго процессора:




taskset -pc 14-27 `pidof bird`




Или укажем на все кроме 0:




taskset -pc 1-27 `pidof bird`




В ответ у меня отобразилось:




pid 17092’s current affinity list: 0-27
pid 17092’s new affinity list: 14-27




Проверим:




taskset -pc `pidof bird`




Если с указанным именем запущено несколько процессов, то можно использовать скрипт (на примере процесс ixnfo_com):




(for thread in $(ps -T -C ixnfo_com | awk '{print $2}' | grep -E '[0-9]'); do /usr/bin/taskset -pc $thread; done)




Например у меня отобразилось:




pid 2455's current affinity list: 0-27

pid 2458's current affinity list: 0-27

pid 2459's current affinity list: 0-27

pid 2460's current affinity list: 0-27

pid 2461's current affinity list: 0-27

pid 2463's current affinity list: 0-27




Теперь привяжем все эти процессы к нужным ядрам:




(for thread in $(ps -T -C ixnfo_com | awk '{print $2}' | grep -E '[0-9]'); do /usr/bin/taskset -pc 14-27 $thread; done)




Чтобы изменения не сбросились после перезапуска операционной системы, укажем команду например в файле /etc/rc.local.




Источник: https://ixnfo.com/taskset.html



2023-02-16T01:55:10
Утилиты командной строки

nice и ionice. Приоритеты процессов

nice — позволяет указывать приоритет выполнения процессором различных задач, диапазон приоритетов -20 до 19, где 19 наименьший, если не указать, то будет стандартный приоритет 0. Удобен например при упаковке данных в архивы, чтобы эта задача не грузила сервер или когда нужно запустить много процессов, распределив нагрузку, которые занимают все процессорное время.




Пример выполнения команды с самым низким приоритетом:




nice -n 19 КОМАНДА




Посмотреть таблицу процессов и их приоритетов можно так (колонка NI):




ps axlps -l




Если таблица большая, можно перенаправить вывод команды в Less и смотреть постранично:




ps axl | less




Чтобы изменить приоритет:




renice -n 19 ПРОЦЕСС(PID)




Проверка значения приоритета по умолчанию (стандартно 0):




nice




ionice — позволяет указать приоритет при операциях ввода/вывода, например чтобы снизить нагрузку на диск. Первым указывается класс от 1 до 3, потом приоритет от 0 до 7, где 7 наименьший.
Классы есть трех видов:
1) Real time — Преимущественный без обращения внимания на другие процессы с указанием приоритетов от 0 до 7.
2) Best Effort — Стандартный с указанием приоритетов от 0 до 7.
3) Idle — При простое без указания приоритетов.




Пример выполнения команды с самым низким приоритетом ввода/вывода:




ionice -c2 -n7 КОМАНДА




Для изменения приоритета:




ionice -c2 -n7 -p ПРОЦЕСС(PID)




Для просмотра установленного приоритета:




ionice -p ПРОЦЕСС(PID)




Можно указать одновременно приоритеты через nice и ionice:




ionice -p ПРОЦЕСС(PID)




Для указания высоких приоритетов например могут понадобится root права, по этому команды нужно выполнять от имени root пользователя либо добавив перед командой sudo.




Источник: https://ixnfo.com/nice-ionice.html



2023-02-16T01:48:36
Утилиты командной строки

Wolvic 1.3 выходит с улучшениями поддержки и многим другим

волчий

Firefox Reality теперь будет жить под названием «Wolvic».

В выпуск новой версии Wolvic 1.3, в котором были внесены различные улучшения и исправления, помимо которых он имеет еще и довольно неплохие особенности, такие как совместимость с Pico4, Pico4E и Meta Quest Pro.

Для тех, кто не знаком с браузером, могу сказать, что проект продолжает развитие браузера Firefox Reality, ранее разработанного Mozilla, поскольку браузер использует веб-движок GeckoView, вариант движка Mozilla Gecko, упакованный в виде отдельной библиотеки, которую можно обновлять независимо.





Читать

Linux Audit Framework: все о команде Auditd

Linux Audit Framework: все о команде Auditd

Linux Audit Framework: все о команде Auditd

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

Но эта коллекция охватывала лишь скромную 60 линукс-команд. И учитывая, что в большинстве дистрибутивов GNU/Linux в среднем доступны сотни команд, пришло время постепенно обратиться к другим подобным или более важным, продвинутым или специализированным командам. Такой как Команда аудита Linux o «Структура аудита Linux», о котором мы поговорим сегодня в этом посте.



Читать

Использование архиватора xz в Linux

Сегодня в статье рассмотрим как пользоваться архиватором xz




Ранее мы рассмотрели Zip, 7-Zip в Linux. В этом руководстве мы поговорим ещё об одном архиваторе – xz.






Мы знаем, что Zip – это стандартный кроссплатформенный инструмент архивирования. Итак, зачем вообще использовать xz?




xz создает архивы гораздо меньшего размера, чем gzip, следовательно, мы можем считать xz лучшей заменой gzip. Мы проверим утверждение о меньших архивах в следующем разделе.




Недостатком xz является то, что он поставляется не со всеми дистрибутивами Linux. Но мы можем установить его с помощью утилиты yum или apt.




Установка xz в Linux




Чтобы установить xz в Debian/Ubuntu, используйте следующую команду:




sudo apt-get install xz-utils




Использование xz для отдельных файлов




Давайте используем xz для сжатия одного файла. Использование идентично gzip:




xz -v data.csv




  • -v позволяет xz отображать информацию о ходе выполнения.




xz имеет те же уровни сжатия 1-9, что и gzip. Сжатие по умолчанию равно 6.  Итак, вот как сжать файл с минимальным уровнем сжатия 1:




xz -v1 data.csv




Для распаковки одного файла используем следующий синтаксис:




xz -dv data.csv.xz




или




unxz data.csv.xz




Использование tar с xz




Как и в случае с gzipxz сжимает только один файл. Вот почему мы должны использовать xz вместе с утилитой tar для сжатия нескольких файлов или целых каталогов. Вот пример сжатия файлов *.csv:




tar cJvf archive.tar.xz *.csv




  • Мы сжимаем все файлы с расширением csv в текущем каталоге в сжатый архив archive.tar.xz



  • Параметр J позволяет выполнять сжатие с помощью xz



  • Из-за опции v tar показывает, какие файлы добавляются в архив




Уровень сжатия по умолчанию 6. Как мы можем это изменить?




Здесь мы указываем минимальный уровень сжатия 1:




tar cvf archive.tar.xz --use-compress-program='xz -1' *.csv




Пожалуйста, обратите внимание, что мы удалили параметр J здесь, потому что –-use-compress-program уже устанавливает программу сжатия.




Распаковка архива tar с помощью xz:




tar xvf archive.tar.xz




  • Мы распаковываем файл archive.tar.xz и извлекаем его содержимое в текущий каталог



  • Из-за опции v tar показывает, какие файлы извлекаются из архива




Более быстрое сжатие с помощью многопоточности




В отличие от gzipxz напрямую поддерживает многопоточность, что ускоряет сжатие.




По умолчанию xz использует только один поток. Мы можем указать количество потоков с помощью параметра -T. 




Значение 0 указывает xz использовать один поток для каждого доступного ядра процессора:




xz -vT0 data.csv




Здесь мы будем использовать три потока:




xz -vT3 data.csv




Использование многопоточности с помощью tar




Ранее мы указывали уровень сжатия с помощью опции --use-compress-program . Теперь мы включаем многопоточность с помощью опции  --use-compress-program, задав количество потоков. Здесь мы снова используем один поток для каждого ядра процессора:




tar cvf archive.tar.xz --use-compress-program='xz -1T0' *.csv




Заключение




В этой статье мы узнали, как сжимать и распаковывать отдельные файлы с помощью архиватора xz.



[endtxt]




. . . .




2023-02-04T00:10:40
Arhivators

Команды Linux: самые важные для освоения в 2023 году

Команды Linux: самые важные для освоения в 2023 году

Команды Linux: самые важные для освоения в 2023 году

En Апрель 2018 мы сделали небольшую подборку о самых важных «Команды линукса» в то время, и как это случилось по сей день почти 5 лет (февраль 2023 г.), мы сочли нужным, обновили и улучшили указанный контент.

Итак, мы выбрали 60 команд из сотен, которые существуют, чтобы любой новичок и начинающий пользователь мог иметь представление о том, какие команды изучать в первую очередь, чтобы постепенно осваивать Терминал Linux.



Читать