Bash Days | Linux | DevOps
23.3K subscribers
147 photos
25 videos
671 links
Авторский канал от действующего девопса

Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу.

Автор: Роман Шубин
Реклама: @maxgrue

MAX: https://max.ru/bashdays

Курс: @tormozilla_bot
Блог: https://bashdays.ru
Download Telegram
В сентябре Selectel запустил OpenFix – программу для тех, кто хочет делать open source безопаснее, чище и надежнее. Там пул задач по рефакторингу на Rust, пакетизацию приложений, исправление багов с оплатой от 30 000 до 350 000 ₽.

При этом – ПО распространяется по пермиссивной лицензии, мейнтейнером остается автор, а код — в свободном доступе.

Проект получился живым и крутым – команда получила много заявок, более 8 больших задач уже в работе.

Весь движ – на странице проекта. Следите за тем, как идет работа над задачами, делитесь своим мнением и ждите дроп новых активностей!

Реклама, АО «Селектел», erid: 2VtzqwEKGLE
14
Имба — Mail Archiver.

В двух словах: Агрегатор и бекапер всех твоих почтовых ящиков с удобным поиском.

Ставишь как self-hosted, добавляешь любые учетки по IMAP (+ M365) и вся твоя почта бекапится на локальный NAS или S3.

Фича — можешь зачистить всю почту на серверах и потом одной кнопкой из бекапа обратно восстановить все письма. Как вариант если закончилось место, но письма удалять жалко.

Например, можно перелить почту из одного сервиса в другой в пару кликов. А главное — Бесплатно!

Короче знатная штука, однозначно оставляю у себя в proxmox, да и движение селф-хостеров её прям зарекомендовали на фоне других подобных решений.

Можешь на ютубе глянуть, там обзорчики уже наснимали.


🛠 #utilites #backup

@bashdays @linuxfactory @blog
Please open Telegram to view this post
VIEW IN TELEGRAM
377
This media is not supported in your browser
VIEW IN TELEGRAM
Не придумывайте планы на субботу — Сбер уже всё организовал! 👌

25 октября встречаемся на IT Community Day в Санкт-Петербурге, чтобы обсудить влияние AI на IT-тренды и будущее разработки.

Выбирайте свой трек:

✔️ AI — от генерации кода до мультиагентных систем.
✔️ Java — архитектура, производительность, масштабирование.
✔️ QA+AI — новые подходы и практики разработки.
✔️ Soft skills — карьера и развитие инженера в эпоху AI.

Регистрируйтесь по ссылке, пока места ещё есть. До встречи 25 октября в 11:20 по адресу: ул. Уральская, д.1 (литера Ч)!
11
Хорошие девопсы копируют, великие — воруют

Я тут чет ёба дал и решил потихоньку расковыривать Макса, пока только начинаю, но до кишочков тоже доберемся.

Под это дело, я завел отдельный телеграм канал. В котором мы с тобой создадим канал в Максе, раскрутим его с минимальными вложениями и выйдем на доход > 200к рублей в месяц.

Звучит хуёва, знаю, может ничего и не получится. Но я постараюсь применить все свои знания в маркетинге и поделиться с тобой. Да и это бесплатно для тебя.

План надежный, как швейцарские часы.


Все шаги буду подробно описывать, можешь повторять и глядишь сможешь выйти на пассивный доход.

😇🙂🙃😉😌😍🥰😘
😗😙😚😋😛😝😜🤪
🤨🧐🤓😎🤩🥳😏😒
😞😔😟😕🙁☹️😣😖
😫😩🥺😢😭😤😠😡

Кстати сегодня закинул пост про создание канала без наличия 10к подписчиков. Пока хак работает, так что не проебись.


Если интересно понаблюдать за движухой, подписывайся, вместе веселее. Там и комменты глядишь подключим и лося выебем.

Подписаться: Макс на Максимум
Please open Telegram to view this post
VIEW IN TELEGRAM
1225
Вчера сижу, проверяю домашки. Приходит СМС, мол Роман спасибо, что совершили покупку, с вашего бонусного счета списано 2450 рублей.

Я репу почесал и хуй забил. Потом появилась минутка, думаю — а пойдука я разберусь чё это было. Нашел отправителя смс, нашел компанию. Да, я там обслуживаюсь иногда.

Но схуяли с меня списали баллы? Я там давно не был и ничего не покупал. Азарт взял своё.

Первым делом написал в саппорт, меня по шаблону послали нахуй. Окей… Ну раз так, значит найдем директора и позвоним ему.

Звонить не стал, чет зассал. Но написал в мессенджере. Описал ситуацию, скрины приложил.

На той стороне солидный мужчина (по аватарке) знатно охуел, но ответил — Принято, свяжусь с вами позже.

Часа через три, звонок — Зрасти, так и так, сотрудник компании спустя месяц после испытательного, получил доступы в базу клиентов и теперь активно списывает баллы с клиентов, кто больше полугода не обращался в компанию. Списывает в свою пользу, то есть оплачивает баллами товары для себя любимого.

Охуительный план! Надежный!

Спустили на тормозах, поржали. Сотрудник был выкинут на улицу.

Мораль — сначала изучи как работает система и только потом мути свои грязные схемки. Если тебе мало платят или обижают, нахуй ты там вообще работаешь?

Человека банально уволили из-за автоматического СМС, которое прикрутил какой-то айтишник в рамках рутинного спринта.

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

Кстати потом следом пошел и еще одну компанию разъебал, давно хотел, тоже впарили услугу, но услугу не предоставили. Сегодня уже возврат упал на карточку.


Как говорится — с миру по нитке. Не давай себя в обиду 😲

🛠 #рабочиебудни

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
9142
У меня Obsidian бекапится в git, естественно он торчит наружу жопой. Репа конечно же приватная, но чем черт не шутит.

Каких-то критичных данных я в заметках не храню, ну спиздят и спиздят, пусть читают как на bash программировать. Мне не жалко.

Но недавно понадобилось мне зашифровать некоторые заметки. Поизучал я различные варианты и остановился на плагине — Meld Encrypt.

Плагин ставится через морду Obsidian одной кнопкой, ничего настраивать из коробки не нужно.

Слева появляется иконка — New Encrypt Note, забиваешь туда пароль, подсказку. Создается исходный файл в формате mdenc, а не нативный markdown с расширением .md.

Внутри исходного файла json`чик вида:

{
"version": "2.0",
"hint": "My Hint",
"encodedData": "tH/epIAOSgeGQQtO7FTcM="
}


Что прикольно, ты можешь зашифровать не всю заметку, а только её часть либо критические данные в каком-нибудь пайплайне. Выделяешь эти данные и слева жмешь иконку — Ecrypt Selection.

Теперь этот файл .mdenc заливает в git и не зная правильного пароля хуй кто прочтет твою заметку, даже если её спиздят. Аналогично с заметками где ты зашифровал часть данных.

Шифрованная часть внутри заметки выглядит так:

🔐β 💡My Hint💡ls92E5jV+HlAfZMML== 🔐


Короче полет нормальный. Хер знает насколько сильный там энкрипт, но от лишних глаз эта штука защищает.

В одном из issue в репе есть комментарий — «I have reviewed the code and noticed that it uses AES-GCM with a fixed IV and a password-derived key.»

Ну и по коду могу сказать что работает примерно так:

Пользователь задаёт пароль для шифрования.

Ключ генерится на основе пароля, скорее всего это PBKDF2.

Шифрование проходит по схеме AES-GCM. Шифр AES, режим Galois/Counter Mode с поддержкой аутентификации (В коде есть тэг MAC).

Не уверен, но возможно используется фиксированный IV инициализационный вектор.

Автор плагина походу сам не знает, что он написал. Поэтому подстраховался и добавил в ридми — «Use at Your Own Risk», мол идите нахуй, если вас подломят я тут не причем.

Присмотрись, штука довольно полезная. В хозяйстве сгодится.

🛠 #encrypt #obsidian #utilites

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
1164
Дожились блядь, схватил погремуху на LF. (скрином поделился: Антон Жданов) публикую с его разрешения и с разрешения участника диалога. Так что все блядь прозрачно и согласовано!

- Каждому лектору в жопу по вектору
- Лучше в жопу сунуть глобус чем у ЦУМА сеть в автобус
- Если ты не голубой нарисуй вагон другой


Новый бренд чтоль мутитиль - Сёледка под Шубой?

Ладно хули, рутина. Дела, люди всем двором на LF идут, устраивают челеджи, кто на какой задачке вперед сдохнет ))

Всех с пятницей, хороших тебе предстоящих выходных, ну и по классике — береги себя!

🛠 #рабочиебудни

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
745
Олды могут помнить эту замечательную игруху, называлась она Star Trek, придумал и реализовал ее Майк Мэйфилд в 1971 году.

Короче некий энтузиаст запилил ее на чистом Bash и притащил в современный мир под названием Bash Trek.

Это пошаговая стратегия, да, прям в терминале.

Цель игры — уничтожить всех клингонов в галактике, найдя их и вступив с в бой с помощью фазеров и торпед.

Устанавливается просто:

cd /tmp
wget https://github.com/StarShovel/bash-trek/raw/main/bashtrek.sh
chmod +x bashtrek.sh
./bashtrek.sh


И погнали сводить скулы.

Как играть:

Нажми на цитату чтобы развернуть

— Галактика — это сетка 8×8 квадрантов, каждый квадрант — 8×8 позиций.

— При навигации тебе будет предложено направление (0-7 как «ферзь» в шахматах, восемь возможных направлений) и расстояние (количество шагов).

— Если есть препятствие (звезда, клингон, червоточина), то максимальная дистанция движения будет ограничена и интерфейс покажет это.

— Червоточины («wormholes») могут появляться в квадрантах, если ты войдешь в червоточину, тебя телепортирует в случайное место в галактики.

— При входе в квадрант с клингонами, они могут атаковать твой корабль. Щиты (SHI) защищают, но если они севшие — тебе пезда.

— У тебя есть база (starbase), если ты подлетишь к базе, торпеды, щиты и энергия восстанавливаются.

— Есть временные ограничения «stardate» (звёздная дата), до которой нужно уничтожить всех клингов, если не успеешь — тебе пезда.


Короче затягивает, протупил сегодня пару часов, ни разу так и не победил.

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

🛠 #games #игры

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
647
Как прокачать Minecraft сервер с помощью Angie

Накидал пост о том, как мы мигрировали minecraft сервер на выделенный сервер и защитились от ботов с помощью Angie, просто и эффективно.

Сюда по классике не влезло, всё в блоге 👇

Читать: https://two.su/bieb4

🛠 #angie #devops #security

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
550
This media is not supported in your browser
VIEW IN TELEGRAM
Ха! Сегодня будем тыкать палкой «Крокодила».

Croc — это кроссплатформенный CLI-тор. С помощью этой штуки можно передавать файлы/каталоги между устройствами. Без айпи, хуйни и лишнего гемора.

Работает по принципу «отправь, введи код, получи по ебалу».

Установка под всё:

curl https://getcroc.schollz.com | bash
brew install croc
scoop install croc
choco install croc
winget install schollz.croc


Начнем! Я буду передавать файлы c Linux сервера на свою виндовую машину.

На Linux сервере запускаю:

cd /tmp && echo "Hello BashDays" >> bashdays.txt
croc send bashdays.txt


Получаем:

Sending 'bashdays.txt' (15 B)
Code is: 2811-spray-cabinet

On the other computer run:
(For Windows)
croc 2811-spray-cabinet
(For Linux/macOS)
CROC_SECRET="2811-spray-cabinet" croc


Так, идем на Windows машину и запускаем:

croc 2811-spray-cabinet


То есть берем «секретную строку» и передаем её получателю. Получатель запускает команду выше и видит:

C:\Users\user>croc 2811-spray-cabinet
Accept 'bashdays.txt' (15 B)? (Y/n) Y

Receiving (<-92.52.131.227:10350)
bashdays.txt 100% |████████████████████| (15/15 B, 73 B/s)


А на Linux машине:

Sending (->92.52.131.227:9015)
bashdays.txt 100% |████████████████████| (15/15 B, 41 kB/s)


Вуаля! Проверяем файл на винде, всё прекрасно передалось!

«Крокодил» не требует VPN, SSH, SCP, FTP, использует end-to-end шифрование (AES-256), работает между любыми ОС.

Фича — можно передать каталог, не архивируя его. Ну и как self-hosted воткнуть, чтобы уж совсем не параноить, как истеричка.

Да, есть прикол, что при получении ты вводишь «секретный код» и он отпечатается в истории команд, это хуйня. Поэтому просто запускаем croc и оно в интерактиве запросит код, вводишь код и дело в шляпе. В историю команд ничего не попало.

А если автокоды тебе в хуй не уперлись, можешь через ключик -code впендюрить свой код доступа. Всё гибко, покури репку и описание, там прям можно на многое повлиять, вплоть до создания своего relay.


Под капотом P2P протокол через relay-сервер — работает даже если устройства за NAT.

На Android кстати тоже порт есть в F-Droid.


🛠 #utilites #tools #selfhosting

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
263
Как «сократить» расходы

Несколько лет я занимался планированием годового бюджета на айти сервисы и различные технические развлекухи.

И каждый раз пытался максимально закрутить гайки. Выкинуть нахуй сервисы, которые жрут бабки, но вроде бы не нужны особо. Можно отказаться, да у себя часть поднять.

С одной стороны делал полезную работу, с другой стороны всегда было ощущение — а нахуя я этим занимаюсь?

Зачем я это делаю, это понятно, а вот нахуя я пытаюсь сократить расходы — непонятно. Деньги то всёравно не мои. Если я сокращу расходы, моя ЗП не вырастит.

Ну да ладно. Пост про другое.

Как бы ты не менял поставщиков гандонов, пока ты не придумаешь как выращивать эти гандоны в своём огороде — нихрена не поменяется.

Допустим ты придумал и начал выращивать гандоны в своём огороде.

Хотя их можно и не выращивать, позови 10 человек на собес и 9 из них будут гандонами. Неплохо? Ага!


Блядь, всё отвлекаюсь. Короче выращиваешь ты гандоны и сэкономил 1000 баксов. Охуенно? Охуенно!

Но в итоге ты получаешь — саппорт этого огородика, решение технических проблем, отбивка тикетов от орущих сучек и т.п. Но зато сэкономил 1000 баксов компании.

Видишь где наебалово? Знаю, видишь…

Теперь у тебя часть команды поддерживает производство гандонов, тратит на это время, в какой-то момент задачи из спринта перестают запиливаться вовремя. Ага, нужно нанять еще людей, нанимают человека за 1000 баксов в месяц.

Теперь всё в порядке. Отдельный человек решает все вопросы с производством гандонов, а задачи в спринте вновь запиливаются вовремя. Людей хватает.

Сэкономили, молодцы. Только вот эта сэкономленная тыща баксов идет на ЗП новому сотруднику + компания платит за сотрудника налоги, пенсионные и т.п. сборы в казну. 1000 баксов превращается в 1500 баксов.

Заебись сэкономили! Ну вот и я про тоже.

А как сокращать расходы-то? Если ты мелкий стартап, то никак, поменьше пиздежа, побольше работы. Закупай готовые гандоны от производителя и не пытайся их производить сам. Смысла в этом нет. Сосредоточься на своём продукте.

Но если у тебя 100500 компаний и они связаны между собой, то вполне разумно поднять свою гандонную фабрику, нанять человека за 1000 баксов, чтобы он следил за производством и поставлял продукцию в твои 100500 компаний.

Чё еще сказать. Если что-то делаешь, подумай — а нахуя я это делаю? Сейчас да, разумно поднимать свои гандонные фабрики и свои сервисы, но это разумно лишь в текущих реалиях, когда загнивающие дрочепаки обложили нас санкциями.

Всё, иду я нахуй дальше диван продавливать. Удачи!

🛠 #трудовыебудни

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
1252
Профессиональная деформация

Каждый раз когда вижу урл вида:

https://bashdays.ru/?p=4893


Невольно тянется рука поставить в конце символ ' и посмотреть что будет.

Башкой понимаю, что в современном мире такое сработает 1 раз на 100кк, но ничего поделать с собой не могу. Когда видишь потенциальную дырку — нужно попробовать вставить.

А какая у тебя деформация? Поделись своим скелетом в комментах 😲

Кстати LF подорожал, кто не успел или кого выперло, заходите, раздам 30 промокодов по 1000 рубасов. Для тех кто уже занимается, повышений не будет.


🛠 #трудовыебудни

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
25
Хотелось бы поговорить о гувернантках, но будем обсуждать губернаторов. (governors).

🔤🔤🔤🔤🔤🔤🔤

Сейчас практически везде идет борьба за экологию, поэтому производители пытаются делать процы «зелеными». Есть нагрузка - частоту поднимают, нет нагрузки - частоту снижают и сразу падает тепловыделение и энергопотребление.

Так вот, управляют частотой/производительностью/энергопотреблением специальные алгоритмы, которые называются governors. Чтобы было проще выбирать, их наштамповали несколько видов:

performance — максимальная производительность (Ну, почти максимальная)
powersave — максимальное энергосбережение
ondemand — быстрое изменение частоты от нагрузки
conservative — медленное изменение частоты от нагрузки
schedutil — интеграция с планировщиком ядра Linux

К сожалению не все губеры доступны для вашей системы. Список доступных можно посмотреть так:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors


Вот, у меня на ноуте доступны только два: performance schedutil

Используемый в настоящее время:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor


Обратите внимание, governor задается для каждого ядра отдельно.

Ну, и для чего это нужно. Иногда бывают процелюбивые задачи. (кодирование видео и аудио, конверсия фоток, многопоточная компрессия, шифрование...)

И пофигу на электроэнергию и тепловыделение, лишь бы быстрее закончилась. Тогда можно на время выполнения задачи изменить governor.

Делается это простым скриптом:

#!/bin/bash
declare -a KEEP_GOVERNOR
declare DIR_PREFIX=/sys/devices/system/cpu
declare SET_GOVERNOR='performance'
declare -i NPROC=$(nproc) # число ядер (процессоров)
declare -i PRESENT=0

#Проверка поддержки governor системой
for G in $(cat "$DIR_PREFIX/cpu0/cpufreq/scaling_available_governors");do
if [[ "$SET_GOVERNOR" == "$G" ]];then
PRESENT=1
break
fi
done

if !((PRESENT));then
echo GOVERNOR $SET_GOVERNOR not supported.
printf "Available governors : "
cat "$DIR_PREFIX/cpu0/cpufreq/scaling_available_governors"
exit 1
fi

# Keep current setting
I=NPROC
while ((I--));do
KEEP_GOVERNOR[$I]=$(cat "$DIR_PREFIX/cpu${I}/cpufreq/scaling_governor")
done

# Set (Для установки требуются привилегии)
I=NPROC
while ((I--));do
echo "$SET_GOVERNOR">"$DIR_PREFIX/cpu${I}/cpufreq/scaling_governor"
done

#Здесь ВАШ код

sleep 10

##############

# Restore settings
I=NPROC
while ((I--));do
echo "${KEEP_GOVERNOR[$I]}">"$DIR_PREFIX/cpu${I}/cpufreq/scaling_governor"
done


Если все делать в ручном режиме. Поменять governor для всех ядер можно командой:

sudo echo performance| sudo tee /sys/devices/system/cpu/cpu{0..1}/cpufreq/scaling_governor


здесь performance - задаваемый governor

{0..1} - описание числа процессоров (ядер). Для шестнадцати {0..15}.

Такая установка проживет до перезагрузки. Если требуется постоянные настройки - можно поставить в cron @reboot, прописать в grub или воспользоваться специальными утилитами.

Продолжение следует.

🛠 #cpu #performance #frequency #governor

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
36
Здесь я рассказал, как просто управлять производительностью сервера с помощью governors.

🔤🔤🔤🔤🔤🔤🔤

Но есть еще один способ: Прямое управление частотой.

Дело в том, что governor задает только скорость нарастания и убывания частоты, в зависимости от нагрузки. Сами частоты заданы в файлах:

/sys/devices/system/cpu/cpu0/cpufreq/

scaling_min_freq
scaling_cur_freq
scaling_max_freq

Но и пределы частоты тоже можно менять.

Правда на некоторых процессорах их нельзя менять произвольно, их список может быть жестко задан. Обычно список допустимых частот описан в файле

/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

(это для нулевого ядра)

У меня на ноуте, например, 1350000 1200000 1000000

Посмотреть частоты можно здесь:

cpuinfo_min_freq - минимальная частота ядра
cpuinfo_cur_freq - текущая
cpuinfo_max_freq - максимальная

👆 Надеюсь, всем понятно, что разогнать проц данным способом не получится.

Таким образом, командой типа:

cp cpuinfo_max_freq scaling_min_freq

Любой governor превращается в performance. Пути к файлам я опустил, и на всякий случай напомню, что частоты задаются для каждого ядра отдельно.

Кстати, повышать частоты требуется не всегда.

Приведу пример:

У меня работает роутер на мини-PC. Если использовать его только как роутер - нагрузка максимум 5%.

Я поставил туда торрент-качалку. А она может загрузить проц, даже если использовать nice. Но я задал минимальную частоту в качестве максимальной:

cp cpuinfo_min_freq scaling_max_freq

Теперь мини-PC холодный, даже если прикидывается сервером и работает на 100% (В полку).

Код для установки максимальной производительности получается несколько проще, чем с governor:

#!/bin/bash
declare -a KEEP_MINFREQ
declare DIR_PREFIX=/sys/devices/system/cpu
declare -i NPROC=$(nproc) # число ядер (процессоров)

# Keep current setting
I=NPROC
while ((I--));do
KEEP_MINFREQ[$I]=$(cat "$DIR_PREFIX/cpu${I}/cpufreq/scaling_min_freq")
done

# Set
I=NPROC
while ((I--));do
# Поднимаем минимальную частоту до максимума
cp "$DIR_PREFIX/cpu${I}/cpufreq/cpuinfo_max_freq" "$DIR_PREFIX/cpu${I}/cpufreq/scaling_min_freq"
done

#Здесь ВАШ код

sleep 10

##############

# Restore settings
I=NPROC
while ((I--));do
echo "${KEEP_MINFREQ[$I]}">"$DIR_PREFIX/cpu${I}/cpufreq/scaling_min_freq"
done

Всем стабильных серваков!

🛠 #cpu #performance #frequency #governor

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
38
CPU AFFINITY

По просьбе коллеги @dox89.


🔤🔤🔤🔤🔤🔤🔤

Предыдущие статьи по настройке производительности Здесь и Здесь:

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

Таким образом планировщик системы пытается балансировать нагрузку, ресурсы (и тепловыделение). Но это поведение можно изменить.

С помощью программы можно taskset можно запускать процессы на указанных ядрах.

Например:

taskset --cpu-list 0-2,6 thunderbird


Запустит thunderbird, и разрешит почтовому клиенту работать только на указанных ядрах.

Фактически taskset не разрешает работать на указанных ядрах, а запрещает работать на всех остальных, потому что по умолчанию любому процессу можно работать на всех ядрах.

Если использовать ключик -p PID, то аналогичную процедуру можно выполнить с уже запущенным процессом.

Современные процессоры имеют гибридную архитектуру. Т.е. они содержат и энергоэффективные и производительные ядра.

Так вот, с помощью этой команды можно немного оптимизировать производительность - ограничивая второстепенным приложениям доступ к высокопроизводительным ядрам.

Ну, или для всей «шушеры» выделить пару ядер, освободив остальные для самых важных процессов.

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

Ну, и напоследок - вредный совет.

Однажды у моего коллеги на работе эффективные менеджеры ввели KPI.

Деньги начали платить по проделанной, а не стабильной работе. После этого у всех, включая бухгалтерию в конце квартала все начинало тормозить Но не сразу, а как-то плавно, но заметно.

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

А потом - о5-25.

Но как они этого добивались - я не знаю :-)

man taskset
man nice

🛠 #cpu #core #taskset #nice #perfomance

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
46
Да ты издеваешься?!

Неа… Встречай — Terraform для Bare Metal!

Раньше это работало так:

После того, как я выполнял terraform apply, где-то в дата-центре, специально обученный мальчик шёл ножками, читал мой yaml манифест, плакал, собирал руками железный сервер и передавал мне в работу.

Сейчас этот процесс полностью автоматизирован, а мальчику больше не нужно плакать и читать мой yaml говнокод.

На досуге я накидал для тебя техно-пост, как это работает. С командами, нюансами и картинками.

Поехали → https://slc.tl/o1kzp

Рекомендую ознакомиться, даже для общего кругозора. Чтобы ты никогда не забывал, что автоматизировать можно — Всё!

Всё это уже работает на инфре Selectel, пробуйте

Реклама АО «Селектел», erid: 2VtzqwMNKqi
225
Когда прод падает — счёт идёт на минуты.

Что отличает зрелую инженерную команду от хаотичной? Не количество алертов, а умение действовать спокойно и системно.

📌17 ноября в 20:00 МСК на открытом уроке разберём, как превратить борьбу со сбоями в управляемый процесс:

– выстроить реакцию на инциденты, чтобы команда действовала быстро и без паники;
– использовать метрики и сигналы, чтобы замечать проблемы раньше пользователей;
– проводить ретроспективы и улучшать стабильность на основе реальных данных.

Вы получите подходы, которые можно применить уже завтра.
Вебинар проходит в преддверии старта курса «SRE практики и инструменты».

Регистрируйтесь и перестаньте тушить пожары: https://vk.cc/cRcEFN

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Борьба за производительность

В продолжение истории борьбы за производительность.

🔤🔤🔤🔤🔤🔤🔤🔤

Допустим у нас есть что-то, что обладает каким-то неприличным количеством ядер, например 16.

И нам надо разбалансировать эти ядра между разными «типами» нагрузки.
Причем мы точно знаем, сколько ядер нам надо для одного типа и точно не знаем, сколько нужно для всего остального.

Тут на помощь приходят 4 параметра ядра - isolcpus, nohz_full, rcu_nocbs и irqaffinity.

В рамках решаемого кейса сразу указал на них, что сократило поиск необходимых решений.

По сути, все 4 параметра решают одну задачу - ограничить использование указанных ядер (например 0-3) процессами, за исключением базовых - init, scsi и прочих.

Таким образом мы можем через тот же taskset указать вручную на ядра 0-3 те процессы, что нам нужны.

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

Но будьте внимательны при изоляции, так как в случае количества процессоров > 1 нужно чуть иначе выставлять диапазоны, чтобы не угодить в яму NUMA. Там деление ядер от 0 до последнего происходит сегментами по очереди.

Конкретно мой случай изоляции был применен в рамках разделения нагрузки на сетевые прерывания и nginx, но в совокупности факторов - параметры ядра, отключенный + маскированный irqbalance, taskset и еще несколько твиков - давало профит только при утилизации сетевой карты лишь до 70%, дальше спецэффекты постепенно возвращались.

🛠 #cpu #core #taskset #nice #perfomance

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
18
Опять потерял заявку? Не ты один

Когда в компании появляются десятки или сотни запросов: на оборудование, доступы, оплату или закупку — без системы они начинают теряться. Кажется, что все под контролем, но на деле у каждого отдела складываются разные процессы: кто-то пишет в личку, некоторые отмечают в табличке, а кто-то “давай голосом”.

12 ноября в 17:00 пройдет вебинар «Как упорядочить работу со входящим потоком задач». Покажут, как один раз настроить все процессы в Яндекс Трекере и больше никогда не искать, куда пропала заявка. Расскажут, почему важно вести всё через Трекер, как документировать процессы в Вики, автоматизировать назначение ответственных и какие фишки автоматизации используют сами в Яндексе.

Ведут вебинар руководитель продуктового направления Трекера Данил Майорский и архитектор решений и амбассадор Трекера Татьяна Родина. Полезно всем, кто регулярно в работе использует таск-менеджеры: IT-руководителям, администраторам, HR, AХО и тем, у кого входящих задач больше, чем часов в сутках.

Регистрируйся по ссылке.

#workflow #автоматизация #трекер
10
HRы и еже с ними, ловите головастого DevOps отличника и LF выпускника.

Такие мероприятия я провожу редко, но хороших кадров грех не порекомендовать.


Резюмирую

Мужчина в полном рассвете сил (26 лет), хочет на удаленку. Есть большое желание развиваться дальше, делать вещи и пилить охуительные инфраструктурные циркули.

Не пиздит и не завышает опыт, а это уже ценно!

Шарит за:

- докеры, пайплайны, ансиблы, кубы, графики и т.п.
- спец по информационной безопасности (PT SIEM),
- автоматизация на bash, python

Короче базовый набор маст-хев практик из коробки.

Нанимаешь и он работает, без лишних вопросов и хуйни. А твои сервера начинают тарахтеть быстрее и стабильнее.

Подробное резюме запрашивай в личке: @avs_jr_07

Чтобы все подряд ему не писали, ЗП хочет от 180к, за такой опыт, вполне справедливо!

🛠 #кандидаты #кадры

💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
Please open Telegram to view this post
VIEW IN TELEGRAM
24