Записки IT специалиста
8.12K subscribers
1.59K photos
49 videos
16 files
2.25K links
IT-канал, просто о сложном
https://interface31.ru

Купить рекламу:
https://telega.in/c/interface31
Download Telegram
Куда катится этот мир? Аналоговые часы стали "проблемой" и утратили "информативность"... Да... 🤷‍♀️🤷‍♀️🤷‍♀️
😁29🤣12🍌2👀1
​​Как на самом деле работает KSM sharing, ожидание и реальность.

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

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

При расчетах исходили из того, что в среднем одна нода имеет 16 ГБ оперативной памяти и 6 виртуальных машин с потреблением ОЗУ примерно на уровне 10 ГБ. Все виртуальные машины однотипны.

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

Сразу скажем – он не подвел и при запущенных 9 виртуальных машинах потребление памяти не превысило 12 ГБ при уплотненном объеме в районе 3 ГБ.

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

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

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

Начнем с того, что свободная память – это не самоцель, а ресурс, который мы должны использовать наиболее выгодно. Уплотненная память ресурс гораздо более дорогой, чем обычная и если можно память не уплотнять, то уплотнять ее не нужно. ‼️

Поэтому KSM включается по умолчанию достаточно поздно, при превышении порога занятой памяти в 80%. Это некоторый критический порог, за которым начнется конкуренция за свободную память между приложениями и буферами / кешем, что ни к чему хорошему с точки зрения производительности и стабильности не приведет.
Поэтому система начинает уплотнять память, но делать это грамотно, стараясь использовать уплотненную память по минимуму.

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

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

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

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

https://interface31.ru/tech_it/2022/07/nastraivaem-ispolzovanie-ram-pri-rabote-s-zfs-v-proxmox-ve.html

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

А реальную работу KSM sharing можно посмотреть на скриншоте ниже, где видно как по мере ввода новой рабочей нагрузки производилась оптимизация и подбор количества уплотняемых страниц и как этот процесс стабилизировался на отметке близкой к порогу.
👍12🤝21
Закат 32-битной эпохи

Вышедший в августе Debian 13 расстроил ретроградов, один из последних оплотов 32-битной архитектуры отказался от ее полноценной поддержки и не выпустил 32-разрядной версии дистрибутива.

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

Напомним, что до этого практически все ведущие дистрибутивы прекратили поддержку 32-битной архитектуры гораздо ранее, так для Ubuntu последним выпуском с поддержкой 32-бит был выпуск 18.04 LTS, а Fedora прекратила сборку 32-битных дистрибутивов начиная с выпуска 31 в 2019 году.

FreeBSD тоже решило нанести «удар в спину» и также отказывается от поддержки 32-битного дистрибутива начиная с 15 выпуска запланированного на конец этого года.

И это, в общем и целом, правильно. Сегодня уже практически не осталось адекватного современным требованиям железа, не поддерживающего 32-битные инструкции. Сегодня запускать 64-битный код может практически каждый чайник и утюг, особенно если мы говорим об архитектуре x86.

При этом полностью от поддержки 32-битных приложений пока никто не отказывается, вы можете их спокойно запускать на своих 64-битных системах и даже подключать репозитории с 32-битными пакетами.

Но они, честно говоря, не являются «настоящими» 32-битными, если мы подразумеваем под этим классические архитектуры i586/686. Данные пакеты собраны в среде современных ОС и требуют поддержки инструкций присутствующих в современных процессорах.

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

И тем удивительнее сегодня слышать просьбы найти именно 32-битный пакет для того или иного ПО. Потому как никакого практического смысла сегодня это не имеет. Платформ не поддерживающих 64-бита (не считая какой-нибудь экзотики или промышленного оборудования) в широкой эксплуатации нет. Поэтому и нет смысла держаться за старое. Ведь никто же сегодня не сетует на отсутствие поддержки 16-бит?
👍34
Zabbix get – получаем информацию от Zabbix через CLI

Многие администраторы воспринимают Zabbix как некоторую цельную и закрытую систему, все данные в которой собираются сервером Zabbix и концентрируются в одном месте.

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

Вы можете установить ее как на хост с Zabbix, так и на любую иную систему, для которой есть соответствующие пакеты. Для этого нужно подключить репозитории Zabbix и выполнить команду (для DEB-систем):

apt install zabbix-get


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

Check access restrictions in Zabbix agent configuration


После чего можете начать общаться со своим агентом при помощи командной строки, общий синтаксис такой:

zabbix_get -s host-name-or-IP [-p port-number] -k item-key


Вам нужно указать адрес агента после ключа -s и ключ элемента данных (item) после ключа -k, ключ -p – порт не является обязательным, если он не указан, то будет использоваться стандартный 10050.

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

Проверим доступность агента:

zabbix_get -s 192.168.101.198 -p 10050 -k agent.ping


Если агент доступен получим значение 1, иначе 0.

Проверим утилизацию процессора:

zabbix_get -s 192.168.101.198 -p 10050 -k system.cpu.util


Или аптайм:

zabbix_get -s 192.168.101.198 -p 10050 -k system.uptime


А вот при попытке получить утилизацию памяти в % получим ошибку:

zabbix_get -s 192.168.101.198  -k vm.memory.util
ZBX_NOTSUPPORTED: Unknown metric vm.memory.util


Неизвестная метрика… Но почему, ведь в шаблоне такой ключ есть?

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

Данную утилиту удобно использовать в первую очередь для диагностики и отладки агентов, но никто не мешает получать с ее помощью нужные данные для сторонних систем, отчетов или средств автоматизации.
👍18🔥2👀21
Please open Telegram to view this post
VIEW IN TELEGRAM
🤮1
Профессия – программист

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

В этом году мой сын закончил 9 классов и успешно поступил в Колледж высоких технологий местного Университета на программирование. Но поступление было далеко не простым.

Дело в том, что наш регион как приграничный и прифронтовой (Белгородская область) выпускались по упрощенной схеме – без ЕГЭ и ОГЭ, по среднему баллу, а поступление осуществлялось на основе «конкурса аттестатов».

Что это значит? А это значит, что при поступлении имеет значение только средний балл аттестата. При этом если на программирование поступает ребенок, у которого пятерки по математике и информатике, но посредственные оценки по литературе, русскому, химии, географии и т.д., а вместе с ним подал документы троечник по математике/информатике, но отличник по гуманитарным наукам, то пройдет гуманитарий, так как балл его аттестата выше.

Добавляем туда любимчиков, активистов, личные приятственные или неприязненные отношения учителей и многое другое. Тем более что из школ в колледжи побежало в этом году практически 90-95% детей. Потому как потенциальное ЕГЭ через два года мало кого прельщает.

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

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

А так как у сына были грамоты и дипломы от разных городских конкурсов по IT, программированию и робототехнике, в т.ч. и проводимых Университетом, то он уверенно прошел, несмотря на достаточно низкий балл аттестата (потому что забивал в школе на гуманитарку).

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

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

Кстати, наш куратор была в приемной комиссии и побеседовав с сыном тет-а-тет сказала: этого беру к себе и пофиг на балл в аттестате. Потому что опять наберем больше половины идиотов.

И это не фигура речи, потому что как можно поступать на программирование не умея сканировать и присылая фото с мобилы в документе Word?

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

А остальные? Тут я хочу вернуться на 25-30 лет назад, в далекие и светлые, для кого-то «святые». Тогда было очень популярно учиться на юриста.

Юристов готовили юридические ВУЗы, гуманитарные, технические и даже сельскохозяйственные.

Для самой профессии пророчили упадок и замещение дешевыми кадрами, ну все это мы слышим и сейчас.

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

А куда делись все эти стада с «юридическим» образованием? Осели по «Пятерочкам» того времени и тому подобным организациям. Максимум в ИП Джамшут юристом, чисто потешить этого самого Джамшута эго, на зарплате продавца из «Пятерочки».

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

Ну и родителям тоже надо задуматься. Хороший сантехник сегодня тоже на вес золота и зарабатывает не хуже, чем программист.
💯304👍3🥱2🤣2
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2
​​Электронная почта, подборка

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

🔶 Теория

🔹 Почтовый сервер для начинающих. Структура и принцип работы
🔹 Почтовый сервер для начинающих. Настраиваем DNS зону
🔹 Почтовый сервер для начинающих. PTR и SPF записи как средство борьбы со спамом
🔹 Настраиваем свой почтовый сервер. Что нужно знать. Ликбез
🔹 Какие порты и для чего использует почтовый сервер. Ликбез
🔹 Как правильно настроить DNS-записи для мультидоменного почтового сервера

🔶 Практика. Почтовые сервера

🔹 Установка и настройка почтового сервера iRedMail с веб-клиентом SOGo и сертификатами Let's Encrypt
🔹 Установка и настройка почтового сервера Modoboa в Debian или Ubuntu
🔹 Установка и настройка почтового сервера Mail-in-a-Box в Ubuntu 22.04

🔶 Практика. Антиспам

🔹 Proxmox Mail Gateway - настраиваем пограничный почтовый шлюз
🔹 Используем API для автоматизации работы с Proxmox Mail Gateway
🔹 Обновляем Proxmox Mail Gateway с версии 7 до 8

🔶 Полезные инструменты

🔹 Онлайн инструменты для проверки почтового сервера
🔹 Проверка связи по протоколу SMTP с помощью Telnet
🔹 Перенос почтовых ящиков между серверами при помощи imapsync
👍262
И снова про ремесла

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

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

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

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

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

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

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

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

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

Это по-прежнему закрытая система с достаточно высоким порогом входа и классической цеховой системой уровней.
Нельзя просто так прийти в больницу и сказать: а возьмите меня врачом? Также нельзя стать врачом пройдя какие-либо короткие курсы подготовки, в то же время как на рабочие специальности вас обучат в сжатые сроки.

Чтобы стать врачом нужно будет вступить в соответствующий цех и пройти в нем весь пусть снизу доверху. Студент – интерн – врач, чем не классическое ученик – подмастерье – мастер?

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

IT, как ни странно, при всей молодости и современности данной отрасли, тоже фактически является ремесленничеством. Здесь также все завязано на свои цеха и даже существует своя трехуровневая система: джун – мидл – сеньор.

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

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

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

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

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

И поэтому не стоит поддаваться соблазну облегчить себе жизнь и превратиться из ремесленника в рабочего, просто запускающего контейнеры.
🔥10👍71